Câu trả lời:
>>> 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ố.
Thử cái này:
str(i)
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.
>>> 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
Trong Python => 3.6 bạn có thể sử dụng f
định dạng:
>>> int_value = 10
>>> f'{int_value}'
'10'
>>>
Đố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
Cách tốt nhất theo ý kiến của tôi là ``.
i = 32 --> `i` == '32'
repr(i)
, vì vậy nó sẽ là lạ trong thời gian dài. (Thử i = `2 ** 32`; print i
)
Có thể sử dụng %s
hoặc.format
>>> "%s" % 10
'10'
>>>
(HOẶC LÀ)
>>> '{}'.format(10)
'10'
>>>
Đố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 .
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()
!