我们被分配了这个任务:
“刺客游戏是一个在大学校园里玩的简单游戏,每个玩家都被分配一个暗杀目标,只需对他们说‘你死了’。当然,校园里有数千人,而游戏中只有几十人你永远不知道谁要暗杀你。一旦你暗杀了一个人,你就会对他们正在寻找的目标采取行动。如果这恰好是你,那么你就是赢家。为了确保这正常工作,目标必须形成一个连续的“链” 。” 编写一个程序,允许用户输入他们的目标分配,并根据是否存在连续的“链”输出它是否有效。列表中的每个人都由列表中的位置表示。该位置的值是他们的目标。例如 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,程序将输出它是无效的。谢谢。