mein Symbian S60 Python gewinn berechnungs programm

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
nico_el_rey
User
Beiträge: 11
Registriert: Freitag 10. September 2010, 12:51

so Leuz, hab noch ein wenig verändert,
VerkaufsListe kann jetzt auch erweitert werden und die berechnungen funktionieren auch gut,

mein Problem ist dass ich jetzt dass speichern nicht mehr hinbekomme,
kann mir bitte jemand etwas auf die sprünge helfen?

Aktueller Code:
http://paste.pocoo.org/show/370392/

ich habe hier irgendeinen fehler in der Speicherfunktion, fange ihn zwar mit try auf, komm aber nicht weiter...

Mfg Nico
BlackJack

@nico_el_rey: Dann "behandle" die Aunahme doch mal einfach *nicht*, dann sollte auch eine vernünftige Meldung kommen was genau das Problem ist. "funzt nicht" ausgeben ist nicht besonders hilfreich.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Und damit hast du dir den Grund vor Augen geführt, warum nur die Ausnahmen abgefangen werden sollten, welche auch behandelt werden können. Sonst werden Fehler blind geschluckt und treten an irgend einer anderen Stelle auf, da sich das Programm in keinem gültigen Zustand mehr befindet. Noch ein paar weitere Hinweise:

- ``elif`` existiert
- benutze das ``with``-Statement
- Pfade werden mit ``os.path.join`` zusammengesetzt
- unterteile dein Programm in Funktionen
- ändere dein Programm so, dass du ohne ``exec`` auskommst
- schaue dir PEP 8 an
- ``while``-Schleifen kann man mit ``break`` verlassen, damit sparst du das ``weiter``
Das Leben ist wie ein Tennisball.
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Was mich wundert, ist, warum nico_el_rey nach Verbesserungsvorschlägen fragt, sie aber nicht umsetzt.
nico_el_rey
User
Beiträge: 11
Registriert: Freitag 10. September 2010, 12:51

so, meine Probleme:
code:
for i in artikelMenu(artikelMenu):
art = u"\nder gewinn von %s = %f" % (artikelMenu, artikelmenu.anzeigen())

fehlerausgabe : name i not defined
... Häh? Bei: for i in range(5): muss ich i doch auch nicht definieren ( hab "artikel gegen i getauscht)

code (jetzt ohne exec(...):
if auswahl == 1:
artikel = appuifw.popup_menu(artikelMenu, u"von was?")
artikelMenu[artikel].anzeigen()
fehlerausgabe:
Traceback (most recent call last):
File "ped.py", line 1366, in run_click
File "D:\Ped.temp\laden - Klasse [Version 2].py", line 76, in ?
artikelMenu[artikel].anzeigen()
AttributeError: 'unicode' object has no attribute 'anzeigen'

so, ich gebs bald auf, mit Klassensystem komm ich nich klar :( :K
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Verwende doch in Zukunft bitte Code-Tags ([ python ][ /python ])

Code: Alles auswählen

for i in artikelMenu(artikelMenu[i])
"i" ist aber in dem rechten Ausdruck nicht definiert (`artikelMenu`).

Code: Alles auswählen

        artikelMenu[artikel].anzeigen()
Traceback (most recent call last):
  File "ped.py", line 1366, in run_click
  File "D:\Ped.temp\laden - Klasse [Version 2].py", line 76, in ?
    artikelMenu[artikel].anzeigen()
AttributeError: 'unicode' object has no attribute 'anzeigen'
in `artikelMenu` stehen ja auch Strings drin, und die haben nunmal keine `.anzeigen`-Methode.
nico_el_rey
User
Beiträge: 11
Registriert: Freitag 10. September 2010, 12:51

Dauerbaustelle hat geschrieben:Verwende doch in Zukunft bitte Code-Tags ([ python ][ /python ])

Code: Alles auswählen

for i in artikelMenu(artikelMenu[i])
"i" ist aber in dem rechten Ausdruck nicht definiert (`artikelMenu`).

Code: Alles auswählen

        artikelMenu[artikel].anzeigen()
Traceback (most recent call last):
  File "ped.py", line 1366, in run_click
  File "D:\Ped.temp\laden - Klasse [Version 2].py", line 76, in ?
    artikelMenu[artikel].anzeigen()
AttributeError: 'unicode' object has no attribute 'anzeigen'
in `artikelMenu` stehen ja auch Strings drin, und die haben nunmal keine `.anzeigen`-Methode.
1. wie definiere ich i im rechten ausdruck?
So dass ich die for i in durchzählung
durchs artikelMenu durchführen kann?
(habe hierfür nun echt keine Idee mehr...
Ist dies überhaupt möglich?)
2. Wie bekomme ich es dann ohne exec hin,
(muss ich dann den unicode String in eine
anweisung umwandeln? Dass wäre auch wieder
nur über exec möglich?) *verzweifel
3. Bin ich eigentlich schwer von Begriff? *lach
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

@1: Du kannst einfach durchiterieren indem du

Code: Alles auswählen

for artikel in artikelMenu
verwendest.
@2: Speichere im `artikelMenu` die Artikel selbst, nicht deren Namen
@3: Nö. Du bist ein Anfänger, das ist alles :-)

Kopf hoch :-)
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Die Angelegenheit könnte extem beschleunigt werden, wenn du ein Tutorial lesen (und verstehen) würdest.
Das Leben ist wie ein Tennisball.
Antworten