0

私たちはこの任務を与えられました:

「ゲーム オブ アサシンは、大学のキャンパスで行われるシンプルなゲームで、各プレイヤーは暗殺するターゲットを割り当てられ、単に「あなたは死んでいる」と言うだけです。もちろん、キャンパスには何千人もの人々がいて、ゲームには数十人しかいません誰があなたを暗殺しようとしているのかは決してわかりません. 誰かを暗殺したら、彼らが探していたターゲットを攻撃します. これがあなただった場合、あなたが勝者です. これが適切に機能することを確認するには、ターゲットは連続した「チェーン」を形成する必要があります. 」連続した「連鎖」があるかどうかに基づいて、ユーザーがターゲット割り当てを入力し、それが有効かどうかを出力できるようにするプログラムを作成します。リスト内の各人物は、リスト内の位置によって表されます。位置の値がターゲットです。例: 0 1 2 3 4 5 6
4 3 0 5 6 2 1 Valid"

これが私のコードです:

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 以外のシーケンスを入力すると、プログラムはそれが無効であると出力することです。ありがとう。

4

1 に答える 1

3

peopleリストです。 people[0]ただし、整数です。そして、あなたのエラーが言うように、len整数は反復不可能であるため、整数では使用できません。

peopleの長さがでないかどうかを確認したい場合は、次0を削除し[0]ます。

if len(people)!=0:

people[0]または、が と等しくないかどうかを確認したい場合は0、 を削除しlenます。

if people[0]!=0:
于 2013-11-03T23:36:59.777 に答える