2013-11-03 30 views
0

我们得到了这个任务:刺客游戏Python的错误

“刺客的游戏是一个简单的游戏在大学校园里玩,每个玩家通过简单地说,分配目标暗杀‘你死定了’它们。当然,在校园里有成千上万的人,在游戏中只有几十个人,你永远不知道谁在暗杀你,一旦你暗杀了一个人,你就会选择他们寻找的目标,如果这是你,那么你是赢家为了确保这项工作正常进行,目标必须形成一个连续的“连锁”。编写一个程序,允许用户输入目标分配并输出是否有效。 “列表中的每个人都用列表中的位置表示这个位置是他们的目标。例如。 4 3 0 5 6 2 1有效”

这里是我的代码:

people=[] 
steps=[] 
valid=True 

while True: 
    person=int(input("Enter the target(-1 to exit):")) 
    if person==-1: break 
    people.append(person) 

for i in range(len(people)): 
    if len(people[0])!=0: 
     valid=False 
     break 
    elif len(people[0])==0: break 
    steps.append(people[0]) 

for i in range(len(jumps)): 
    if jumps[i-1]==jumps[i]: 
     valid=False 
if valid==False:     #program MUST check if the flag is false before checking for length 
    print('invalid')    #of the jumps list compared to the victims list. 
elif len(jumps)==len(victims): 
    print('valid') 
elif len(jumps)!=len(victims): 
    print('invalid') 

目前,我得到这个错误:

File "C:/Users/Wisdom1/Desktop/ListAssign6.py", line 14, in 
<module> 
if len(people[0])!=0: 
TypeError: object of type 'int' has no len() 

我不知道这是为什么,但如果有人可以向我解释这个错误陈述的发生,那将是不胜感激。此外,如果在这段代码中有任何其他错误,请让我知道。我想要的输出实现将是任何seq如果输入4305621以外的内容,程序将输出该信息无效。谢谢。

+1

不要要求别人做你的功课。整个观点是你想出来的 –

+0

我不是要求别人为我创建一个代码。那会要求有人做我的功课。我尽我所能完成了一些工作,并要求某人为我修改一下。你有他们两个困惑。 – user2950875

+1

好的...但请尝试使用谷歌搜索寻求帮助。已经有很多这样的问题了 –

回答

3

people是一个列表。 people[0]但是是一个整数。而且,正如你的错误所说,你不能使用带整数的len,因为它们是不可迭代的。

如果你想看看的people长度不0,删除[0]

if len(people)!=0: 

或者,如果你想看看people[0]不等于0,删除len

if people[0]!=0: