Brauche Hilfe! Programm funktioniert nicht, komme nicht weit

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.
ss_nase
User
Beiträge: 11
Registriert: Montag 5. August 2013, 22:54

Hallo BlackJack :)

Ich habe es korrigiert, aber es kam kein NameError. Als ich das dann mit assert eingegeben habe kam eine Fehlermeldung:

Code: Alles auswählen

Traceback (most recent call last):
  File "C:\Python25\meineprogramme\berechnungeasygui.py", line 19, in <module>
    assert False, "ungültiger Wert für `berechnung` %r" % berechnung
AssertionError: ungültiger Wert für `berechnung` 'Quadrad'
Wolltest du das die Fehlermeldung kommt, oder habe ich etwas falsch gemacht bei der Eingabe?

Und danke für die Erklärung mit dem Ausdruck, jetzt weis ich auch was das ist, wenn ich es richtig verstanden habe :D
Noch einen schönen Tag, bis dann :)
LG. ss_nase :)
BlackJack

@ss_nase: Die Fehlermeldung ist gewollt. Die sollte Dir nämlich jetzt sagen wo der Fehler liegt. Du prüfst nirgends auf den Wert 'Quadrad'.

(Gibt es eigentlich einen guten Grund warum Du Python 2.5 statt des aktuellen 2.7 verwendest?)
ss_nase
User
Beiträge: 11
Registriert: Montag 5. August 2013, 22:54

Hallo BlachJack!

Ich dachte else und elif prüfen die Sachen?
Es gibt einen Grund: Ich lerne mit dem buch Hello World Python programmieren, dort wird die Version 2.5 verwendet (und ich habe erst die hälfte von dem Buch durch, darum bin ich noch nicht wirklich gut)
LG. ss_nase :)
BlackJack

@ss_nase: Schau Dir noch mal *genau* an was im ``elif`` geprüft wird. Da wird *nicht* auf 'Quadrad' geprüft. Denn sonst würde ja der ``else``-Zweig nicht ausgeführt werden.
ss_nase
User
Beiträge: 11
Registriert: Montag 5. August 2013, 22:54

Hallo BlackJack :D

Jetzt habe ich es endlich verstanden, ich hatte einen Rechtschreib Fehler, auf das währe ich ja in 100 Jahren noch nicht gekommen!!!!!!!
Endlich läuft das Programm Fehler los!!!!!
DANKE DANKE DANKE DANKE DANKE DANKE DANKE 1000 mal DANKE!!!!!!!!!
Wirklich danke!!!!!!!!
Ich bin sooooo überglücklich, mein erstes Programm was ich nicht von dem Buch abgeschrieben habe.
Nochmals 1000 mal danke!!!!!!
Wie kann ich Dir denn nur danken?
Ich habe jetzt soooo viel gelernt, wie man auf Fehler drauf kommt, das es an der Rechtschreibung liegen kann usw....

DDDDDDDDDDDDAAAAAAAAANNNNNNNNNNNNNNNNKKKKKKKKKEEEEEEEEEEEEEEEEE!!!!!!!!!!!!!!!!!
Naja, da ich mein Programm erweitern werde und noch SEHR viel bei Python lernen muss, wirst Du und andere Leute mir sicher noch öfters helfen :)

Dann wünsche ich dir noch einen schönen Tag :wink:
LG. ss_nase :)
BlackJack

@ss_nase: Hier mal das ganze mit einem Fenster weniger am Anfang. Die Formen sind als Konstanten definiert, damit fällt es deutlicher auf wenn man sich verschreibt, dann gibt es nämlich einen `NameError`. Ausserdem werden dem Benutzer auch Ausnahmen als Fenster angezeigt, damit er sieht wenn etwas schief gelaufen ist.

Das Programm kommt noch nicht damit zurecht, wenn ein Benutzer etwas eingibt, was keine Zahl ist, und auch nicht wenn der Benutzer die 'Cancel'-Schaltfläche bei einer Zahleneingabe betätigt.

Nächste Schritte könnten sein, eine korrekte Behandlung für Eingabefehler und gewollten Programmabbruch zu schreiben.

Die Anzahl der Fenster könnte man verringern, in dem man alle Werte für eine Form auch in *einem* Fenster eingeben lässt. Stichwort `easygui.multenterbox()`.

Und dann könnte man von Code in Richtung Daten gehen. Also alles was zu einer Form gehört — Name, Eingabegrössen, Berechnungsfunktion — als Daten zusammenfassen, und den Hauptcode so umschreiben, dass er mit einer Liste von diesen „Formbeschreibungen” arbeitet.
Antworten