Problem mit Python

Thread Starter
Mitglied seit
14.09.2011
Beiträge
24
Ich hab mir mal vorgenommen Python zu lernen und mal angefangen zu studieren. Jetzt habe ich das erste Programm geschrieben:

secret = 1522
guess = 0
i == 0

while guess != secret:
if quess < secret:
print ("zu klein")
if guess > secret:
print("zu groß")
i = i + 1:
print("super, sie haben es in ",i,"Versuchen geschafft!")

wenn ich das ausführe zeigt er mir einen elend langen SyntaxError, aus welchem ich einig und allein herausfinden kann, dass der Fehler in Zeile 7 bemerkt wird.
Dann hat mir jemand einen anderen Quelltext gegeben- bei dem kommt ein ziemlich ähnlicher SyntaxError und auch in einer Zeile, in der nur ein print- Ausdruck steht. Wenn ich mit Python IDLE herumspiele, markiert er mir bei dieser Schreibweise print "hallo Welt" immer das letzte Zeichen rot. Schreibe ich das so print ("hallo Welt") geht es wieder.
Kann mir irgendwer helfen?
Danke
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Vermutlich verwendest du Python 3, hm?

Außerdem ist Einrückung in Python wichtig, um Blöcke abzugrenzen, daher muss der Code in deinem "while" Block einmal und der bei den ifs 2x eingerückt werden, in etwa so:

Code:
secret = 1522
guess = 0
i == 0

while guess != secret:
  if quess < secret:
    print ("zu klein")
  if guess > secret:
    print("zu groß")
  i = i + 1:
print("super, sie haben es in ",i,"Versuchen geschafft!")

i = i + 1 braucht keinen Doppelpunkt dahinter und kann auch als i += 1 geschrieben werden (sollte es sogar).
Einmal hast du "quess" statt "guess" geschrieben.
Ebenfalls vergleichst du ein nicht existierendes "i" mit 0 am Anfang. "i" ist übrigens nicht wirklich aussagekräftig als Variablenname.
Funktionieren sollte es also so (allerdings fehlt dir immer noch die Nutzereingabe, du bekommst also nur endlos "zu klein" gespammt):
Code:
secret = 1522
guess = 0
i = 0

while guess != secret:
  if guess < secret:
    print("zu klein")
  if guess > secret:
    print("zu groß")
  i += 1
print("Super, Sie haben es in",i,"Versuchen geschafft!")
 
Code:
#!/usr/bin/python
# -*- coding. utf-8 -*-


secret = 1522
guess = 0
i = 0


while guess != secret:


    guess = input ("Raten Sie: ")
    
    if guess < secret:
        print ("zu klein")
        
    elif guess > secret:
        print("zu gross") 
        
print("super, sie haben es in "),i,("Versuchen geschafft!")

so sieht jetzt mein Quelltext aus, wenn ich das Programm ausführe, kommt aber folgendes:
Code:
Traceback (mostcall last): 
   File "spiel.py", line 12, in <module> 
     if guess < secret:
typeError: unorderable types: str() < int()

wenn ich das richtig verstehe, will er wissen, ob ich das "guess" als String oder Int deklarieren will. Hab schon einiges ausprobiert, aber ohne Erfolg
 
Ok, gerade getestet, bei mir unter Windows mit Python 2.7.2 wirft das genau 0 Fehler und klappt ohne Probleme (bis auf den Umstand, dass du i nicht inkrementierst...)

Du solltest btw. laut pep 394 (http://www.python.org/dev/peps/pep-0394/) nicht nur #!/usr/bin/python in der shebang verwenden, wenn du auf python 2 oder 3 hin entwickelst, nur so als Tipp.
 
Zuletzt bearbeitet:
Sonst versuche eben "int(guess) < secret", Typumwandlung ist keine große Hexerei in Python. ;)
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh