Problem bei dem starten eines Programmes.

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
JOJO
User
Beiträge: 14
Registriert: Sonntag 12. Dezember 2004, 16:02
Kontaktdaten:

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
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

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
[code]#!/usr/bin/env python
import this[/code]
JOJO
User
Beiträge: 14
Registriert: Sonntag 12. Dezember 2004, 16:02
Kontaktdaten:

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
Clython
User
Beiträge: 151
Registriert: Samstag 21. August 2004, 13:58
Wohnort: Schweiz, BE-2500

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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Clython
User
Beiträge: 151
Registriert: Samstag 21. August 2004, 13:58
Wohnort: Schweiz, BE-2500

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:
JOJO
User
Beiträge: 14
Registriert: Sonntag 12. Dezember 2004, 16:02
Kontaktdaten:

@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
Clython
User
Beiträge: 151
Registriert: Samstag 21. August 2004, 13:58
Wohnort: Schweiz, BE-2500

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...
JOJO
User
Beiträge: 14
Registriert: Sonntag 12. Dezember 2004, 16:02
Kontaktdaten:

Puhhhh jetzt meint er:
python: can`t open file 'quiz.py'

habe alles so gemacht wie du gesagt hast :)


MFG JOJO
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
JOJO
User
Beiträge: 14
Registriert: Sonntag 12. Dezember 2004, 16:02
Kontaktdaten:

*freu*

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


MFG JOJO
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Clython
User
Beiträge: 151
Registriert: Samstag 21. August 2004, 13:58
Wohnort: Schweiz, BE-2500

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...
JOJO
User
Beiträge: 14
Registriert: Sonntag 12. Dezember 2004, 16:02
Kontaktdaten:

Jop werde ich machen :)
thx 4 help
Ps: werde ich noch des öfteren in anspruch nehmen ^^

MFG JOJO
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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...
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Das wuste ich nicht... Auch nicht schlecht... Eine Eingabe die Sinnlos ist, so zu sagen... :lol:
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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? ;)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
JOJO
User
Beiträge: 14
Registriert: Sonntag 12. Dezember 2004, 16:02
Kontaktdaten:

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
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

es muß punkte += 1 heißen nicht punkte=+1 denn das ist das selbe wie punkte=1 ;)
Antworten