Seite 1 von 2

Problem bei dem starten eines Programmes.

Verfasst: Sonntag 12. Dezember 2004, 16:07
von JOJO
Hallo zusammen

Also ich bin nen neuling aber bin total begeistert von Python aber habe momentahn nen Problem und zwar habe hier ein ganz kleines Progranm und das will nicht laufen könnt ihr mir helfen hier ist der Code.

Code: Alles auswählen

# Autor: Timo Eichsädt
# Datum: 12.12.2004
# quiz.py: Das erste Quiz

frage = "Welche Programiersprache lernne ich gerade? "
loesung = "Python"

antowort = raw_input(frage)
if antwort == loesung:
    print "Richtig! "

if antwort != loesung:
    print "Leider falsch! "
    Richtig ist: ", loesung

# End
Ich habe die Datei als quiz.py abgespeichert aber wenn ich sie starten will (pehr doppelklick) kommt nur für einige millisekunden die schwarze Console.
Was mache ich falsch ?

MFG JOJO

Edit (Leonidas): Code in Python Tags gesetzt

Verfasst: Sonntag 12. Dezember 2004, 16:26
von Dookie
Hi JOJO,

soweit ich das sehe ist in der letzten Zeile ein Fehler:

Code: Alles auswählen

    Richtig ist: ", loesung 
sollte wohl heissen:

Code: Alles auswählen

    print "Richtig ist: ", loesung 
Zum Testen unter Windows verwende ein Dosfenster, von dem aus du das Script startest oder IDLE. Das normale Ausgabefenster wird leider auch bei Fehlern im Script nach beenden des Programmes gleich geschlossen und so kannst du Fehlermeldungen nicht lesen.


Gruß

Dookie

Verfasst: Sonntag 12. Dezember 2004, 16:51
von JOJO
Ok super also es läuft jetzt zur hälfe ;)
Also ich kann jetzt die antwort zu frage eingeben aber nachdem ich die antwort eigegeben habe beendet er das programm wieder :/
also da muss wohl noch nen fehle sein :/

Wie kann ich das Prgramm im DOS Fenster starten so das ich die Fehlermeldungen lesen kann ?

MFG JOJO

Verfasst: Sonntag 12. Dezember 2004, 17:03
von Clython
Welches Windows benutzt du? Die Eingabeaufforderung findest du normalerweise unter Programme/Zubehör.
Wenn du python in die Umgebungsvariable getan hast, kannst du es in der Konsole jederzeit aufrufen, sonst musst du ins Verzeichnis wechseln wo python steckt und das Programm entweder mit "python quiz.py" oder (wenn der Code nicht im gleichen Verzeichnis ist) mit "python foo\quiz.py" aufrufen.
Wobei foo durch den Pfad zu der Datei ersetzt werden muss.

Falls du keine Ahnung von DOS hast, solltest du dir vielleicht mal die grundlegenden Befehle beibringen: dir, cd, copy etc.

Re: Problem bei dem starten eines Programmes.

Verfasst: Sonntag 12. Dezember 2004, 17:15
von Leonidas
JOJO hat geschrieben:

Code: Alles auswählen

antowort = raw_input(frage)
if antwort == loesung:
    print "Richtig! "

if antwort != loesung:
    print "Leider falsch! "
    Richtig ist: ", loesung
Sollte es nicht

Code: Alles auswählen

antwort = raw_input(frage)
heißen? Weil du hast antowort geschrieben...
Ich würde es dir ja empfehlen Python.exe im %PATH% zu haben, dann kannst du aus der Eingabeaufforderung (was für ein Mistwort) direkt startet: python quiz.py

Verfasst: Sonntag 12. Dezember 2004, 17:27
von Clython
Hey nicht den Boten erschiessen, ich benutze auch lieber Shell oder der Schwarzetippkasten, aber den Noobs muss man ja immer alles aufs Auge binden :wink:

Verfasst: Sonntag 12. Dezember 2004, 17:30
von JOJO
@Clython: Ich benutze Windows-XP-Professional

@Leonidas: jo sollte antwort heißen ^^

Jetzt läuft das Programm aber wenn ich die Antwort eingegeben habe
kommt für nen paar Millisekunden der Text (richtig oder falsch)
aber das Programm beendet zu schnell wie kann ich ihm sagen das ich nochmal "Enter" drücken muss damit er das Programm beendet ?
oder ne zeit angabe ?


MFG JOJO

Verfasst: Sonntag 12. Dezember 2004, 17:43
von Clython
Dann solltest du Folgendes tun:

Start/Systemsteuerung/System/Erweitert/Umgebungsvariablen

Dort klickst du die Zeile PATH an un drückst auf den Knopf "Bearbeiten". Dann fügst du am Ende der Zeile zuerst ein ; (falls noch nicht vorhanden) und darauf den Pfad zu Python (wahrscheinlich was wie c:\Programme\Python24) oder so.

Okay drücken und PC neu starten, damit die Änderung greift.

Wenn du jetzt über Start/Programme/Zubehör/Eingabeaufforderung das DOS Fenster öffnest, sollte python von jedem Verzeichnis aus aufrufbar sein. Alles was du noch tun musst, ist ins Verzeichnis zu wechseln, wo dein Quelltext liegt und in mit python quiz.py auszuführen.

Für faule und dumme bietet sich noch dieser kleine Kniff an: Rufe am Ende deines Codes nochmal ein raw_input() auf, dann musst du noch einmal auf Enter drücken bevor das Fenster zugeht.

Die erste Methode ist aber jene die wir dir hier empfehlen, das andere ist eigentlich ziemlich schlechter Stil...

