Seite 1 von 1

Variablen und deren Wert in Schleifen

Verfasst: Dienstag 19. November 2024, 11:59
von crazy69
Hallo zusammen,

ich stehe vor einem wahrscheinlich total einfachem Problem, finde aber die Lösung nicht....

Folgende Aufgabenstellung:
Ich habe mehrere Variablen, die einen Wert zugewiesen haben, z.B. so:

Code: Alles auswählen

name = max
id = 0815
fqdn =a.b.c
0S = win_2019
usw.

# Datei geöffnet
f = open("Datei.txt", "a")
Ich will Variablen UND deren Werte dokumentieren, z.B. in eine Datei schreiben.
Meine Idee war es jetzt eine for-Schleife zu bauen.
Quasi so:
Für jede Variable schreibe den Variablen und deren Wert in eine Datei.

Code: Alles auswählen

for variable in ["name", "id", "fqdn", "OS"]
  f.write(???????)
  # Ausgabe sollte nach Schleifenablauf sein: 
    "name = max"
    "id = 0815"
    "fqdn = a.b.c"
    "OS = win_2019"
Um diese for-Schleife steht nochmal eine for Schleife, die die o.g. Variablen immer wieder neu besetzt.

Gibt es da einen einfachen Ansatz?

Wahrscheinlich total einfach, ich kriege es als Python-Neuling aber nicht hin.


Vorab besten Dank für euren Support!

VG
crazy

Re: Variablen und deren Wert in Schleifen

Verfasst: Samstag 23. November 2024, 14:19
von Sirius3
Warum bindest Du die `max`-Funktion an die Variable `name`?
Zahlen dürfen keine führende 0 haben, 0815 ist also ein Syntaxfehler.
0S ist kein gültiger Variablenname.
Dateien öffnet man immer innerhalb des with-Statements.
Du wirst niemals herausfinden, dass der Wert von `fqdn` ursprünglich mal das Attribut `c` von `a.b` war.

Wenn es wirklich um die Werte geht, dann mußt Du sie explizit schreiben, z.B. mit f-Strings:

Code: Alles auswählen

name = "Max"
id = 815
os = "win_2029"
with open("datei.txt", "a", encoding="utf8") as file:
    file.write(f"{name=}\n")
    file.write(f"{id=}\n")
    file.write(f"{os=}\n")

Re: Variablen und deren Wert in Schleifen

Verfasst: Samstag 23. November 2024, 19:01
von Dennis89
Hallo,

falls die Datenstruktur noch frei wählbar ist und da noch mehrere Personen dazu kommen, würde sich vielleicht ein Wörterbuch anbieten:

Code: Alles auswählen

persons = {
    "name": "Max",
    "id": 815,
    "os": "win_2029",
}
with open("datei.txt", "a", encoding="utf8") as file:
    for description, value in persons.items():
        file.write(f"{description}='{value}'\n")

Grüße
Dennis

Edit: `id` gibt es schon als Built-In-Funktion, die überschreibst du damit, ein anderer Name wäre an der Stelle besser.

Re: Variablen und deren Wert in Schleifen

Verfasst: Samstag 23. November 2024, 19:05
von __blackjack__
Wobei man da auch gleich noch einen Schritt weiterfragen sollte: Sollen die Daten auch wieder eingelesen werden? Denn dann würde ich nicht anfangen eigene Dateiformate zu erfinden, sondern `persons` als JSON speichern.

Bei dem '{value}' würde ich die ' entfernen und ein !r hinter value hinzufügen, denn man will in der Datei ja 815 stehen haben und nicht '815' und nicht 'Max O'Reilly' sondern "Max O'Reilly", damit das eindeutig bleibt.

Re: Variablen und deren Wert in Schleifen

Verfasst: Sonntag 24. November 2024, 13:58
von bb1898
Sirius3 hat geschrieben: Samstag 23. November 2024, 14:19 Warum bindest Du die `max`-Funktion an die Variable `name`?
Zahlen dürfen keine führende 0 haben, 0815 ist also ein Syntaxfehler.
Wenn das wirklich eine ID sein soll, für was auch immer, dann würde ich die lieber zum String machen und nicht zur Zahl. Dann kann sie nach Herzenslust führende Nullen bekommen und zukünftig vielleicht auch mit Buchstaben oder sonst was erweitert werden.