Konvertierung String nach Integer

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
patti.pg
User
Beiträge: 2
Registriert: Samstag 14. Februar 2009, 11:18
Wohnort: Lübeck

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
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Dann ersetz mal deine Literale (42, '42') durch die Variable ... mensch Kinners, wo is denn, die experimentierfreudigkeit hin? :O
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo patti.pg

Hier in Code:

Code: Alles auswählen

print int(x) ** int(y)
Gruss wuf :wink:
Take it easy Mates!
Benutzeravatar
hendrikS
User
Beiträge: 420
Registriert: Mittwoch 24. Dezember 2008, 22:44
Wohnort: Leipzig

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.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

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.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Darum benutzt man auch ipython zum spielen ;)
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

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.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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 ... ;)
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Die deprecated Meldungen hat man doch wohl mit ein paar Handgriffen beseitigt.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Mir ging es vor allem um 3.0 > 2.5 ...
patti.pg
User
Beiträge: 2
Registriert: Samstag 14. Februar 2009, 11:18
Wohnort: Lübeck

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!
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

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?
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

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.
BlackJack

Code: Alles auswählen

In [40]: int('x', 36)
Out[40]: 33
:-)
patti_pg
User
Beiträge: 3
Registriert: Sonntag 15. Februar 2009, 17:25

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
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

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.
Antworten