Seite 1 von 1
Phyton script funtzt net (einsteiger)
Verfasst: Sonntag 29. Mai 2011, 19:18
von Fusionbreak
Hallo erstmal,
ich habe vor kurzen angefangen mich mit Phyton zu beschäftigen und komme bei dem vollgenden script nicht weiter:
Code: Alles auswählen
secred = 64
eingabe = 0
zähler = 0
while eingabe != secred:
eingabe = input("Rate mal")
if eingabe < secred:
print ("zu klein!")
if eingabe > secred:
print ("zu gross")
zähler = zähler + 1
print ("du hast es in :", zähler, "versuchen geschafft!")
Mein Editor zeigt mir dauern eine Fehlermeldung an, und ich weiß nicht so ganz wo der Fehler ist...
Re: Phyton script funtzt net (einsteiger)
Verfasst: Sonntag 29. Mai 2011, 19:37
von BlackJack
@Fusionbreak: Was ist das denn für eine Fehlermeldung?
Re: Phyton script funtzt net (einsteiger)
Verfasst: Sonntag 29. Mai 2011, 19:43
von Fusionbreak
TypeError: unorderable types: str() < int()
Ich benutze phyton 3.2 wenn das weiterhilft.
Re: Phyton script funtzt net (einsteiger)
Verfasst: Sonntag 29. Mai 2011, 19:48
von problembär
Na, ich schätze mal, dann gibt input() wohl als "eingabe" einen String zurück, was?
Re: Phyton script funtzt net (einsteiger)
Verfasst: Sonntag 29. Mai 2011, 19:53
von Fusionbreak
Was genau war nochmal ein "string"

Re: Phyton script funtzt net (einsteiger)
Verfasst: Sonntag 29. Mai 2011, 20:04
von problembär
Code: Alles auswählen
>>> a = "Hallo"
>>> type(a)
<type 'str'>
>>> a = 15
>>> type(a)
<type 'int'>
Re: Phyton script funtzt net (einsteiger)
Verfasst: Sonntag 29. Mai 2011, 20:08
von Fusionbreak
"eingabe" ist vom typ : 'int'
Re: Phyton script funtzt net (einsteiger)
Verfasst: Sonntag 29. Mai 2011, 20:37
von BlackJack
@Fusionbreak: Nein ist es nicht. Du kannst da der Dokumentation zu `input()` und der Fehlermeldung ruhig glauben.
Re: Phyton script funtzt net (einsteiger)
Verfasst: Sonntag 29. Mai 2011, 20:43
von Fusionbreak
Wenn ich mit meinen mauszeiger im meinen editor (physcripter) etwas länger auf eine variable zeige, sagt es mir welchen typ diese hat.
Jedes mal sagt mir der editor das "eingabe" vom typ int ist ist :S
Re: Phyton script funtzt net (einsteiger)
Verfasst: Sonntag 29. Mai 2011, 20:55
von Fusionbreak
habe auf die Phyton version 2.5 gewechselt. Jetzt klappt es ohne probleme!
Danke,
Re: Phyton script funtzt net (einsteiger)
Verfasst: Sonntag 29. Mai 2011, 21:15
von cofi
Fusionbreak hat geschrieben:Wenn ich mit meinen mauszeiger im meinen editor (physcripter) etwas länger auf eine variable zeige, sagt es mir welchen typ diese hat.
Jedes mal sagt mir der editor das "eingabe" vom typ int ist ist :S
Python! Mensch so schwer is das doch nich
Und Python ist eben so dynamisch, dass Tools es schwer haben guten Support zu leisten, darum kann man sich darauf nicht verlassen.
`input` in Python 2.x macht etwas anderes als `input` in Python 3.x, darum ist es auch _keine_ Loesung. In Python 2.x willst du stattdessen `raw_input` nutzen[1].
Wenn dein Tool dir sagt, dass `eingabe` ein Int ist, kann es sein, das es auf Python 2 eingestellt ist?
[1] Ja du _willst_, es sei denn du kannst Eingaben wie __import__('sys').exit() ausschliessen.
Re: Phyton script funtzt net (einsteiger)
Verfasst: Sonntag 29. Mai 2011, 22:20
von pixewakb
Bitte korrigiert mich, aber 2.7 ist die aktuelle Version.
Code: Alles auswählen
import random
geheimnis = random.randint(1,100)
eingabe = 0
zähler = 0
print('Rateprogramm: Rate eine Zahl zwischen 1 und 100!')
while eingabe != geheimnis:
eingabe = int(input("Rate mal: "))
if eingabe < geheimnis:
print("Zu klein!")
if eingabe > geheimnis:
print("Zu groß.")
zähler = zähler + 1
print("Super! Richtig!\nDu hast es in", zähler, "Versuchen geschafft!")
Schau mal über den Quellcode (3.2). Möglicherweise gefällt dir das auch...
--
Änderungswünsche, siehe unten, umgesetzt.
Re: Phyton script funtzt net (einsteiger)
Verfasst: Sonntag 29. Mai 2011, 22:37
von cofi
pixewakb hat geschrieben:Bitte korrigiert mich, aber 2.7 ist die aktuelle Version.
Das kann man so sehen, aber spaetestens mit Python3.3 ist das nur mit dem Nachsatz "für Python 2.x" gueltig.
Zum Code: Was du loswerden solltest ist das denglisch, halte alle Namen in _einer_ natuerlichen Sprache. Es reicht, dass man sich mit (mindestens) 2 Sprachen beschaeftigen muss.
Daneben solltest du `print` wie eine normale Funktion schreiben: mit den Klammern am Namen und die Umwandlung der Eingabe ist IMHO auch besser in einer Zeile lesbar.
Re: Phyton script funtzt net (einsteiger)
Verfasst: Sonntag 29. Mai 2011, 22:50
von sma
Können wir bitte ganz schnell noch "secred" entweder in "secret" ändern oder, weil ja die anderen Variablen auch alle Deutsch sind, das gleich "geheimnis" nennen?

Dann würde ich noch vorschlagen ``eingabe = int(input("Rate..."))`` zu schreiben, um ein und die selbe Variable nicht zweimal zu benutzen und die Regel von cofi zu beherzigen empfehlen, das Leerzeichen bei print zu entfernen und das ist das Programm prima. Variablen kann man natürlich problemlos mehrfach verwenden, aber es ist so ein stilistisches Ding. Eine Variable sollte immer nur Dinge eines Typs enthalten, also nicht erst ein String und dann eine Zahl.
Stefan
Re: Phyton script funtzt net (einsteiger)
Verfasst: Montag 30. Mai 2011, 18:28
von Leonidas
unr bei Python 2.x ``raw_input`` statt ``input`` verwenden. Dann macht das ``int()`` drumrum auf einmal sogar sinn.