Seite 1 von 1
Listenelement wird falsch ausgegeben
Verfasst: Freitag 26. Juni 2015, 13:23
von Lena
Code: Alles auswählen
import random
std=["5 Minuten","eine halbe Stunde","15 Minuten","zwei Stunde"]
zeitangabe=[random.randrange(len(std))]
#print (zeitangabe)
if zeitangabe=="[0]":
anzahl=zeit[0]
Hallo!
Also, das Problem ist:wenn per random eine Element aus'std' gewählt wird, dann dann wird das ja so geprintet: [0]
Ich möcte aber, dass auch immer das tatsächliche Element, also der String genannt wird. In dem Fall beei [0] wäre das dann ja '5 Minuten'.
Meine Vermutung ist, dass ich bei
die Bedingung einfach falsch formuliert habe, also dass hinter dem '==' etwas anderes stehen muss. Habe schon einige versionen ausprobiert, aber bin noch nicht dahinter gekommen:/...Ich hoffe ihr wisst mehr^^
LG
Re: Listenelement wird falsch ausgegeben
Verfasst: Freitag 26. Juni 2015, 14:14
von /me
randrange liefert dir eine Zahl. Die packst du aus unerfindlichen Gründen - vielleicht weil du zu schnell vorwärts willst und Syntax rätst, statt dir erst einmal die Grundlagen anzuschauen - als einzelnes Element in eine Liste. Dann versuchst du diese Liste mit dem String "
[0]" zu vergleichen. Das kann nicht das gleiche sein. Du musst zwischen der für Debugzwecke vorgesehenen Ausgabe und dem echten Wert unterscheiden.
Wenn es dir aber ohnehin nur darum geht einen zufälligen Wert aus der Liste zu bekommen, dann bist du mit
choice viel besser bedient.
Re: Listenelement wird falsch ausgegeben
Verfasst: Freitag 26. Juni 2015, 14:15
von darktrym
Re: Listenelement wird falsch ausgegeben
Verfasst: Freitag 26. Juni 2015, 14:22
von jerch
@Lena:
Ich will Dir nicht zu nahe treten, aber so wird das nichts. Deine bisherigen Fragen lassen darauf schliessen, dass Dir absolute Grundlagen fehlen. Programmiersprachen folgen einer wohldefinierten Strenge, die Du durchschauen lernen musst. Dazu gehört es, zu wissen, wie sich was verhält. Dieses Verhalten ist genau festgelegt und der Schlüssel zum Verständnis. Z.B. sieht Deine Zeile `zeitangabe=[random.randrange(len(std))]` geraten oder von irgendwo zusammengeschrieben aus. Ich bin mir sicher, da es nicht tut, was Du suchst, Dir das aber garnicht so richtig klar ist.
Re: Listenelement wird falsch ausgegeben
Verfasst: Freitag 26. Juni 2015, 14:59
von pixewakb
Wie die Vorredner: Grundlagen fehlen.
Code: Alles auswählen
import random
# Listenindex
std = ["5 Minuten", # 0
"eine halbe Stunde", # 1
"15 Minuten", # 2
"zwei Stunde"] # 3
zeitangabe = random.randrange(len(std))
print("Kontrollausgabe", zeitangabe) # liefert Integer (!)
if zeitangabe == 0: # Vergleich mit einem Integer
# anzahl = zeit[0]
''' zeit ist gar nicht definiert
Du nimmst da eine Zuweisung ohne Ausgabe vor,
d. h. du siehst da nichts in der Konsole'''
print(std[0])
Für mich sieht die Einrückung danach aus, dass du da sehr komplexen Code verwendest, den du wahrscheinlich nicht mehr überblicken kannst. Du kannst mit obigem Code und meinen Kommentaren zu arbeiten versuchen. Vielleicht wird das ein oder andere schon deutlich.