ฉันต้องการแปลงจำนวนเต็มเป็นสตริงใน Python ฉันพิมพ์มันอย่างไร้ประโยชน์:
d = 15
d.str()
เมื่อฉันพยายามที่จะแปลงเป็นสตริงก็แสดงให้เห็นข้อผิดพลาดเช่นint
ไม่ได้แอตทริบิวต์ใด ๆ str
ที่เรียกว่า
ฉันต้องการแปลงจำนวนเต็มเป็นสตริงใน Python ฉันพิมพ์มันอย่างไร้ประโยชน์:
d = 15
d.str()
เมื่อฉันพยายามที่จะแปลงเป็นสตริงก็แสดงให้เห็นข้อผิดพลาดเช่นint
ไม่ได้แอตทริบิวต์ใด ๆ str
ที่เรียกว่า
คำตอบ:
>>> str(10)
'10'
>>> int('10')
10
ลิงค์ไปยังเอกสารประกอบ:
การแปลงเป็นสตริงทำได้ด้วยstr()
ฟังก์ชันbuiltin ซึ่งโดยทั่วไปเรียก__str__()
เมธอดของพารามิเตอร์
ลองสิ่งนี้:
str(i)
ไม่มี typecast และไม่มีการข่มขู่ประเภทใน Python คุณต้องแปลงตัวแปรของคุณอย่างชัดเจน
ในการแปลงวัตถุเป็นสตริงให้ใช้str()
ฟังก์ชัน มันทำงานกับวัตถุใด ๆ ที่มีวิธีการที่เรียกว่า__str__()
กำหนดไว้ ในความเป็นจริง
str(a)
เทียบเท่ากับ
a.__str__()
เช่นเดียวกันถ้าคุณต้องการแปลงบางสิ่งเป็น int, float ฯลฯ
ในการจัดการอินพุตที่ไม่ใช่จำนวนเต็ม:
number = raw_input()
try:
value = int(number)
except ValueError:
value = 0
>>> 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
ใน Python => 3.6 คุณสามารถใช้f
การจัดรูปแบบ:
>>> int_value = 10
>>> f'{int_value}'
'10'
>>>
สำหรับ Python 3.6 คุณสามารถใช้คุณสมบัติใหม่ของ f-strings เพื่อแปลงเป็นสตริงและมันเร็วกว่าเมื่อเทียบกับฟังก์ชั่น str () มันถูกใช้ดังนี้:
age = 45
strAge = f'{age}'
Python ให้ฟังก์ชั่น str () ด้วยเหตุผลดังกล่าว
digit = 10
print(type(digit)) # will show <class 'int'>
convertedDigit= str(digit)
print(type(convertedDigit)) # will show <class 'str'>
สำหรับคำตอบโดยละเอียดเพิ่มเติมคุณสามารถตรวจสอบบทความนี้: การแปลง Python Int เป็น String และ Python String เป็น Int
วิธีที่ดีที่สุดในความคิดของฉันคือ ``
i = 32 --> `i` == '32'
สามารถใช้%s
หรือ.format
>>> "%s" % 10
'10'
>>>
(หรือ)
>>> '{}'.format(10)
'10'
>>>
ด้วยการแนะนำ f-strings ใน Python 3.6 สิ่งนี้จะได้ผล:
f'{10}' == '10'
จริงๆแล้วมันเร็วกว่าการโทรstr()
ด้วยค่าใช้จ่ายในการอ่าน
ความจริงมันเร็วกว่า%x
การจัดรูปแบบสตริงและ.format()
!