Hilfe, Anfänger

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
docDude
User
Beiträge: 7
Registriert: Dienstag 3. März 2009, 19:55

Hallo!

Ich bin absoluter Anfänger und habe vor ca. 3 Stunden angefangen mich mit Python zu beschäftigen. Die ersten 2,5 Stunden gingen dafür drauf eclipse mit pydev auf Mac OS X zum Laufen zu bringen.. :D In der restlichen halben Stunde habe ich meinen ersten "Code" (ist das schon einer? :D) geschrieben.

Jetzt habe ich aber ein Problem mit dem Code..
und zwar..

Code: Alles auswählen

iq = input("Ihr IQ liegt bei: ")
print
if iq<50:
    print "Vist www.bravo.de"
elif 180>iq>50:
  print "Visit www.jajajaja.org"
elif iq >= 180 and not 1337:
  print "Wohl eher nicht, du Cheat0r"
elif iq == 1337:
    print "Visit www.wasauchimmer.de.vu" 
Ich will hier, dass bei Zahlen, die größer sind als 180 und nicht 1337 das "Wohl eher nicht, du Cheat0r!" kommt. Tut es aber nicht.. Ich habe keine Ahnung wieso. Ist wahrscheinlich ein absoluter Noob-Fehler, aber ich habe eben keine Ahnung..

Ich weiß nichtmal, ob das das richtige Unterforum ist.


Grüße, docDude[/code]
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Dieses Unterforum ist zum Angeben da. Du erstellst hier also dann einen neuen Thread, wenn du etwas nützliches und lauffähiges Skript vorstellen möchtest. Zu deinem Problem:

Code: Alles auswählen

elif iq >= 180 and iq != 1337:
sollte es tun. Arbeite am besten mal das Tutorial durch, dann weißt du auch, warum.
docDude
User
Beiträge: 7
Registriert: Dienstag 3. März 2009, 19:55

derdon hat geschrieben:Dieses Unterforum ist zum Angeben da. Du erstellst hier also dann einen neuen Thread, wenn du etwas nützliches und lauffähiges Skript vorstellen möchtest. Zu deinem Problem:

Code: Alles auswählen

elif iq >= 180 and iq != 1337:
sollte es tun. Arbeite am besten mal das Tutorial durch, dann weißt du auch, warum.
Oh.. Dann ähm. Sorry und Danke. :) :)


Angeben.. Ähm ich habe..

Achso.. :< Mit Skripten. :/
Benutzeravatar
hendrikS
User
Beiträge: 420
Registriert: Mittwoch 24. Dezember 2008, 22:44
Wohnort: Leipzig

Im Showcase solltest Du eigentlich eher fertige oder fast fertige Projekte vorstellen. Solche Fragen wuerde ich eher im "Allgemeines" Forum unterbringen.

Abgesehen davon sollte die Condition so aussehen:

Code: Alles auswählen

iq >= 180 and iq != 1337
Ansonsten willkommen.

Edit: derdon war n bisschen schneller.
docDude
User
Beiträge: 7
Registriert: Dienstag 3. März 2009, 19:55

Dir auch Danke.
hendrikS hat geschrieben: Solche Fragen wuerde ich eher im "Allgemeines" Forum unterbringen.
Hatte ich mir auch überlegt.. Aber in den meisten Foren, in den ich unterwegs bin, wird man fast gekickt, wenn man in einem Unterforum postet, dass zu allgemein ist. :D
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

docDude hat geschrieben:
hendrikS hat geschrieben: Solche Fragen wuerde ich eher im "Allgemeines" Forum unterbringen.
Hatte ich mir auch überlegt.. Aber in den meisten Foren, in den ich unterwegs bin, wird man fast gekickt, wenn man in einem Unterforum postet, dass zu allgemein ist. :D
Keine Sorge, bei uns passiert das nicht.

Bei uns wird man geteert, gefedert und geduscht.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

Code: Alles auswählen

