Seite 1 von 1

Konvertierung String nach Integer

Verfasst: Samstag 14. Februar 2009, 11:35
von patti.pg
Ich bin seit drei Tagen dabei, Python zu programmieren und ich muss sagen, es ist wahnsinnig toll! Nun musste aber irgendwann das erste Problem auftauchen, das ich selbst nicht lösen kann, also habe ich mich hier angemeldet um euch um Rat zu bitten.
Es geht um die Konvertierung eines Strings in eine Zahl. Anders herum ist es kein Problem, beispielsweise: str(42). Übrigens int('42') geht auch noch. Aber eine Variable umzuwamndeln, da scheiden sich bei mir die Geister. Ich versuch mal diese Programmcode Funktion hier.

Code: Alles auswählen

str(42)    #geht bei mir.
int('42')  #geht auch noch

print 'Bitte geben Sie eine Zahl ein, die potenziert werden soll.'
x = raw_input()
print 'Bitte geben Sie an, zu welcher Potenz '+ x +' gehoben werden soll.'
y = raw_input()
print x +' hoch '+ y +' ergibt '
#Hier sollte jetzt die Umwandlung der Strings x und y in Integer erfolgen
print x ** y
Ich habe die IDLE 2.6.1

Danke im Voraus für alle hilfreichen Antworten!
MfG Patrick

Verfasst: Samstag 14. Februar 2009, 11:40
von cofi
Dann ersetz mal deine Literale (42, '42') durch die Variable ... mensch Kinners, wo is denn, die experimentierfreudigkeit hin? :O

Verfasst: Samstag 14. Februar 2009, 11:51
von wuf
Hallo patti.pg

Hier in Code:

Code: Alles auswählen

print int(x) ** int(y)
Gruss wuf :wink:

Verfasst: Samstag 14. Februar 2009, 12:13
von hendrikS
cofi hat geschrieben: ... mensch Kinners, wo is denn, die experimentierfreudigkeit hin? :O
Gerade die IDLE shell ist zum Experimentieren super geeignet. Ich vermisse zwar seit Ewigkeiten eine Command History. Aber das kommt vielleicht irgendwann noch.

Verfasst: Samstag 14. Februar 2009, 12:23
von numerix
hendrikS hat geschrieben:
cofi hat geschrieben: ... mensch Kinners, wo is denn, die experimentierfreudigkeit hin? :O
Gerade die IDLE shell ist zum Experimentieren super geeignet. Ich vermisse zwar seit Ewigkeiten eine Command History. Aber das kommt vielleicht irgendwann noch.
Als bekennender IDLE-Freund muss ich allerdings sagen, dass ich IDLE gerade wg. der fehlenden History als Experimentierumgebung überhaupt nicht schätze.

Verfasst: Samstag 14. Februar 2009, 13:09
von cofi
Darum benutzt man auch ipython zum spielen ;)

Verfasst: Samstag 14. Februar 2009, 13:32
von numerix
cofi hat geschrieben:Darum benutzt man auch ipython zum spielen ;)
Dem kann ich mich grundsätzlich anschließen - solange man nicht mit Python >2.5 arbeiten will/muss.

Verfasst: Samstag 14. Februar 2009, 14:36
von cofi
Hm? Warum das denn?
Ich arbeite seit einer Weile mit 2.6, außer den `depracated' Meldungen ist mir noch nichts um die Ohren geflogen ... und da die Meldungen nicht weh tun ... ;)

Verfasst: Samstag 14. Februar 2009, 14:40
von DasIch
Die deprecated Meldungen hat man doch wohl mit ein paar Handgriffen beseitigt.

Verfasst: Samstag 14. Februar 2009, 14:43
von numerix
Mir ging es vor allem um 3.0 > 2.5 ...

Verfasst: Samstag 14. Februar 2009, 16:37
von patti.pg
Erstmal danke für die antworten. Zum Thema Experimentierfreudigkeit:
Das habe ich ja alles schon versucht, aber es funktioniert nicht.

So, ich habe gerade mal eure Entwürfe genommen, die funktionieren. Ich habe mir das Buch 'Einführung in Python' von Mark Lutz und David Ascher gekauft und dort stand drin, man müsse es folgendermaßen schreiben:
int('x')
also ein Fehler.
Danke!

Verfasst: Samstag 14. Februar 2009, 17:30
von numerix
patti.pg hat geschrieben:So, ich habe gerade mal eure Entwürfe genommen, die funktionieren. Ich habe mir das Buch 'Einführung in Python' von Mark Lutz und David Ascher gekauft und dort stand drin, man müsse es folgendermaßen schreiben:
int('x')
also ein Fehler.
Danke!
Zwar hat das von dir genannte Buch einige Druckfehler, aber der von dir genannte ist mir dort nicht aufgefallen. Kannst du mal die Seitenzahl nennen, wo das steht?

Verfasst: Samstag 14. Februar 2009, 18:14
von str1442
int('x') bedeutet ja, das du versuchst, einen String mit dem Inhalt "x" in eine Zahl umzuwandeln, was natürlich nicht funktioniert. Eine Variable gibst du natürlich so an, wie du das auch in deinem Zusammengesetzem String für print tust.

Verfasst: Samstag 14. Februar 2009, 19:06
von BlackJack

Code: Alles auswählen

In [40]: int('x', 36)
Out[40]: 33
:-)

Verfasst: Sonntag 15. Februar 2009, 17:31
von patti_pg
Hallo Leute,
Also danke nochmals für die zahlreichen Antworten, jetzt funktioniert es bei mir.
Numerix: Das steht auf Seite 92.

Ich habe diesen Account erstellt, weil ich mit dem anderen ums verrecken nicht hier hereinkam. Ich habe mich unter 4 verschiedenen Browsern eingeloggt, aber nach dem Login erschien nur ein leeres Fenster und die Browser meldeten: Fertig geladen. Als ich dann die Seite neu geladen habe, erschien wieder die Login Zeile(n).
Kann mir da zufällig irgendjemand helfen? Ich weiß nicht ob man hier wegen Doppelaccounts rausgeschmissen wird. Und dann wüsste ich gerne noch, wie ich diesen hier wieder löschen kann.
Lg Patti

Verfasst: Sonntag 15. Februar 2009, 19:42
von numerix
patti_pg hat geschrieben:Numerix: Das steht auf Seite 92.
Wenn du - so wie ich - die 2. Auflage (2007) hast, dann steht dort aber nirgends int('x'), sondern z.B. int('42') und das ist ja ein Unterschied. Möglicherweise hast du die 1. Auflage und der Fehler wurde mittlerweile behoben.