Seite 1 von 1
Fehler im Programm und Keine exe im dist ordner (bin Neu ^^)
Verfasst: Samstag 4. September 2004, 11:24
von ShadowFreak
Hi,
ich bin neu beim Programmieren und bei Pyhton. Da wir in der Schule gerade damit anfangen wollte ich schon etwas vorarbeiten
.
So zu meine Problem ich habe bei Python ein Programm geschrieben, wen auch sehr einfach heir der code
Code: Alles auswählen
antw = raw_input("Wie ist dein Name? ")
print "Moin, %s, schoen dich zu treffen" % antw
antw2 = raw_input("Was machste so? ")
if antw2 == "Pc_Spieln"
print "Wieder %s. Is ja öde" % antw2
else:
print "cool ma was anderes. %s macht bestimmt auch spass." %antw2
Immer wen ich es Starte wird das Dos Fenster sofort wieder geschlossen. Mit dem Debugger vom Python Shell kann ich aber keine Fehler finden. Könntet ihr mir helfen ?? Danke schonmal im Vorhaus
Und noch ne Frage wen ich mit py2exe ein Programm konvertieren habe ich keine exe im Dist Ordener. Voran kann das liegen ??
Mfg ShadowFreak
Verfasst: Samstag 4. September 2004, 12:00
von Dookie
Hi ShadowFreak,
da fehlt ein : und die Einrückungen.
Code: Alles auswählen
antw = raw_input("Wie ist dein Name? ")
print "Moin, %s, schoen dich zu treffen" % antw
antw2 = raw_input("Was machste so? ")
if antw2.lower() == "pc_spieln": # jetzt ist gross/klein egal
print "Wieder %s. Is ja öde" % antw2
else:
print "cool ma was anderes. %s macht bestimmt auch spass." % antw2.title()
das antw2.title() bei der 2. Antwort macht der ersten Buchstaben von antw2 gross.
Tipp: Wenn Du einen Editor nimmst, der Python unterstützt, z.B. VIM/GVIM, macht der die Einrückungen selber.
zu py2exe kann ich dir leider nicht helfen, aber da sind andere im forum die sich damit auskennen.
Gruß
Dookie
Verfasst: Samstag 4. September 2004, 12:22
von ShadowFreak
Klappt ja schon gantz gut nur springt er immer zu Else. Also egal was ich
eingebe kommt immer "cool ma was anderes. ... macht bestimmt auch spaß.
Wen ich aber " Pc spieln" (keine gutes deutsch ^^) eingebe, soll kommen,
"Wieder Pc spieln. Is ja öde". Wie krig ich das hin??
Mfg ShadowFreak
Verfasst: Samstag 4. September 2004, 12:40
von Dookie
Du müsstest schon wie im code vorgegeben "Pc_spieln" eingeben also mit _ oder mit einer regular expression arbeiten.
Code: Alles auswählen
import re
antw = raw_input("Wie ist dein Name? ")
print "Moin, %s, schoen dich zu treffen" % antw
antw2 = raw_input("Was machste so? ")
if re.match('pc[\s_-]*spiel[e]?n', antw2, re.I):
print "Wieder %s. Is ja öde" % antw2
else:
print "cool ma was anderes. %s macht bestimmt auch spass." % antw2.title()
Jetzt kannst du "pc spielen", "Pc-spielen", "pcspieln" oder was ähnliches eingeben, das is alles dann öde
Dookie
Verfasst: Samstag 4. September 2004, 13:10
von ShadowFreak
Cool danke ^^. Ein wieters Forum dieser Arte was ich nun zu schätzen weiß
Verfasst: Samstag 4. September 2004, 14:43
von ShadowFreak
Noch eine Frage. Ist zwar bischen doof aber hab nix darüber gefunden.
Wie mache ich eine Leer zeile ?? Das z.B. in der Dosbox steht:
Code: Alles auswählen
Wie heist du ?? Martin
Was machst du ?? Pc spielen
Wie alt bist du ?? 14
usw. mit normal Enter im Text gehts net. Hab auch schon im Forum gesucht.
Danke für die Hilfe
Mfg ShadowFreak
Verfasst: Samstag 4. September 2004, 14:49
von ShadowFreak
Nochwas was stimmt hier net ???
Code: Alles auswählen
antw3 = raw_input("Wie findest du Schule? gut, mittel oder schlecht?")
if re.match('gut', antw3, re.I):
print "%s?? Alder was bis du den für einer?!" % antw3
else: re.match('schlecht', antw3, re.I):
print "Naja so schlimm is es ja nu auch net oder ?!" % antw3
else: re.match('mittel', antw3, re.I):
print "So gehts mir auch." % antw3
Verfasst: Samstag 4. September 2004, 15:19
von Dookie
Noch eine Frage. Ist zwar bischen doof aber hab nix darüber gefunden.
Wie mache ich eine Leer zeile ?? Das z.B. in der Dosbox steht:
Code: Alles auswählen
Wie heist du ?? Martin
Was machst du ?? Pc spielen
Wie alt bist du ?? 14
Eine Leerzeile machst Du einfach mit einem
print ohne was dahinter
Code: Alles auswählen
antw1 = raw_input("Wie heist du ?? ")
print
antw2 = raw_input("Was machst Du ?? ")
print
...
Du kannst auch einen Zeilenvorschub mit "\n" in einen String einfügen, z.B.:
"Hallo\nwie\ngehts\ndir?"
Nochwas was stimmt hier net ???
Code: Alles auswählen
antw3 = raw_input("Wie findest du Schule? gut, mittel oder schlecht?")
if re.match('gut', antw3, re.I):
print "%s?? Alder was bis du den für einer?!" % antw3
else: re.match('schlecht', antw3, re.I):
print "Naja so schlimm is es ja nu auch net oder ?!" % antw3
else: re.match('mittel', antw3, re.I):
print "So gehts mir auch." % antw3
da stimmt einiges nicht
else kann keine Bedingung haben. Dafür gibts
elif. Wenn Du in einen String keine Daten mit "...%s..." einfügst darfst Du auch kein % dahinter haben mit Daten.
Also:
Code: Alles auswählen
elif re.match("schlecht", antw3, re.I):
print "Naja so schlimm is es ja nu auch net oder ?!"
elif ...
hier ist eine regular Expression mit re.match aber nicht angebracht, da kannt du auch die Strings direkt vergleichen.
tuts da auch.
Gruß
Dookie
Verfasst: Samstag 4. September 2004, 15:37
von ShadowFreak
geht immer noch net
Hier nochma das ganze
Code: Alles auswählen
# -*- coding: cp1252 -*-
import re
import time
antw = raw_input("Wie ist dein Name? ")
print "Moin, %s, schoen dich zu treffen" % antw
antw2 = raw_input("Was machste so? ")
if re.match('pc[\s_-]*spiel[e]?n', antw2, re.I):
print "Wieder %s. Is ja oede" % antw2
else:
print "cool ma was anderes. %s macht bestimmt auch spass." % antw2.title()
antw3 = raw_input("Wie findest du Schule? gut, mittel oder schlecht?")
if re.match('gut', antw3, re.I):
print "Gut?? Alder was bis du den für einer?!"
elif: re.match('schlecht', antw3, re.I):
print "Naja so schlimm is es ja nu auch net oder ?!"
elif: re.match('mittel', antw3, re.I):
print "So gehts mir auch."
time.sleep(3)
print "Also du heist also %s,und den Tag verbringst mit %s. Cool Also mann sieht sich." % (antw,antw2)
antw99 = raw_input("Ich will ma Schluss machen Cu!! ")
from Tkinter import *
Was stimmt den net ich
Verfasst: Samstag 4. September 2004, 16:07
von Milan
Hi. Lass dir doch den Fehler mal anzeigen, dann solltest du es eigentlich selbst sehen (falsch abgeschieben
). Du kannst dafür Python z.B. direkt aus der Shell / DOS Fenster starten. Er müsste dir einen Syntaxfehler bringen, der die gleich sagt wo du was falsch hast.
Verfasst: Samstag 4. September 2004, 16:10
von ShadowFreak
kommt nix mit syntax error
Bei dos wird's sofort geschlossen -> kann nix lesen
Bei Shell kommt nix
Verfasst: Samstag 4. September 2004, 17:18
von Milan
Hi. Ich hab ja gemeint direkt daraus starten, also nicht erst das Script per Klick starten. Dazu brauchst du eine Console: Start --> Ausführen --> cmd
dann gehst du in das Verzeichniss wo das Script liegt und rufst es auf, indem du den Namen des Scriptes eingibst. Alternativ könntest du das Script ja auch aus IDLE laufen lassen (F5). Das nur dazu, dass du dir auch mal Python's Fehlermeldungen anschauen kannst, die helfen oft ein ganzes Stück weiter.
In deinem script hast du nämlich direkt nach dem elif einen Doppelpunkt gemacht. Der passt da aber nicht, die kommen nur nach den Bedingungen am Zeilenende, immer wenn danach halt eingerückt werden muss.