Seite 1 von 1

Hilfe, Anfänger

Verfasst: Dienstag 3. März 2009, 20:01
von docDude
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]

Verfasst: Dienstag 3. März 2009, 20:11
von derdon
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.

Verfasst: Dienstag 3. März 2009, 20:13
von docDude
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. :/

Verfasst: Dienstag 3. März 2009, 20:13
von hendrikS
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.

Verfasst: Dienstag 3. März 2009, 20:18
von docDude
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

Verfasst: Dienstag 3. März 2009, 21:03
von birkenfeld
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.

Verfasst: Dienstag 3. März 2009, 21:36
von DatenMetzgerX

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

Verfasst: Dienstag 3. März 2009, 21:39
von derdon
Warum ist jemand ein "Cheat0r", der einen IQ von 50 hat?

Verfasst: Dienstag 3. März 2009, 21:43
von birkenfeld
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.

Verfasst: Dienstag 3. März 2009, 21:53
von docDude
derdon hat geschrieben:Warum ist jemand ein "Cheat0r", der einen IQ von 50 hat?
dann mach ich eben ein <= draus. :D

Verfasst: Dienstag 3. März 2009, 21:58
von docDude
Achja: Wenn mir jetzt noch jemand sagt, warum bei der Eingabe von Buchstaben ein Fehler auftritt, war's das für heute. 8) 8)

Verfasst: Dienstag 3. März 2009, 22:02
von DatenMetzgerX
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)

Verfasst: Dienstag 3. März 2009, 22:03
von docDude
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!

Verfasst: Dienstag 3. März 2009, 22:04
von Hyperion
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!

Verfasst: Dienstag 3. März 2009, 22:09
von docDude
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! :)

Verfasst: Mittwoch 4. März 2009, 14:39
von str1442
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.