Hallo Leute ich beschäftige mich seit ein paar Tagen mit Python um mir gefallt es sehr gut.
Nun sitz ich an einem für euch "kleinen" Problem, das ich aber noch nicht lösen kann. Ich hab auch schon gegoogelt aber noch keine richtige Lösung gefunden.
Und zwar wenn ich eine if Bedingung erfüllte wird diese auch ausgeführt, zusätzlich aber auch die else.
http://pastebin.com/FJfJkVZE
Danke für die Hilfe
Gruß
S100O
Neuling hat eine Frage
-
deets
Das halte ich fuer unmoeglich. Also zeig uns bittet deinen Code, und vergiss nicht, ihn in python-tags zu setzen, damit man ihn erkennen kann - besonders die einrueckung.
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Willkommen zu Python und im Forum!
Zu deinem Problem: Die mittleren `if` sollten `elif` heissen, momentan gehoert das `else` nur zur letzten `if` Anweisung, ist das Wort also nicht "!beenden" wird sie immer ausgefuehrt.
Fuer die Zukunft im Forum: Bitte verwende
Zu deinem Problem: Die mittleren `if` sollten `elif` heissen, momentan gehoert das `else` nur zur letzten `if` Anweisung, ist das Wort also nicht "!beenden" wird sie immer ausgefuehrt.
Fuer die Zukunft im Forum: Bitte verwende
Code: Alles auswählen
[/python ] Tags, ohne ist Python Code schlicht nicht lesbar.
Zum Code:
`while 1` -> `while True` (es gibt extra Boolesche Konstanten, nutze sie)
`if (...)` -> `if ...` (Klammern sind unnoetig)
Und dieses `while 0:` fuehrt zu einem SyntaxError ...
Zuletzt geändert von cofi am Dienstag 15. Mai 2012, 14:11, insgesamt 1-mal geändert.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
[quote="cofi"]Willkommen zu Python und im Forum!
Zu deinem Problem: Die mittleren `if` sollten `elif` heissen, momentan gehoert das `else` nur zur letzten `if` Anweisung, ist das Wort also nicht "!beenden" wird sie immer ausgefuehrt.
Fuer die Zukunft im Forum: Bitte verwende
Zu deinem Problem: Die mittleren `if` sollten `elif` heissen, momentan gehoert das `else` nur zur letzten `if` Anweisung, ist das Wort also nicht "!beenden" wird sie immer ausgefuehrt.
Fuer die Zukunft im Forum: Bitte verwende
Code: Alles auswählen
[/python ] Tags, ohne ist Python Code schlicht nicht lesbar.
Zum Code:
`while 1` -> `while True` (es gibt extra Boolesche Konstanten, nutze sie)
`if (...)` -> `if ...` (Klammern sind unnoetig)
Und dieses `while 0:` fuehrt zu einem SyntaxError ...[/quote]
Okay danke jetzt funktioniert es. Warum muss ist elif heißen nach dem ersten if? Warum kann es nicht weiterhin if bleiben?Ergänzend zu cofi: In der jetzigen Form hast du 2 voneinander unabhängige `if`-Statements gefolgt von einem `if`-`else`-Statement. Dadurch wird der `else`-Zweig jedes Mal ausgeführt, wenn der User nicht den Beenden-Befehl eingegeben hat, weil der Interpreter halt nur auf das letzte `if` guckt. Das entspricht sicherlich nicht dem, was du wolltest. Wie schon gesagt, musst du die Prüfungen in die Form `if`-`elif`-`elif`-`else` umwandeln, damit Python das als einen zusammengehörigen Block ansieht.
Zuletzt geändert von snafu am Dienstag 15. Mai 2012, 14:20, insgesamt 1-mal geändert.
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Code: Alles auswählen
if foo:
pass
elif bar:
pass
else:
passCode: Alles auswählen
if foo:
pass
else:
if bar:
pass
else:
passDer Grund ist ganz einfach: Weil die Python-Grammatik deinen Code als 3 eigenstaendige if Anweisungen sieht, wovon nur die letzte einen `else` Zweig hat. Mit `elif` hast du hingegen eine Kurzform von einem `else ... if` mit dem du immernoch in der 1. if Anweisung bist.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
Okay ich würde das ganze gerne auch grafisch darstellen. Hab bis jetzt nur mit TextEdit geschrieben. Habe mir gerade Python Lauscher Version 3.2.3 runtergeladen. Ich muss sagen ich komm im TextEdit besser klar. Bloß brauch ich doch so wie ich das gelesen habe das für eine grafische Darstellung oder? Ich hab schon einige Tutorial Seiten gelesen wo immer mit Tkinter importiert wurde. Aber irgendwie haut das auch nicht hin wenn ich den Code 1:1 kopiere und dann ausführe kommt kein Fenster mit "Hallo Welt" sondern ne Meldung das der Syntax falsch ist.
Ich benutze einen Mac 10.7.4
Welche Grafikmodule sind für Mac geeignet etc?
Ich benutze einen Mac 10.7.4
Welche Grafikmodule sind für Mac geeignet etc?
Als Texteditor nimmst du was dir am ehesten zusagt. Für Macs wären SublimeText, TextMate, TextWrangler (oder BBEdit für die volle Version) Varianten mit wesentlich mehr Funktionalität. Bei TextEdit musst du aufpassen, dass er dir nicht zum Beispiel die Anführungszeichen verändert, da es an sich eher ein minimaler Wortprozessor statt einem Editor ist.
Mit Grafikmodulen wirst du sicher GUI-Toolkits meinen. Tkinter wäre die einfachste Variante reinzukommen, allerdings musst du auf Macs darauf achten, dass es korrekt installiert wurde (ich musste es nämlich noch gemäß der offiziellen Seite von ActiveState holen). Alternativ gibt es noch all die anderen Toolkits im entsprechendem Forenbereich, von denen wohl QT am professionellsten unter OS X aussehen wird. So oder so wird es aber viel Einarbeitung erfordern GUIs bauen zu können, von daher bist du besser dran lieber erst Objektorientierung zu erlernen und alle Grundlagen sicher zu beherrschen bevor du es damit versuchst.
Achja, die Fehler werden wohl genau daran liegen, dass du einfach nur alles herüberkopiert hast. Ein erster Ansatz wäre es mal Python- und Tkinter-Version deines Beispiels mit deiner Konfiguration zu vergleichen. Python 3.x ist ja leider nicht zu Python 2.x abwärtskompatibel.
Ich frage mich immer noch was dieser Lauscher sein mag von dem du da gesprochen hast
Mit Grafikmodulen wirst du sicher GUI-Toolkits meinen. Tkinter wäre die einfachste Variante reinzukommen, allerdings musst du auf Macs darauf achten, dass es korrekt installiert wurde (ich musste es nämlich noch gemäß der offiziellen Seite von ActiveState holen). Alternativ gibt es noch all die anderen Toolkits im entsprechendem Forenbereich, von denen wohl QT am professionellsten unter OS X aussehen wird. So oder so wird es aber viel Einarbeitung erfordern GUIs bauen zu können, von daher bist du besser dran lieber erst Objektorientierung zu erlernen und alle Grundlagen sicher zu beherrschen bevor du es damit versuchst.
Achja, die Fehler werden wohl genau daran liegen, dass du einfach nur alles herüberkopiert hast. Ein erster Ansatz wäre es mal Python- und Tkinter-Version deines Beispiels mit deiner Konfiguration zu vergleichen. Python 3.x ist ja leider nicht zu Python 2.x abwärtskompatibel.
Ich frage mich immer noch was dieser Lauscher sein mag von dem du da gesprochen hast
