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:

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.

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 :D
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

Code: Alles auswählen

print("%s irgendwas"%irgendeine_variable)
durch

Code: Alles auswählen

print "%s irgendwas"%irgendeine_variable
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

Code: Alles auswählen

from __future__ import print_function
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.