str in int umwandeln

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Felix
User
Beiträge: 8
Registriert: Sonntag 30. November 2008, 02:09

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
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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!
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.
Felix
User
Beiträge: 8
Registriert: Sonntag 30. November 2008, 02:09

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
Birne94
User
Beiträge: 90
Registriert: Freitag 28. November 2008, 15:18
Kontaktdaten:

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^^
Zuletzt geändert von Birne94 am Sonntag 30. November 2008, 11:31, insgesamt 2-mal geändert.
Felix
User
Beiträge: 8
Registriert: Sonntag 30. November 2008, 02:09

Danke Birne,
genau das was ich gesucht habe.

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

Gruss Felix
ichbinsisyphos
User
Beiträge: 120
Registriert: Montag 4. Juni 2007, 19:19

Das Listenelement ist ein String weil es unter Anführungszeichen steht. Zur Konvertierung in Integer reicht grundsätzlich int(). Genauso gibts str(), float(), ...
Antworten