Seite 1 von 1

Anfänger: Syntax Error bei print

Verfasst: Dienstag 27. Juli 2010, 16:34
von banthrass
Hallo zusammen.

bin neu in Python und bitte um verständniss.

Ich muss es hier auf der Arbeit unter Windows betreiben.

Ich habe mal mit dem Galileo Open book angefangen und bekomme von IDLE Immer einen Fehler der leider nicht wirklich erklärt wird.

Code: Alles auswählen

secret = 1337
guess = 0
i = 0

while guess != secret :
	guess = input("Raten Sie: ")
	
	if guess < secret :
		print "Die Zahl ist zu klein"	
	if guess > secret :
		print "Die Zahl ist zu gross"
		
	i = i + 1
	
print "Super ! Du hast es nach" , 1, "Versuchen geschafft"
in der ersten if schleife meckert er beim zweiten " von der print Anweisung. Mir wird nur gesagt "Invalid Syntax"

Wo liegt der Fehler?

Welche IDE kann man für Python empfehlen?

Danke euch

Re: Anfänger: Syntax Error bei print

Verfasst: Dienstag 27. Juli 2010, 16:45
von halo23
Ich kann bei dem Skript keinen Syntaxfehler feststellen.
Evtl. stimmt die Kodierung nicht, oder du hat ein unsichtbares Sonderzeichen drin?
Du hast vielleicht copy & paste angewendet um den Teil in deine Editor zu bekommen?

Re: Anfänger: Syntax Error bei print

Verfasst: Dienstag 27. Juli 2010, 16:46
von ms4py
Hast du Python3? Dann ist `print` kein Statement, sondern eine Funktion.

Das Galileo-Buch ist außerdem nicht geeignet für Anfänger, wurde im Forum schon mehrmals angesprochen, such einfach mal danach, wenn es dich näher interessiert. Nimm besser das offizielle Tutorial oder "A Byte of Python".

Re: Anfänger: Syntax Error bei print

Verfasst: Dienstag 27. Juli 2010, 16:47
von Liffi
1. Es gibt keine if-schleifen
2. Es liegt vermutlich an deiner Python Version. Versuche mal print("Die Zahl") zu benutzen.

Re: Anfänger: Syntax Error bei print

Verfasst: Dienstag 27. Juli 2010, 16:49
von halo23
Liffi hat geschrieben:Es liegt vermutlich an deiner Python Version. Versuche mal print("Die Zahl") zu benutz
Stimmt, dass kann natürlich auch der Grund dafür Dein Problem sein, denn in Python3 ist print eine Funktion geworden, also print()

Re: Anfänger: Syntax Error bei print

Verfasst: Dienstag 27. Juli 2010, 16:54
von banthrass
da print eine Funktion ist, habe ich dann einfach mal () drum herum gemacht und siehe da, nun klapts. Danke schonmal.

nächstes Problem scheint bei dem vergleichen von verschiedenen Datentypen zu erscheinen. Allerdings weiß ich auch da grad nciht woran es liegt

Code: Alles auswählen

Traceback (most recent call last):
  File "C:\Python31\test\test.py", line 8, in <module>
    if guess < secret:
TypeError: unorderable types: str() < int()
Ps.: Ich habe mich bereits vom Galileo Buch abgewendet, da es nicht sooo aktuell ist wie mir scheint. lese nun A byte of Python. Gibt es einen guten Editor für Python? was kann man da empfehlen?

Danke

Re: Anfänger: Syntax Error bei print

Verfasst: Dienstag 27. Juli 2010, 17:00
von ms4py
banthrass hat geschrieben:nächstes Problem scheint bei dem vergleichen von verschiedenen Datentypen zu erscheinen. Allerdings weiß ich auch da grad nciht woran es liegt
In der Regel kannst du nur die selben Datentypen vergleichen => Du musst die Eingabe in einen Integer konvertieren.
banthrass hat geschrieben:Gibt es einen guten Editor für Python? was kann man da empfehlen?
Für den Anfang reicht ein Editor mit Syntax-Highlighting, das kann eigentlich jeder. Alles andere lenkt am Anfang nur ab.

Re: Anfänger: Syntax Error bei print

Verfasst: Dienstag 27. Juli 2010, 17:01
von Jack Daniels

Code: Alles auswählen

>>> guess = input("Raten Sie: ")
Raten Sie: 1
>>> type(guess)
<class 'str'>
Das heißt, du musst die Eingabe in eine Zahl umwandeln, bevor du sie mit einer anderen Zahl vergleichen kannst.

Edit: Da war ich wohl zu spät... :x :wink:

Re: Anfänger: Syntax Error bei print

Verfasst: Dienstag 27. Juli 2010, 17:03
von ichisich

Code: Alles auswählen

    if guess < secret:
TypeError: unorderable types: str() < int()
Du vergleichst Birnen mit Äpfeln, da

Code: Alles auswählen

guess= input("gibt was ein: ")
einen String liefert den du dann mit einem Interger vergleichst.

Code: Alles auswählen

  guess= int(input("gibt was ein: "))
geht glaub ich ...

Editoren gibts nen Haufen, auch nen Haufen Diskussionen hier im Forum und im Internet.

Gruß

Edit: verdammt letzter ...

Code: Alles auswählen

  guess= int(input("gibt was ein: "))
ist extrem doof wie ich gerade bedacht habe da es einen Fehler gibt wenn KEINE Zahl eingegeben wird ...

Re: Anfänger: Syntax Error bei print

Verfasst: Dienstag 27. Juli 2010, 18:07
von rads
banthrass hat geschrieben:...

Code: Alles auswählen

...
	if guess < secret :
		print "Die Zahl ist zu klein"	
	if guess > secret :
		print "Die Zahl ist zu gross"
...		
Kleine Unschuldige Anmerkung:

An sich machen zwei aufeinander folgende IF-Bedinungen weniger Sinn, wenn sie sich gegenseitig ausschließen.
So werden beide Bedingungen geprüft. Einfach aus dem zweiten If ein Elif machen.

Code: Alles auswählen

print "Super ! Du hast es nach" , 1, "Versuchen geschafft"
Anstatt 1 sollte ein i stehen, was sicherlich nur ein Schreibfehler war.

Grüße

Re: Anfänger: Syntax Error bei print

Verfasst: Mittwoch 28. Juli 2010, 10:24
von banthrass
Danke für die Hilfe.

Dann werd ich mal ein verscuehn da eine Lösung für zu finden.

Re: Anfänger: Syntax Error bei print

Verfasst: Donnerstag 29. Juli 2010, 22:04
von ZEins
Wenn du Python 3.1 lernst, ist das Galileo Buch mehr Müll, als es schon bei Python 2.5 ist. Es hat sich wohl viel in Python verändert und von "alten Hasen" im Python-Gewerbe wird dieses Buch als extrem schlecht bewertet: Meinung eines Programmierers.
Das beste Tutorial für Python 3.1 findest du hier.

Re: Anfänger: Syntax Error bei print

Verfasst: Freitag 30. Juli 2010, 01:55
von gkuhl
ZEins hat geschrieben:Das beste Tutorial für Python 3.1 findest du hier.
Bzw. hier auf deutsch.