Fehler im Programm und Keine exe im dist ordner (bin Neu ^^)

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.
Antworten
ShadowFreak
User
Beiträge: 28
Registriert: Samstag 4. September 2004, 11:16

Hi,
ich bin neu beim Programmieren und bei Pyhton. Da wir in der Schule gerade damit anfangen wollte ich schon etwas vorarbeiten :wink: .

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 :D :D
Und noch ne Frage wen ich mit py2exe ein Programm konvertieren habe ich keine exe im Dist Ordener. Voran kann das liegen ??

Mfg ShadowFreak
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

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
[code]#!/usr/bin/env python
import this[/code]
ShadowFreak
User
Beiträge: 28
Registriert: Samstag 4. September 2004, 11:16

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?? :roll:


Mfg ShadowFreak
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

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
[code]#!/usr/bin/env python
import this[/code]
ShadowFreak
User
Beiträge: 28
Registriert: Samstag 4. September 2004, 11:16

Cool danke ^^. Ein wieters Forum dieser Arte was ich nun zu schätzen weiß :D :D
ShadowFreak
User
Beiträge: 28
Registriert: Samstag 4. September 2004, 11:16

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 :D



Mfg ShadowFreak
ShadowFreak
User
Beiträge: 28
Registriert: Samstag 4. September 2004, 11:16

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

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.

Code: Alles auswählen

elif antw3.lower() == "schlecht":
    ...
tuts da auch.


Gruß

Dookie
[code]#!/usr/bin/env python
import this[/code]
ShadowFreak
User
Beiträge: 28
Registriert: Samstag 4. September 2004, 11:16

geht immer noch net :cry: :cry:

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 :cry:
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Hi. Lass dir doch den Fehler mal anzeigen, dann solltest du es eigentlich selbst sehen (falsch abgeschieben :wink:). 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.
ShadowFreak
User
Beiträge: 28
Registriert: Samstag 4. September 2004, 11:16

kommt nix mit syntax error
:cry:

Bei dos wird's sofort geschlossen -> kann nix lesen

Bei Shell kommt nix
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

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.
Antworten