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.
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])
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:
@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
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.