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.

Orang udik
sumber

Jawaban:

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

Tautan ke dokumentasi:

Konversi ke string dilakukan dengan str()fungsi builtin , yang pada dasarnya memanggil __str__()metode parameternya.

Bastien Léonard
sumber
118

Coba ini:

str(i)
Lasse V. Karlsen
sumber
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.

Andrea Ambu
sumber
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
nik
sumber
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
maxaposteriori
sumber
11

Dalam Python => 3.6 Anda dapat menggunakan fpemformatan:

>>> int_value = 10
>>> f'{int_value}'
'10'
>>>
SuperNova
sumber
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

Mohamed Makkaoui
sumber
6

Cara yang paling layak menurut saya adalah ``.

i = 32   -->    `i` == '32'
Nikolas
sumber
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'
>>>
SuperNova
sumber
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 .

Eugene
sumber
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()!

Alec Alameddine
sumber