Tamsayı dizeye dönüştürülüyor mu?


1361

Python'da bir dizeye bir tamsayıyı dönüştürmek istiyorum. Boşuna daktilo ediyorum:

d = 15
d.str()

Ben dizeye dönüştürmek çalıştığınızda int, herhangi bir özniteliği yok gibi bir hata gösteriyor str.

Yanıtlar:


2094
>>> str(10)
'10'
>>> int('10')
10

Belgelere bağlantılar:

Bir dizgeye dönüştürme str(), temel __str__()olarak parametresinin yöntemini çağıran yerleşik işlevle yapılır .



62

Python'da typecast ve tip baskısı yoktur. Değişkeninizi açık bir şekilde dönüştürmeniz gerekir.

Dizedeki bir nesneyi dönüştürmek için str()işlevi kullanırsınız . __str__()Tanımlanmış adlı bir yöntemi olan herhangi bir nesne ile çalışır . Aslında

str(a)

eşittir

a.__str__()

Bir şeyi int, float vb.


Bu çözüm bana yardımcı oldu, ben alfasayısal bir dize sayısal bir dize dönüştürme, harfleri kendi ascii değerleri ile değiştirme, ancak doğrudan str () işlevini kullanarak çalışma değildi, ama __str __ () çalıştı. Örnek (python2.7); s = "14.2.2.10a2" çalışmayan kod: print "" .join ([str (ord (c)) if (c.isalpha ()) c için c cinsinden]) çalışma kodu: print "". ([ord (c) .__ str __ () eğer (c.isalpha ()) başka c için s cinsinden]) Beklenen çıktı: 14.2.2.10972
Jayant

18

Tamsayı olmayan girdileri yönetmek için:

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

Python => 3.6'da fbiçimlendirmeyi kullanabilirsiniz :

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

7

Python 3.6 için dizeye dönüştürmek için f-dizeleri yeni özelliğini kullanabilirsiniz ve str () işlevine kıyasla daha hızlıdır, şöyle kullanılır:

age = 45
strAge = f'{age}'

Python bu nedenle str () işlevini sağlar.

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

Daha ayrıntılı yanıt için bu makaleyi denetleyebilirsiniz : Python Int dizesini ve Python dizesini Int biçimine dönüştürme



6

Kullanabilir %sveya.format

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

(VEYA)

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

5

İnt'yi belirli basamaklarda dizeye dönüştürmek isteyen biri için aşağıdaki yöntem önerilir.

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

Daha fazla ayrıntı için, Başında Sıfır olan soruların üstündeki Sıfır sayısı sorusuna bakabilirsiniz .


4

Python 3.6'da f-dizelerinin tanıtılmasıyla, bu da işe yarayacak:

f'{10}' == '10'

Aslında str(), okunabilirlik pahasına, aramaktan daha hızlıdır .

Aslında, %xdize biçimlendirmesinden daha hızlı ve .format()!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.