Ganzzahl in Zeichenfolge konvertieren?


1361

Ich möchte eine Ganzzahl in eine Zeichenfolge in Python konvertieren. Ich schreibe es vergeblich:

d = 15
d.str()

Wenn ich versuche, es in einen String zu konvertieren, wird ein Fehler angezeigt, intbei dem kein Attribut aufgerufen wird str.

Antworten:


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

Links zur Dokumentation:

Die Konvertierung in einen String erfolgt mit der eingebauten str()Funktion, die im Grunde die __str__()Methode ihres Parameters aufruft .



62

In Python gibt es keine Typumwandlung und keinen Typenzwang. Sie müssen Ihre Variable explizit konvertieren.

Um ein Objekt in einen String zu konvertieren, verwenden Sie die str()Funktion. Es funktioniert mit jedem Objekt, dessen Methode __str__()definiert ist. Eigentlich

str(a)

ist äquivalent zu

a.__str__()

Das gleiche gilt, wenn Sie etwas in int, float usw. konvertieren möchten.


Diese Lösung hat mir geholfen. Ich habe eine alphanumerische Zeichenfolge in eine numerische Zeichenfolge konvertiert und Buchstaben durch ihre ASCII-Werte ersetzt. Die direkte Verwendung der Funktion str () funktionierte jedoch nicht, aber __str __ () funktionierte. Beispiel (python2.7); s = "14.2.2.10a2" nicht funktionierender Code: print "" .join ([str (ord (c)) wenn (c.isalpha ()) sonst c für c in s]) Arbeitscode: print "" .join ([ord (c) .__ str __ () if (c.isalpha ()) else c für c in s]) Erwartete Ausgabe: 14.2.2.10972
Jayant

18

So verwalten Sie nicht ganzzahlige Eingaben:

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

In Python => 3.6 können Sie folgende fFormatierungen verwenden:

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

7

Für Python 3.6 können Sie die neue Funktion f-strings zum Konvertieren in einen String verwenden. Sie ist schneller als die Funktion str () und wird folgendermaßen verwendet:

age = 45
strAge = f'{age}'

Python bietet aus diesem Grund die Funktion str ().

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

Eine ausführlichere Antwort finden Sie in diesem Artikel: Konvertieren von Python Int in String und Python String in Int


6

Der anständigste Weg ist meiner Meinung nach ``.

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

3
Beachten Sie, dass dies äquivalent zu ist repr(i), so dass es für lange Zeit seltsam sein wird. (Versuchen Sie i = `2 ** 32`; print i)

16
Dies wurde in Python 2 veraltet und in Python 3 vollständig entfernt, daher würde ich nicht mehr empfehlen, es zu verwenden. docs.python.org/3.0/whatsnew/3.0.html#removed-syntax
teeks99

6

Kann %soder verwenden.format

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

(ODER)

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

5

Für jemanden, der int in einen String mit bestimmten Ziffern konvertieren möchte, wird die folgende Methode empfohlen.

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

Weitere Informationen finden Sie unter Stapelüberlauffrage Anzeigenummer mit führenden Nullen .


4

Mit der Einführung von F-Strings in Python 3.6 funktioniert dies auch:

f'{10}' == '10'

Es ist tatsächlich schneller als ein Anruf str(), auf Kosten der Lesbarkeit.

In der Tat ist es schneller als die %xFormatierung von Zeichenfolgen und .format()!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.