Seite 1 von 1

str in int umwandeln

Verfasst: Sonntag 30. November 2008, 02:19
von Felix
Hallo,
so nach langem suchen stelle ich mal die Frage hier. Bin gerade ein bischen am python lernen und habe folgendes Problem.

ich habe einen String in der Form:
['hallo', '1', '30']

nun mache ich:
x = str[2]
x = x + 1

dabei bekomme ich die Fehlermeldung:
TypeError: cannot concatenate 'str' and 'int' objects

nun scheint es mir, das meine Variable x nicht als Zahl erkennt wird.
Wie kann ich nun diese Variable so umwandeln, das sie als Zahl erkannt wird und ich diese als Zahl weiterbenützen kann?

Danke für die Hilfe.
Gruss Felix

Verfasst: Sonntag 30. November 2008, 02:29
von Hyperion

Code: Alles auswählen

>>> x = str(2)
>>> type(x)
<type 'str'>
x ist also ein String!

Du suchst int().

Mein Tipp: Arbeite mal das offizielle Tutorial durch!

Verfasst: Sonntag 30. November 2008, 08:54
von BlackJack
@Felix: Hast Du wirklich einen *String* der so aussieht? Dann wird das nämlich noch ein wenig schwieriger, denn:

Code: Alles auswählen

In [182]: s = "['hallo', '1', '30']"

In [183]: s[2]
Out[183]: 'h'
Weil an Index zwei von dieser Zeichenkette ein 'h' steht.

Falls das wirklich eine Zeichenkette und keine Liste sein sollte, frag bitte nicht als nächstes wie man aus dieser Zeichenkette eine Liste macht, sondern kläre ab, warum das eine Zeichenkette ist oder sein muss und keine Liste ist.

Verfasst: Sonntag 30. November 2008, 10:42
von Felix
BlackJack hat geschrieben:@Felix: Hast Du wirklich einen *String* der so aussieht?
Uups ist natürlich kein String. Es ist eine Liste. War bischen spät gestern :-).
in der Variable x befindet sich die Zahl x, welche ich nun wirklich als Zahl möchte und nicht als String.

Gruss Felix

Verfasst: Sonntag 30. November 2008, 11:05
von Birne94

Code: Alles auswählen

def f(i):
	try:
		i = int(i)
	except ValueError:
		pass
	return i

## x <- Name der Liste
x = map(f,x)
## Alle Zahlen sind danach integers
E://@unten: np^^

Verfasst: Sonntag 30. November 2008, 11:18
von Felix
Danke Birne,
genau das was ich gesucht habe.

Muss wohl noch ein bisschen üben, damit ich alle eigenheiten von Python werstehe.

Gruss Felix

Verfasst: Dienstag 2. Dezember 2008, 03:49
von ichbinsisyphos
Das Listenelement ist ein String weil es unter Anführungszeichen steht. Zur Konvertierung in Integer reicht grundsätzlich int(). Genauso gibts str(), float(), ...