Konwertujesz liczbę całkowitą na ciąg?


1361

Chcę przekonwertować liczbę całkowitą na ciąg w Pythonie. Na próżno piszę to na maszynie:

d = 15
d.str()

Kiedy próbuję przekonwertować go na ciąg znaków, pojawia się błąd, jakby intnie miał żadnego wywołanego atrybutu str.

Odpowiedzi:


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

Linki do dokumentacji:

Konwersja na łańcuch odbywa się za pomocą wbudowanej str()funkcji, która w zasadzie wywołuje __str__()metodę swojego parametru.



62

W Pythonie nie ma typowania rzutów ani przymusu typu. Musisz skonwertować zmienną w sposób jawny.

Aby przekonwertować obiekt na ciąg znaków, użyj str()funkcji. Działa z każdym obiektem, który ma __str__()zdefiniowaną metodę o nazwie . w rzeczywistości

str(a)

jest równa

a.__str__()

To samo, jeśli chcesz przekonwertować coś na int, float itp.


to rozwiązanie pomogło mi, konwertowałem ciąg alfanumeryczny na ciąg liczbowy, zastępując litery ich wartościami ascii, jednak bezpośrednie użycie funkcji str () nie działało, ale działał __str __ (). Przykład (python2.7); s = "14.2.2.10a2" niedziałający kod: print "" .join ([str (ord (c)) if (c.isalpha ()) else c for c in s]) kod roboczy: print "" .join ([ord (c) .__ str __ () if (c.isalpha ()) else c for c in s]) Oczekiwany wynik: 14.2.2.10972
Jayant

18

Aby zarządzać danymi niecałkowitymi:

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

W Pythonie => 3.6 możesz użyć fformatowania:

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

7

W Pythonie 3.6 możesz użyć nowej funkcji f-strings, aby przekonwertować na string, i jest szybszy w porównaniu do funkcji str (), jest on używany w następujący sposób:

age = 45
strAge = f'{age}'

Z tego powodu Python udostępnia funkcję str ().

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

Aby uzyskać bardziej szczegółową odpowiedź, możesz sprawdzić ten artykuł: Konwertowanie Python Int na String i Python String na Int



6

Można użyć %slub.format

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

(LUB)

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

5

Dla kogoś, kto chce przekonwertować int na ciąg znaków w określonych cyfrach, zalecana jest poniższa metoda.

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

Aby uzyskać więcej informacji, zapoznaj się z pytaniem Przepełnienie stosu Wyświetl numer z wiodącymi zerami .


4

Wraz z wprowadzeniem ciągów f w Pythonie 3.6 to zadziała również:

f'{10}' == '10'

Jest to w rzeczywistości szybsze niż dzwonienie str(), kosztem czytelności.

W rzeczywistości jest szybszy niż %xformatowanie ciągów i .format()!

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.