Mengubah integer ke string?


1362

Saya ingin mengonversi integer menjadi string dengan Python. Saya mengetiknya dengan sia-sia:

d = 15
d.str()

Ketika saya mencoba untuk mengubahnya menjadi string, itu menunjukkan kesalahan seperti inttidak memiliki atribut apa pun yang disebut str.

Jawaban:




62

Tidak ada typecast dan tidak ada tipe paksaan di Python. Anda harus mengonversi variabel Anda secara eksplisit.

Untuk mengonversi objek dalam string, Anda menggunakan str()fungsi. Ia bekerja dengan objek apa pun yang memiliki metode yang disebut __str__()terdefinisi. Faktanya

str(a)

setara dengan

a.__str__()

Sama jika Anda ingin mengubah sesuatu menjadi int, float, dll.


solusi ini membantu saya, saya mengubah string alfanumerik menjadi string numerik, mengganti huruf dengan nilai ascii mereka, namun secara langsung menggunakan fungsi str () tidak berfungsi, tetapi __str __ () berfungsi. Contoh (python2.7); s = "14.2.2.10a2" kode tidak berfungsi: cetak "" .join ([str (ord (c)) if (c.isalpha ()) selain c untuk c in s]) kode kerja: print "" .join ([ord (c) .__ str __ () if (c.isalpha ()) lain c untuk c in s]) Output yang diharapkan: 14.2.2.10972
Jayant

18

Untuk mengelola input non-integer:

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

Dalam Python => 3.6 Anda dapat menggunakan fpemformatan:

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

7

Untuk Python 3.6 Anda dapat menggunakan fitur baru f-string untuk mengkonversi ke string dan lebih cepat dibandingkan dengan fungsi str (), digunakan seperti itu:

age = 45
strAge = f'{age}'

Python menyediakan fungsi str () untuk alasan itu.

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

Untuk jawaban yang lebih terperinci, Anda dapat memeriksa artikel ini: Konversi Python Int ke String dan Python String ke Int


6

Cara yang paling layak menurut saya adalah ``.

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

3
Perhatikan bahwa ini setara dengan repr(i), jadi akan terasa aneh untuk waktu yang lama. (Coba i = `2 ** 32`; print i)

16
Ini telah ditinggalkan dalam python 2 dan sepenuhnya dihapus dalam python 3, jadi saya tidak akan menyarankan menggunakannya lagi. docs.python.org/3.0/whatsnew/3.0.html#removed-syntax
teeks99

6

Dapat menggunakan %satau.format

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

(ATAU)

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

5

Untuk seseorang yang ingin mengonversi int ke string dalam digit tertentu, metode di bawah ini disarankan.

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

Untuk lebih jelasnya, Anda bisa merujuk ke nomor Tampilan pertanyaan Stack Overflow dengan nol di depan .


4

Dengan diperkenalkannya f-string di Python 3.6, ini juga akan berfungsi:

f'{10}' == '10'

Ini sebenarnya lebih cepat daripada menelepon str(), dengan biaya keterbacaan.

Bahkan, ini lebih cepat daripada %xpemformatan string dan .format()!

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.