Python随机超出范围
我正在用Python 3.3.3编写一个代码,如果输入say 12,它将列出32个团队,并确保重复次数最多的团队只比重复次数最少的团队重复一次。如果已经这样做:Python随机超出范围,python,Python,我正在用Python 3.3.3编写一个代码,如果输入say 12,它将列出32个团队,并确保重复次数最多的团队只比重复次数最少的团队重复一次。如果已经这样做: import random if run == '1': teams =[] randoms = [] team = 0 amount = 1 while team != "done": team = input("Please enter team name " + str(am
import random
if run == '1':
teams =[]
randoms = []
team = 0
amount = 1
while team != "done":
team = input("Please enter team name " + str(amount) +" or enter 'done' if you have finished.\n")
if team != "done":
teams.append(team)
randoms.append(team)
amount = amount + 1
length = len(teams)
while len(teams) != 32:
if len(teams) < 32-length:
for x in range (0,length):
teams.append(teams[x])
else:
number = random.randint(0,len(randoms))
name = randoms[number]
teams.append(name)
randoms.remove(name)
teams.sort()
for x in range(0,len(teams)):
print (teams[x])
随机导入
如果运行==“1”:
团队=[]
随机数=[]
团队=0
金额=1
而团队“完成”:
团队=输入(“请输入团队名称”+str(金额)+”或输入“完成”,如果您已经完成。\n”)
如果团队“完成”:
团队。追加(团队)
随机添加(团队)
金额=金额+1
长度=长度(队)
而len(团队)!=32:
如果len(团队)<32长度:
对于范围内的x(0,长度):
teams.append(teams[x])
其他:
number=random.randint(0,len(randoms))
名称=随机数[数字]
团队。追加(名称)
随机删除(名称)
团队排序()
对于范围内的x(0,len(团队)):
打印(团队[x])
我运行程序,进入12个团队,然后完成。它会显示以下消息:
line 29, in <module>
name = randoms[number]
IndexError: list index out of range
第29行,在
名称=随机数[数字]
索引器:列表索引超出范围
我知道这意味着数字不在数组的长度范围内,但我如何解决这个问题?
谢谢你的反馈。我现在有:
import random
teams =[]
randoms = []
team = 0
amount = 1
while team != "done":
team = input("Please enter team name " + str(amount) +" or enter 'done' if you have finished.\n")
if team != "done":
teams.append(team)
randoms.append(team)
amount = amount + 1
length = len(teams)
times =0
while len(teams) != 32:
while len(teams) <= 32-length:
for x in range (0,length+1):
teamname = teams[x]
teams.append(teamname)
else:
choice = random.choice(randoms)
teams.append(choice)
randoms.remove(choice)
teams.sort()
for x in range(0,len(teams)):
print (teams[x])
随机导入
团队=[]
随机数=[]
团队=0
金额=1
而团队“完成”:
团队=输入(“请输入团队名称”+str(金额)+”或输入“完成”,如果您已经完成。\n”)
如果团队“完成”:
团队。追加(团队)
随机添加(团队)
金额=金额+1
长度=长度(队)
次数=0
而len(团队)!=32:
而len(teams)random.randint(a,b)
返回a和b之间的随机整数包括在内。这里,randoms[len(randoms)]
给出了一个错误。尝试random.randrange
或random.choice
。试试这个
name = randoms[number - 1]
将范围的包含边界作为参数。因此,如果下限为0,您可能希望将上限设置为len(randoms)-1
,您应该知道有一个特殊的函数,用于从列表中选择元素:
random.choice(randoms)
…应该按照您的意愿执行。将randint
切换到randrange
-randint(a,b)
包括b
。
random.choice(randoms)