gpt4 book ai didi

Python - randrange() 的空范围 (0,0, 0) 和 ValueError ("empty range for randrange() (%d,%d, %d)"% (istart, istop, width))

转载 作者:行者123 更新时间:2023-11-30 23:34:21 24 4
gpt4 key购买 nike

当我运行这个程序时:(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

我有时会收到此错误消息:

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)

基本上我希望它从变量“people”中获取 6 个随机名称并将其添加到变量“group”中...

这也是一个基于猜谁游戏的更大程序的一部分......有人可以告诉我如何解决这个问题吗?谢谢

最佳答案

people 列表为空(长度为 0)时,会发生错误。您可能想测试一下:

>>> import random
>>> random.randrange(0, 0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/mj/Development/Libraries/buildout.python/parts/opt/lib/python2.7/random.py", line 217, in randrange
raise ValueError, "empty range for randrange() (%d,%d, %d)" % (istart, istop, width)
ValueError: empty range for randrange() (0,0, 0)

如果您需要从 people 列表中添加 6 个随机选择,最好随机 people 列表,然后添加前 6 个该列表的:

import random

people = 'Alice Elise Jack Jill Ricardo David Jane Sacha Thomas'.split()
random.shuffle(people)
group.extend(people[:6])
people = people[6:] # remainder, so the 6 picks have been removed

但当然,您很可能在某个时刻再次得到一个空列表。

另一种方法是仅使用 random.sample() :

people = 'Alice Elise Jack Jill Ricardo David Jane Sacha Thomas'.split()
group.extend(random.sample(people, 6))

这只是从列表中随机选择 6 个名字,但 people 不受影响,并且将来选择的 6 个名字可能会重复。

关于Python - randrange() 的空范围 (0,0, 0) 和 ValueError ("empty range for randrange() (%d,%d, %d)"% (istart, istop, width)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18161513/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com