Seite 1 von 1
Anfänger Frage
Verfasst: Sonntag 2. Februar 2014, 20:40
von huba
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
Re: Anfänger Frage
Verfasst: Sonntag 2. Februar 2014, 20:53
von Sirius3
Hallo huba,
Du versuchst Strings mit Ints zu vergleichen. »raw_input« liefert einen String, den Du erst in ein Int verwandeln mußt:
»print« ist in Python 2 keine Funktion, also solltest Du auch keine Klammern schreiben, und alle Strichpunkte sind bei Dir überflüssig.
Re: Anfänger Frage
Verfasst: Sonntag 2. Februar 2014, 21:30
von 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.

Re: Anfänger Frage
Verfasst: Sonntag 2. Februar 2014, 22:01
von huba
Vielen Dank für die schnellen Antworten!
mein else Zweig ist natürlich ziemlich idiotisch
das mit 'int' habe ich leider nicht bedacht :-/ Danke!
LG
Huba
Re: Anfänger Frage
Verfasst: Sonntag 2. Februar 2014, 22:08
von cofi
@BlackJack Darum ist doch auch die Antwort, dass der Wert cool ist!

Re: Anfänger Frage
Verfasst: Sonntag 2. Februar 2014, 22:24
von huba
PS
";" habe ich verschwinden lassen! Nochmals Danke!
Kurze Frage wo genau kann ich jetzt die Klammern weglassen?
Sorry für die dummen Fragen :/
Re: Anfänger Frage
Verfasst: Sonntag 2. Februar 2014, 22:26
von jqz4n
du kannst jedes
durch
ersetzen
Re: Anfänger Frage
Verfasst: Sonntag 2. Februar 2014, 22:27
von cofi
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.
Re: Anfänger Frage
Verfasst: Donnerstag 1. Januar 2015, 12:13
von Astorek
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
Re: Anfänger Frage
Verfasst: Donnerstag 1. Januar 2015, 12:18
von Sirius3
@Astorek: man kann auch einfach
schreiben und seit Python 2.6 print als Funktion einsetzen.
Re: Anfänger Frage
Verfasst: Donnerstag 1. Januar 2015, 15:59
von Astorek
@Sirius3: Ah, das ist eine schöne Variante. Danke für den Tipp, den kannte ich auch noch nicht^^.

Re: Anfänger Frage
Verfasst: Donnerstag 1. Januar 2015, 16:05
von BlackJack
@Astorek: `absolute_import` und `division` importiere ich an der Stelle auch immer gleich aus dem `__future__`-Modul.