iq = input("Ihr IQ liegt bei: ")
print
if iq<50:
    print "Vist www.bravo.de"
elif 180>iq>50:
  print "Visit www.jajajaja.org"
elif iq == 1337:
    print "Visit www.wasauchimmer.de.vu" 
else:
  print "Wohl eher nicht, du Cheat0r"
find ich den logischeren Ablauf....
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Warum ist jemand ein "Cheat0r", der einen IQ von 50 hat?
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

derdon hat geschrieben:Warum ist jemand ein "Cheat0r", der einen IQ von 50 hat?
Weil so jemand nicht intelligent genug wäre, seinen IQ einzutippen.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
docDude
User
Beiträge: 7
Registriert: Dienstag 3. März 2009, 19:55

derdon hat geschrieben:Warum ist jemand ein "Cheat0r", der einen IQ von 50 hat?
dann mach ich eben ein <= draus. :D
docDude
User
Beiträge: 7
Registriert: Dienstag 3. März 2009, 19:55

Achja: Wenn mir jetzt noch jemand sagt, warum bei der Eingabe von Buchstaben ein Fehler auftritt, war's das für heute. 8) 8)
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

input([prompt])¶

Equivalent to eval(raw_input(prompt)).

Warning

This function is not safe from user errors! It expects a valid Python expression as input; if the input is not syntactically valid, a SyntaxError will be raised. Other exceptions may be raised if there is an error during evaluation. (On the other hand, sometimes this is exactly what you need when writing a quick script for expert use.)

If the readline module was loaded, then input() will use it to provide elaborate line editing and history features.

Consider using the raw_input() function for general input from users.
Die Eingabe die über input() eingelesen wird, wird von dem Intepreter auch direkt ausgeführt. Verwende deshalb raw_input()
(Achtung, raw_input liest die Eingabe als String ein, diesen musst du dann in einen int konvertieren)
docDude
User
Beiträge: 7
Registriert: Dienstag 3. März 2009, 19:55

DatenMetzgerX hat geschrieben:
input([prompt])¶

Equivalent to eval(raw_input(prompt)).

Warning

This function is not safe from user errors! It expects a valid Python expression as input; if the input is not syntactically valid, a SyntaxError will be raised. Other exceptions may be raised if there is an error during evaluation. (On the other hand, sometimes this is exactly what you need when writing a quick script for expert use.)

If the readline module was loaded, then input() will use it to provide elaborate line editing and history features.

Consider using the raw_input() function for general input from users.
Die Eingabe die über input() eingelesen wird, wird von dem Intepreter auch direkt ausgeführt. Verwende deshalb raw_input()
(Achtung, raw_input liest die Eingabe als String ein, diesen musst du dann in einen int konvertieren)
cool, danke!
werde ich austesten!
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Generell ist es immer hilfreich den Fehler hier zu posten! In diesem Falle war es trivial, aber ansonsten erspart es einem lästiges Gerate oder das selber Ausprobieren!
docDude
User
Beiträge: 7
Registriert: Dienstag 3. März 2009, 19:55

Hyperion hat geschrieben:Generell ist es immer hilfreich den Fehler hier zu posten! In diesem Falle war es trivial, aber ansonsten erspart es einem lästiges Gerate oder das selber Ausprobieren!
Werde ich mir merken! :)
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

Und noch warum dein ursprünglicher Code nicht funktioniert:

Du wolltest vermutlich etwas in dieser Form ausdrücken: "x and y <operator> ...". Dafür ist der and Operator nicht da. Dieser verknüpft nur ganze Wahrheitswerte, weswegen du die Bedingungen ausschreiben musst und mit "and" eben keine Vergleiche irgendwie zusammenbauen kannst. "not 1337" prüft nun nicht auf Gleichheit, sondern (da not auch ein boolscher Operator ist) negiert den Wahrheitswert von 1337. Da jede Zahl außer 0 True ist, wird das immer False, und True and False ergibt natürlich wieder False.
Antworten