刺客游戏Python错误

时间:2013-11-03 23:29:51

标签: python list indexing chain

我们得到了这个任务:

"刺客游戏是一个在大学校园里玩的简单游戏,每个玩家被指定一个暗杀目标,只需简单地说“你已经死了”。当然,在校园里有数千人,游戏中只有几十人,你永远不知道谁在暗杀你。一旦你暗杀某人,你就会接受他们正在寻找的目标。如果这恰好是你,那么你就是胜利者。为确保正常工作,目标必须形成一个连续的“链”。编写一个程序,允许用户输入目标分配并输出它是否有效。基于是否存在连续的“链”。列表中的每个人都由列表中的位置表示。该位置的价值是他们的目标。例如。 0 1 2 3 4 5 6
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()

我不知道为什么会这样,但如果有人能够向我解释这个错误陈述的发生,那将非常感激。此外,如果此代码中有任何其他错误,请告诉我们。我想要实现的输出是除4305621以外的任何输入序列,程序将输出它无效。感谢。

1 个答案:

答案 0 :(得分:3)

people是一个列表。 people[0]但是是整数。并且,正如您的错误所述,您不能将len与整数一起使用,因为它们是不可迭代的。

如果您想查看people的长度是否不是0,请移除[0]

if len(people)!=0:

或者,如果您想查看people[0]是否不等于0,请删除len

if people[0]!=0: