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.
Ojeh.
Räumen wir erst einmal auf:
Vergiss, dass es global gibt. Globale Variablen sind böse und man verwendet sie nicht.
Alles, was eine Funktion zum Arbeiten braucht, erhält sie als Parameter und gibt das Ergebnis per return zurück.
Es macht keinen Sinn "name" und "age" außerhalb der Funktion zu definieren, weil sie nur in der Funktion verwendet werden.
Wie bereits gesagt, macht "global" hier keinen Sinn.
Und dadurch ergibt sich für mich auch nicht die Sinnhaftigkeit, leere Listen anzulegen, in die einen Wert zu legen und die die dann zurückzugeben. Wenn es eh nur ein Wert ist, warum sind das dann Listen?
Wenn du das abarbeitest, dann wirst du sicherlich auf den Fehler stoßen.
https://docs.python.org/3/tutorial/datastructures.html#more-on-lists hat geschrieben:You might have noticed that methods like insert, remove or sort that only modify the list have no return value printed – they return the default None. This is a design principle for all mutable data structures in Python.
@ihavenoclue: Weitere Anmerkungen: Funktions- und Methodennamen beschreiben üblicherweise die Tätigkeit die von der Funktion oder Methode durchgeführt wird. Dann weiss der Leser was die Funktion/Methode macht. `personendaten` hinterlässt den Leser eher mit Fragezeichen. Ausserdem geht so ein guter Name für Personendaten verloren.
Grunddatentypen haben in Namen nichts zu suchen. Man ändert den Typen gerne mal im Laufe der Programmentwicklung und dann muss man entweder durch das ganze Programm gehen und überall die betroffenen Namen ändern, oder man hat falsche, irreführende Namen im Programm.
Das sieht verdächtig danach aus als würden hier zusammengehörende Daten in zwei verschiedene, ”parallele” Datenstrukturen verteilt werden. Das macht man nicht. Man speichert Daten die zusammengehören auch zusammen. Sonst wird es im weiteren verlauf nur unübersichtlicher und man braucht Code um die bei der Verarbeitung dann zusammen zu führen, den man sich sparen kann wenn man die gar nicht erst trennt. Im einfachsten Fall würde man die Daten in Tupeln zusammenfassen. Wenn das mehr Werte zusammenkommen in `collections.namedtuple()`, damit man nicht mit magischen Indexwerten hantieren muss. Oder auch Klassen, wenn die Daten auch veränderbar sein sollen und/oder noch sinnvolle Operationen in Form von Methoden dazu kommen.
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware