Warum wird dieser Code nicht ausgegeben?
for part in bestwords:
r = random.randint(0, len(part) - 1)
print(part[r])
Mir wird angeben, dass r = ... nicht definiert ist aber random. randint ist ja praktisch ein Befehl
Danke im vorraus für eure Hilfe !
Ich möchte noch hinzufügen: es gibt einen part1, part2, part3 und einen part4. Jeder part hat eine drei Wörter Liste. bestwords fasst alle parts zusammen; also:
bestwords = [part1, part2, part3, part4]
Vielen Dank für eure Hilfe, ich benötige keine weitere Antworten mehr, da sich das Problem geklärt hat !
4 Antworten
Bei mir klappt es.
import random
bestwords = ["part1", "part2", "part3", "part4"]
for part in bestwords:
r = random.randint(0, len(part) - 1)
print(part[r])
Was ist das Problem?
Vielen Dank für deine Antwort aber es kommen leider nur einzelne Buchstaben und Wörter raus; mein Ziel wäre eigentlich es so zu bekommen, dass einzelne Wörter aus jedem Part rauskommen
Der Code als solches funktioniert. In deinen Kommentaren wunderst du dich darüber, dass nur einzelne Zahlen und Buchstaben rauskommen, aber genau das bewirkt dein Code doch.
import random
bestwords = ["part1", "part2", "part3", "part4"]
for part in bestwords:
r = random.randint(0, len(part) - 1)
print(part[r])
Beim ersten Durchlauf steht in part der String "part1".
Nun wählst du eine zufällige Zahl zwischen 0 und len(part)-1 aus, also zwischen 0 und 4. Angenommen es ist die 2, dann wird das dritte Zeichen aus dem String "part1" ausgewählt, also das "r" und angezeigt.
Wenn du eigentlich eine der Variablen aus bestwords anzeigen lassen möchtest, müsstest du
print(bestwords[r])
anweisen. Aber Vorsicht, wenn die Variable mehr Zeichen als du Einträge im array hast, wirst du eine Fehlermeldung bekommen, weil ein entsprechender Index nicht besteht! Du solltest also ggf. ein Exception-Handling einbauen (try/catch) oder sichergehen, dass ein Index ausgewählt wird, der auch tatsächlich existiert.
Kleiner Tipp. Du kannst es auch einfacher machen
import random
bestwords = ["part1", "part2", "part3", "part4"]
for part in bestwords:
r = random.choice(part)
print(r)
Vielen Dank für die Antwort aber dann kommen leider nur zwei Buchstaben und zwei Zahlen raus
die da benutzen randint irgendwie anders:
https://numpy.org/doc/stable/reference/random/generated/numpy.random.randint.html
da sieht es wieder anders aus:
https://docs.python.org/3/library/random.html
(die schreiben z. B. randrange(10))
hast du sowas geschrieben: „from random import Random“?
Nein, ich habe eine Liste - in jedem part sind drei Wörter, deshalb auch diese Zeile:
(0, len(part) - 1) -> damit möchte ich, dass eine Zahl also ein Wort von den Wörter ausgesucht wird