Variablen in Liste

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.
Antworten
Laurenz123
User
Beiträge: 1
Registriert: Dienstag 7. Januar 2020, 22:19

Wie kann ich bei einer Liste Variablen auflisten?
import random
l = random.tandrange(0, 3)
l = l
liste = [p1, p2, p3, p4] <Die Variablen in der Klammer erkennt er dann nicht.
p1 = Input("1.")
p2 = Input("2.")
p3 = Input("3.")
p4 = Input("4.")
print(liste[l])
Wer mir helfen kann bitte antworten.
Laurenz123
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du kannst die Liste erst anlegen, wenn du die werte erhoben hast. Du kannst DAS auch mit eine for Schleife machen, und dir damit die ganzen Namen ersparen. Sondern immer den aktuellen Wert anhängen. Und zu guter letzt unterliegst du einem Irrglauben, wenn du denkst Python würde so funktionieren:

Code: Alles auswählen

variable = 1
liste = [variable]
variable = 2
print(liste == [2])
Die neu Belegung einer Variable verändert nicht die Liste!
Benutzeravatar
__blackjack__
User
Beiträge: 14052
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Laurenz123: Bitte immer den tatsächlichen Code zeigen und nicht etwas was so ähnlich ist. Zu der Zeile die Du da grün markiert hast kommt der Code gar nicht erst, weil das `random`-Modul kein Attribut mit dem Namen `tandrange` hat. Mir ist auch nicht so ganz klar was Du mit der dritten Zeile in dem Beispiel bezwecken wolltest. Die ist ziemlich sinnfrei.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

Wenn du einfach nur vier Variablen nacheinander einlesen willst und an eine Liste anhängen willst, dann geht das am besten mit einer For-Schleife, mit String formatierung bekommst du dann auch das Durchnummerieren beim einlesen hin.

Code: Alles auswählen

liste = []

for x in range(1,5):
    liste.append(input(f"{x}. "))

print(liste)
Antworten