Chuyển đổi số nguyên thành chuỗi?


1362

Tôi muốn chuyển đổi một số nguyên thành một chuỗi trong Python. Tôi đang đánh máy nó vô ích:

d = 15
d.str()

Khi tôi cố gắng chuyển đổi nó thành chuỗi, nó sẽ hiển thị một lỗi như intkhông có bất kỳ thuộc tính nào được gọi str.

Câu trả lời:


2095
>>> str(10)
'10'
>>> int('10')
10

Liên kết đến tài liệu:

Chuyển đổi thành một chuỗi được thực hiện với str()hàm dựng sẵn , về cơ bản gọi __str__()phương thức của tham số.



62

Không có typecast và không có kiểu ép buộc trong Python. Bạn phải chuyển đổi biến của bạn một cách rõ ràng.

Để chuyển đổi một đối tượng trong chuỗi, bạn sử dụng str()hàm. Nó hoạt động với bất kỳ đối tượng nào có một phương thức gọi là __str__()định nghĩa. Trong thực tế

str(a)

tương đương với

a.__str__()

Tương tự nếu bạn muốn chuyển đổi một cái gì đó thành int, float, v.v.


giải pháp này đã giúp tôi, tôi đã chuyển đổi một chuỗi ký tự chữ và số thành một chuỗi số, thay thế các chữ cái bằng các giá trị ascii của chúng, tuy nhiên trực tiếp sử dụng hàm str () không hoạt động, nhưng __str __ () đã hoạt động. Ví dụ (python2.7); s = "14.2.2.10a2" mã không hoạt động: print "" .join ([str (ord (c)) if (c .alpha ()) other c for c in s]) mã làm việc: print "" .join ([ord (c) .__ str __ () if (c.alupha ()) other c for c in s]) Sản lượng dự kiến: 14.2.2.10972
Jayant

18

Để quản lý các đầu vào không nguyên:

number = raw_input()
try:
    value = int(number)
except ValueError:
    value = 0

14
>>> i = 5
>>> print "Hello, world the number is " + i
TypeError: must be str, not int
>>> s = str(i)
>>> print "Hello, world the number is " + s
Hello, world the number is 5

11

Trong Python => 3.6 bạn có thể sử dụng fđịnh dạng:

>>> int_value = 10
>>> f'{int_value}'
'10'
>>>

7

Đối với Python 3.6, bạn có thể sử dụng tính năng mới của chuỗi f để chuyển đổi thành chuỗi và nó nhanh hơn so với hàm str (), nó được sử dụng như thế:

age = 45
strAge = f'{age}'

Python cung cấp hàm str () cho lý do đó.

digit = 10
print(type(digit)) # will show <class 'int'>
convertedDigit= str(digit)
print(type(convertedDigit)) # will show <class 'str'>

Để có câu trả lời chi tiết hơn, bạn có thể kiểm tra bài viết này: Chuyển đổi Python Int thành String và Python String thành Int


6

Cách tốt nhất theo ý kiến ​​của tôi là ``.

i = 32   -->    `i` == '32'

3
Lưu ý rằng điều này tương đương với repr(i), vì vậy nó sẽ là lạ trong thời gian dài. (Thử i = `2 ** 32`; print i)

16
Điều này đã bị phản đối trong python 2 và bị loại bỏ hoàn toàn trong python 3, vì vậy tôi sẽ không đề xuất sử dụng nó nữa. docs.python.org/3.0/whatsnew/3.0.html#removed-syntax
teeks99

6

Có thể sử dụng %shoặc.format

>>> "%s" % 10
'10'
>>>

(HOẶC LÀ)

>>> '{}'.format(10)
'10'
>>>

5

Đối với ai đó muốn chuyển đổi int thành chuỗi bằng các chữ số cụ thể, phương pháp dưới đây được khuyến nghị.

month = "{0:04d}".format(localtime[1])

Để biết thêm chi tiết, bạn có thể tham khảo Số lần hiển thị câu hỏi Stack Overflow với các số 0 đứng đầu .


4

Với việc giới thiệu chuỗi f trong Python 3.6, điều này cũng sẽ hoạt động:

f'{10}' == '10'

Nó thực sự nhanh hơn gọi điện str(), với chi phí dễ đọc.

Trong thực tế, nó nhanh hơn %xđịnh dạng chuỗi và .format()!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.