Python - leere Palette für randrange() (0,0, 0) und ValueError("leere Palette für randrange() (%d,%d, %d)" % (istart, istop, Breite))
Wenn ich dieses Programm ausführen: (python 3.3.1)
import random
import time
from random import randrange
print(' ')
print('I am thinking of a person...')
time.sleep(1)
print('He or she belongs to this group of people:')
people = 'Alice Elise Jack Jill Ricardo David Jane Sacha Thomas'.split()
loop = 0
while loop != 6:
group = []
person = randrange(0, len(people))
personName = people[person]
int(person)
group.append(personName)
del people[person]
loop = loop + 1
Manchmal bekomme ich diese Fehlermeldung:
Traceback (most recent call last):
File "C:\Users\user\Python\wsda.py", line 132, in <module>
person = randrange(0, len(people))
File "C:\Python33\lib\random.py", line 192, in randrange
raise ValueError("empty range for randrange() (%d,%d, %d)" % (istart, istop, width))
ValueError: empty range for randrange() (0,0, 0)
Im Grunde möchte ich es, um 6 Zufalls Namen aus der variable 'Menschen' und fügen Sie die variable "Gruppe"...
Auch dies ist Teil eines größeren Programms basiert auf dem erraten, wer Spiel...
Könnte mir bitte jemand sagen, wie ich dieses Problem lösen?
Thx
InformationsquelleAutor Lucas | 2013-08-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Tritt der Fehler auf, wenn die
people
Liste ist leer (Länge 0). Sie können testen wollen:Müssen Sie hinzufügen 6 zufällige Auswahl aus der
people
Liste ist es besser zu shuffle diepeople
Liste und fügen Sie dann die ersten 6 auf der Liste zugroup
:aber die Chancen sind natürlich Sie am Ende mit einer leeren Liste irgendwann wieder.
Ein weiterer Ansatz ist, um Sie nur
random.Probe()
:Dieser reinholt 6 Zufalls Namen aus der Liste, sondern Blättern
people
unberührt und eine Zukunft pick der 6 Namen wiederholen könnte Namen.Siehe Die Python-Slice-Notation, nimmt es die ersten 6 (Indizes 0 bis 5).
InformationsquelleAutor Martijn Pieters