Dictionary

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.
fabi1511
User
Beiträge: 23
Registriert: Donnerstag 25. Juni 2009, 18:59

allgemein verwirrend finde ich nur weniges, was mich v.a. stört, ist, dass man viel alten code nicht mehr direkt verwenden kann, wie z.B.

Code: Alles auswählen

except KeyError, e
führt zu einem fehler, oder auch das angesprochene raw_input() und input(), was halt alles eine umstellung ist, die ich jetzt nicht benötige
(ich glaube gestern war einfach nicht mein tag der klaren ausdrücke :) )

ich find es nur blöd, das die abwärtskompatibilität gebrochen ist, ich weiß, die sprache musste "aufgeräumt" werden, aber ich finde die vielen neuerungen nicht so gut, aber ich habe mit python3 nicht viel erfahrung, weil ich wieder in die 2er serie gegangen bin, nachdem ich gemerkt habe, dass es keine mysql-lib gibt, wenn genügend bibliotheken vorhanden sind, und ich n bischen zeit habe, dann versuch ichs sicher nochmal mit python3
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

fabi1511 hat geschrieben:dass es keine mysql-lib gibt
oursql hat einen py3k branch.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

@fabi1511: Dich stoert wirklich das neue `except`Statement? Nie in ein `except KeyError, OSError`-Loch gefallen?
BlackJack

Die angesprochenen Änderungen werden doch auch vom 2to3-Skript problemlos behandelt, oder?
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Ich finde die Verwendung von `as` in diesem Zusammenhang sehr gelungen.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Bloos
User
Beiträge: 9
Registriert: Montag 11. Januar 2010, 13:16

bin auf diese seite gestoßen, die mir sehr weiter geholfen hat
http://www.python-forum.de/viewtopic.ph ... 1b1c5dd87d

habe mich für die Shelve Methode endschieden

Code: Alles auswählen

#Selve Test / 14.01.2010

import shelve

# Speichern

st = shelve.open("selvetest_1.slv")                 # Oeffnet die Shelve Datei 
st["day"] = [("d1","e1"),("d2","e2"),("d3","e3")]
st["week"] = [("d4","e4"),("d5","e5"),("d6","e6")]
st.close()                                          # Schliesst die Shelve Datei 

# Laden

st = shelve.open("selvetest_1.slv")
print st["day"][2][0], " = ", st["day"][2][1]
print st["week"]
st.close()
d3 = e3
[('d4', 'e4'), ('d5', 'e5'), ('d6', 'e6')]


ich verstehe nicht ganz, wofür die [] nach der Listennamen sind. In die ich "week" und "day" geschrieben habe, denn ohne diese funktiert die shelve methode nicht. Ich nehme an das es veschiedene listen sind, st["day"] und st["week"].

Es kommt mir zwar sehr gelegen, da ich die vokabeln in verschiedene stufen abspeichern will, die ich in verschiedenen abständen wiederholen werde (täglich,wöchentlich usw). Wenn das Programm merkt das ich sie kann, werden sie in die nächste stufe aufsteigen.

Sehe ich das richtig und sollte ich da noch etwas beachten?
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Bloos hat geschrieben:ich verstehe nicht ganz, wofür die [] nach der Listennamen sind.
Die eckigen Klammern stehen in Python halt für eine Liste. Du bindest eine Liste an die Schlüsselwörter vom shelve-Dictionary und bekommst entsprechend eine Liste zurück. Was hattest du in dem Moment denn erwartet?
Bloos
User
Beiträge: 9
Registriert: Montag 11. Januar 2010, 13:16

habe mich gewundert da man normaler weise listen ohne die deklariert bzw ihnen den wert zuweisst

Code: Alles auswählen

bsliste = [x,y]
aber jetzt ist alles klar

danke
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Achso, meintest du `st['day']`? Das ist noch nicht die Liste, sondern erstmal der Zugriff auf das Schlüsselwort:

Code: Alles auswählen

In [58]: d = {}

In [59]: d
Out[59]: {}

In [60]: d['day'] = [1,2,3]

In [61]: d
Out[61]: {'day': [1, 2, 3]}
Das shelve-Objekt ist eben ein Dictionary mit erweiterter Funktionalität.
Zuletzt geändert von snafu am Freitag 15. Januar 2010, 07:50, insgesamt 1-mal geändert.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Bloos hat geschrieben:habe mich gewundert da man normaler weise listen ohne die deklariert bzw ihnen den wert zuweisst

Code: Alles auswählen

bsliste = [x,y]
Na genau das gleiche wird in dem Code auch gemacht. Nur dass die Werte eben nicht x und y sind sondern Tupel-Literale.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Bloos
User
Beiträge: 9
Registriert: Montag 11. Januar 2010, 13:16

hallo miteinander,

bin nun mit meinem prototypen fertig. Doch meine ganzen menys werden durch eingabe und bestätigung gesteuert (raw_input()). Würde gerne es durch Hotkeys ersetzen, habe leider nichts gefunden was mich weiter gebracht hat. Könnte jemand mir einen kleinen skript schreiben zur verwendung von hotkeys auf dem einfachsten niveau
zb:

taste-k:
print "Hallo"

ein link zur erklärendem artikel würde auch ausreichen :)
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Bloos
User
Beiträge: 9
Registriert: Montag 11. Januar 2010, 13:16

bin schon auf dieses thread gestossen, und denke das es da um globale hotkeys geht. oder teusche ich mich da etwa?

ich habe eine viel einfachere / simple lösung erwartet als die da becshrieben wird
Antworten