Hallo zusammen,
mir liegt es fern, an Eurer Qualifikation zu zweifeln, bitte meine Aussagen diesbezüglich nicht missverstehen!
Ich denke, es hilft Euch weiter, wenn ich Euch etwas kurz zu meiner Person mitteile.
Ich komme aus dem Maschinenbau und war zuletzt ca. 8 Jahre selbständig im Bereich Büro- und EDV-Bedarf. Hier betreibe ich noch heute einen Internet-Shop.
Seit einigen Jahren habe ich eine psychischen Erkrankung und vieles was vorher normal und einfach war, ist es auf einmal nicht mehr. Vielleicht sehe ich daher alles zu kompliziert ...
Aus persönlichem Interesse und um meiner Erkrankung entgegen zu wirken, lerne und arbeite ich mit Python und es macht mir richtig Spaß.
So viel zu einem kurzen Einblick, aber BITTE ich wünsche deshalb keine Sonderbehandlung!
@deets, habe auch festgestellt, daß meine gepostete Änderung zu 'if else' falsch war und habe sie wieder rückgängig gemacht.
Vielleicht komme ich noch selber drauf, was diesbezüglich einfacher sich in meinem Code gestalten lässt.
@BlackJack, werde mir Deinen Link durchlesen.
Deinem Code zum Nachdenken, hier wie es bei mir funktioniert:
Code: Alles auswählen
In [1]: a = 'Spam'
In [2]: b = 'Hallo'
In [3]: xs = a, b
In [4]: a in str(xs)
Out[4]: True
In [5]: b in str(xs)
Out[5]: True
In [6]: ',' in str(xs)
Out[6]: True
In [7]: ',' in a
Out[7]: False
In [8]: ',' in b
Out[8]: False
In [9]: type(xs)
Out[9]: tuple
In [10]: xs = [a, b]
In [11]: type(xs)
Out[11]: list
In [12]: xs = (a, b)
In [13]: type(xs)
Out[13]: tuple
Das mit dem Komma, ist allerdings bei beiden Ausgaben gleich!?
Zum Funktionsablauf, warum ich das so mache.
Im Hauptmenü gibt es Positionen, die auch von anderen Positionen des Hauptmenüs Verwendung finden.
Suche ich nur nach einem Begriff oder möchte einen neuen Eintrag hinzufügen oder nur die Basisliste sortieren, so reichen die Funktionen 'search_entry', 'add_entry' bzw. 'sort' völlig dafür.
Möchte ich einen oder mehrere Einträge ändern, wird zuerst die Funktion 'load' aufgerufen. Dort wird überprüft, ob die Datei chance.txt existiert. Da diese Datei jedesmal bei Nutzung des Hauptmenüs gelöscht wird, ist dies nicht der Fall und so wird die Suchfunktion gestartet, um nach dem Eintrag (Einträge) zu suchen. Evtl. erhalte ich einige ähnliche Suchergebnisse z.B. 5 Stück aufgezeigt, möchte aber nur eins oder zwei dieser Einträge ändern. Hier habe ich die zusätzliche Funktion 'selection' erstellt, mit der ich die Suchergebnisse mir anzeigen lassen kann und anhand von einem Index, mir die entsprechende Zeile auswählen kann. Diese Zeile wird in die Textdatei chance.txt gespeichert. Habe ich mehr als nur ein Suchergebnis, so habe ich die Möglichkeit erneut eine entsprechende Zeile auszuwählen. Dabei benutze ich die Funktion 'switch', die es mir ermöglicht, die aktuellen neuen Datensätzen in der Auswahl mit dem Index anzuzeigen.
Ist die Auswahl abgeschlossen, wird überprüft von welchem Menü aus der Auftrag erging (Menupoint) und die entsprechende Funktion wird aufgerufen. Hier in diesem Beispiel, die Funktion 'load' die jetzt die ausgewählten Einträge mit einem Editor (bei mir kate) öffnet, um diese zu bearbeiten. (Evtl. gibt es von Python einen speziellen Editor?)
Die alten Daten der zu bearbeitenden Zeilen, wird unter 'olddata' abgespeichert.
Nach dem Bearbeiten habe ich die Möglichkeit die gemachten Änderungen zu verwerfen.
Wenn die Änderungen übernommen werden, werden aus chance.txt die Zeilen der Liste hinzugefügt und die 'alten' Zeilen gelöscht.
Das war jetzt, wenn ich einen oder mehrere Einträge ändern möchte.
Ähnlich funktioniert dies auch beim Löschen mit der Funktion 'remove_entry'.