Verfasst: Sonntag 12. Dezember 2004, 18:11
von JOJO
Puhhhh jetzt meint er:
python: can`t open file 'quiz.py'

habe alles so gemacht wie du gesagt hast :)


MFG JOJO

Verfasst: Sonntag 12. Dezember 2004, 18:19
von Leonidas
Clython hat geschrieben:Hey nicht den Boten erschiessen, ich benutze auch lieber Shell oder der Schwarzetippkasten, aber den Noobs muss man ja immer alles aufs Auge binden :wink:
Nein, war ja auch nicht gegen dich gerichtet, sondern gegen den der sich das Wort ausgedacht hat, sorry wenn es falsch rübergekommen ist.
JOJO hat geschrieben:Puhhhh jetzt meint er:
python: can`t open file 'quiz.py'
Okay, angenommen du hast das Script in C:\PyProgs\quiz.py, dann musst du folgendes in der Konsole eingeben:

Code: Alles auswählen

C:
cd \
cd PyProgs
python quiz.py
Oder

Code: Alles auswählen

python C:\PyProgs\quiz.py
Denn der Python Interpreter muss ja wissen, wo genau er dein Programm finden kann.

Verfasst: Sonntag 12. Dezember 2004, 18:24
von JOJO
*freu*

es geht =)
Thx 4 help
mein erstes kleinen "Programm" läuft =)


MFG JOJO

Verfasst: Sonntag 12. Dezember 2004, 18:26
von Leonidas
Super! Ein Python Programmierer mehr :)
Ich möchte noch anmerken, dass es nicht nur bei Python so "kompliziert" ist, sondern auch bei anderen Sprachen (und besonders unter Windows wo im PATH meist nichts interessantes steht), denn es gibt eigentlich keinen anderen, besseren Weg.

Verfasst: Sonntag 12. Dezember 2004, 18:45
von Clython
Freut mich das es funktioniert. Wie schon gesagt, solltest du dir jetzt vielleicht noch die grundlegenden Befehle des Schwarzentippkastens beibringen. Das wird dir das Leben erleichtern, speziel sobald du mal mit Dateien rumspielen willst...

Verfasst: Sonntag 12. Dezember 2004, 19:05
von JOJO
Jop werde ich machen :)
thx 4 help
Ps: werde ich noch des öfteren in anspruch nehmen ^^

MFG JOJO

Verfasst: Montag 13. Dezember 2004, 07:45
von jens
Du hättest auch, damit man das Ergebniss noch sehen kann, ganz am Ende ein pause = raw_input("[ENTER drücken]") einfügen können ;) Muß man auch immer bei Batch-Progs machen, wenn man sie einfach nur per doppel-klick ausführt...

Verfasst: Montag 13. Dezember 2004, 15:08
von Leonidas
jens hat geschrieben:Du hättest auch, damit man das Ergebniss noch sehen kann, ganz am Ende ein pause = raw_input("[ENTER drücken]") einfügen können Wink Muß man auch immer bei Batch-Progs machen, wenn man sie einfach nur per doppel-klick ausführt...
Clython hat geschrieben:Für faule und dumme bietet sich noch dieser kleine Kniff an: Rufe am Ende deines Codes nochmal ein raw_input() auf, dann musst du noch einmal auf Enter drücken bevor das Fenster zugeht.
Man könnte auch nur raw_input("[ENTER drücken]") nehmen, das geht auch, weil du die Eingabe ja nicht brauchst, aber Clython hat rech: das ist kein guter Stil.

Verfasst: Montag 13. Dezember 2004, 15:09
von jens
Das wuste ich nicht... Auch nicht schlecht... Eine Eingabe die Sinnlos ist, so zu sagen... :lol:

Verfasst: Montag 13. Dezember 2004, 15:16
von Leonidas
In Python muss du ja die Rückgabewerte von Funktionen nicht unbedingt nutzen. du kannst sie auch einfach ignorieren. Beispielsweise ist es in Basic so, dass es Subs und Functions gibt, die einen geben etwas zurück die anderen nicht - sonst sind sie gleich. Komisch nicht? ;)

Verfasst: Dienstag 14. Dezember 2004, 19:18
von JOJO
So ich habe mein kleines Quiz-Programm ein bisschen erweitert es läuft auch bis auf eine kleining kleingkeit wo ich mir nich zu helfen weiss.
Hier der neue Code

Code: Alles auswählen

# Autor: Timo Eichsädt
# Datum: 12.12.2004
# quiz.py: Das erste Quiz

def quizfrage():
    global punkte
    antwort = raw_input(frage)
    if antwort == loesung:
        print "Richtig."
        punkte = + 1
    else:
        print "Leider falsch."
        print "Richtig ist:", loesung
    print

punkte = 0

frage = "Mit welcher Sprache wurde dieses Programm geschrieben? "
loesung = "Python"
quizfrage()

frage = "Mit welchen reservierten Wort beginnt eine Funktionsdefinition? "
loesung = "def"
quizfrage()

frage = "Wie viel reservierte woerter hat Python? "
loesung = "29"
quizfrage()

print "Du hast", punkte
print "von 3 moeglichen Punkten erreicht."

if punkte == 3:
    print "Sehr gut Note 1"
else:
    print "Nicht schlecht aber du musst mehr ueben"

# End
Ich habe ja gesagt wenn die antwort richtig ist soll er der variablen PUNKT
+1 dazu rechen aber das macht er irgenwie nicht.
Es steht immer am ande das ich nur 1 Punkt erreicht habe obwohl ich alle Fragen richtig beatwortet habe.
Sieht wer den fehler :/ ?

MFG JOJO

Verfasst: Dienstag 14. Dezember 2004, 19:20
von jens
es muß punkte += 1 heißen nicht punkte=+1 denn das ist das selbe wie punkte=1 ;)