Anfänger Frage

Code-Stücke können hier veröffentlicht werden.
Antworten
huba
User
Beiträge: 3
Registriert: Sonntag 2. Februar 2014, 20:37

Hallo,

ich bin Python Neuling und habe eine Frage wieso bei diesem code:

Code: Alles auswählen

y=raw_input("Your age?: "); 
if y <= 21: 
	print("%s? Wow! you're still quite young!" % y);
elif y >= 22:			#Hier funktioniert <= und >= irgendwie nicht.
	print("%s? Wow! You're quite old!" % y);
else: 
	print("%s? Okay Cool!" % y);
<= und >= funktionieren bei mir nicht. es kommt immer you're quite old!
Vielen Dank im vorraus!

Liebe Grüße,

Huba
Zuletzt geändert von Anonymous am Sonntag 2. Februar 2014, 21:22, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

Hallo huba,
Du versuchst Strings mit Ints zu vergleichen. »raw_input« liefert einen String, den Du erst in ein Int verwandeln mußt:

Code: Alles auswählen

y = int(raw_input("Your age?: "))
»print« ist in Python 2 keine Funktion, also solltest Du auch keine Klammern schreiben, und alle Strichpunkte sind bei Dir überflüssig.
BlackJack

Ergänzend: Die ``;`` an den Zeilenenden sind überflüssig und ich wüsste ja gerne mal bei welchem Wert von `y` der ``else``-Zweig ausgeführt wird. :-)
huba
User
Beiträge: 3
Registriert: Sonntag 2. Februar 2014, 20:37

Vielen Dank für die schnellen Antworten!

mein else Zweig ist natürlich ziemlich idiotisch :D
das mit 'int' habe ich leider nicht bedacht :-/ Danke!

LG

Huba
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

@BlackJack Darum ist doch auch die Antwort, dass der Wert cool ist! :)
huba
User
Beiträge: 3
Registriert: Sonntag 2. Februar 2014, 20:37

PS
";" habe ich verschwinden lassen! Nochmals Danke!
Kurze Frage wo genau kann ich jetzt die Klammern weglassen?
Sorry für die dummen Fragen :/
jqz4n
User
Beiträge: 21
Registriert: Sonntag 2. Februar 2014, 19:26

du kannst jedes

Code: Alles auswählen

print("%s irgendwas"%irgendeine_variable)
durch

Code: Alles auswählen

print "%s irgendwas"%irgendeine_variable
ersetzen
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Es gibt keine dummen Fragen. Das wichtigste, das du lernen kannst ist aber, den interaktiven Interpreter herzunehmen und zu probieren.

Konkret zeigt `raw_input`, dass du Python 2 benutzt, in Python 2 ist `print` aber keine Funktion. Darum solltest du dort die Klammern weglassen.
Probiere zum Beispiel mal `print(1,2)` und `print 1, 2` aus.
Astorek
User
Beiträge: 72
Registriert: Samstag 24. Januar 2009, 15:06
Kontaktdaten:

Ich möchte mich mal hier kurz wegen der "Print in Klammern"-Sache einmischen: Und was ist, wenn man (aus welchen Gründen auch immer) Kompatibilität zu Python2 UND Python3 halten möchte?

Man kann die Print-Anweisungen ja auch so schreiben, dass die Ausgabe in beiden Python-Versionen exakt gleich sind... :K
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@Astorek: man kann auch einfach

Code: Alles auswählen

from __future__ import print_function
schreiben und seit Python 2.6 print als Funktion einsetzen.
Astorek
User
Beiträge: 72
Registriert: Samstag 24. Januar 2009, 15:06
Kontaktdaten:

@Sirius3: Ah, das ist eine schöne Variante. Danke für den Tipp, den kannte ich auch noch nicht^^. :)
BlackJack

@Astorek: `absolute_import` und `division` importiere ich an der Stelle auch immer gleich aus dem `__future__`-Modul.
Antworten