Python Fehler in Liste

svr2009

Ensign
Registriert
März 2015
Beiträge
172
Hi, ich wollte einen kleinen Würfelgenerator basteln in dem man höchstens 3 Würfel nutzen kann und beliebige Würfel. Jetzt wollte ich die Ergebnisse in einer Liste festhalten um dann später weitere Funktionen hinzufügen zu können.
Könnt ihr mir den Fehler erklären?

Code:
import random

würfel = int(input("Wie viele Würfel wollen Sie werfen?"))

while (würfel > 4):
würfel = int(input("Sie haben ein Limit von 3 Würfel, wählen Sie 3 oder weniger Würfel:"))​

versuche = int(input("Wie viele Versuche wollen Sie?"))

list = []

for i in range(0, (versuche)):
list.append(random.randint(1,6) for x in range(würfel))​


print(list)


Ausgabe:

Wie viele Würfel wollen Sie werfen? 2
Wie viele Versuche wollen Sie? 3
[<generator object <genexpr> at 0x7ff56d2da0f8>, <generator object <genexpr> at 0x7ff56d2da150>, <generator object <genexpr> at 0x7ff56d2da1a8>]

=> None
 
evtl. darf man ne forschleife nicht in ne append funktion schreiben?

versuch die zweite schleife vor's append zu ziehen, speicher es in ner (temp-)variable und füg die temp dann der liste hinzu.


und oben machst 'range' von '0' bis 'versuche' und unten nur 'würfel'

muss die schleife nicht auch (0, versuche -1) gehen?
 
Zuletzt bearbeitet:
list.append([random.randint(1,6) for x in range(würfel)])

Somit bekommst du eine Liste in einer Liste. Was du gemacht hast ist ein generator der Liste hinzufügen (das "random.randint(1,6) for x in range(würfel)" ist ein Generator).

Wenn du alle Würfe in der Liste haben möchtest ([1,2,3,3,...]) musst du list.extend anstatt append machen. Siehe http://stackoverflow.com/a/252711/2014080
 
Zuletzt bearbeitet:
Asfaloth schrieb:
list.append([random.randint(1,6) for x in range(würfel)])

Somit bekommst du eine Liste in einer Liste. Was du gemacht hast ist ein generator der Liste hinzufügen (das "random.randint(1,6) for x in range(würfel)" ist ein Generator).

Wenn du alle Würfe in der Liste haben möchtest ([1,2,3,3,...]) musst du list.extend anstatt append machen. Siehe http://stackoverflow.com/a/252711/2014080

list.extend hat mich gerettet xD Danke^^ Ich mach mal weiter und poste das Ergebnis :)
 
Zurück
Oben