Python: ошибка не повторяется при поиске двух списков - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть следующий код, который стремится продолжить, только если переменная находится в первом списке, а НЕ во втором.

Проблема в следующем, я думаю:

if word2player2 in A_words:
            if word2player2 not in usedlist:

Весь код Python (для соответствующей функции)

def play():
    print("====PLAY===")
    score=0
    usedlist=[]
    A_words=["Atrocious","Apple","Appleseed","Actually","Append","Annual"]
    word1player1=input("Player 1: Enter a word:")
    usedlist=usedlist.append(word1player1)
    print(usedlist)
    if word1player1 in A_words:
        score=score+1
        print("Found, and your score is",score)
    else:
        print("Sorry, not found and your score is",score)

    word2player2=input("Player 2: Enter a word:")
    if word2player2 in A_words:
        if word2player2 not in usedlist:
            usedlist=usedlist.append(word2player2)
            print("Found")
    else:
            print("Sorry your word doesn't exist or has been banked")
            play()

Сообщение об ошибке:

  File "N:/Project 6/Mini_Project_6_Solution2.py", line 67, in play
    if word2player2 not in usedlist:
TypeError: argument of type 'NoneType' is not iterable

Я использую «in» и «not in» ... и это не работает.Я также попытался сделать это в одной строке, используя

, если word2player2 в A_words и word2player2 не в usedlist: >>, но это тоже не сработало.

Любые комментарии приветствуются.

1 Ответ

1 голос
/ 30 апреля 2019

Метод append добавляет элементы «на месте», что означает, что он не возвращает новый список, вместо этого он обновляет исходный список, из которого вызывается метод. Следовательно, он ничего не возвращает (None), и вы получаете эту ошибку.

Как предлагалось в других комментариях, вместо переназначения переменной

usedlist=usedlist.append(word1player1)

просто примените функцию добавления, и usedlist получит новое желаемое значение:

usedlist.append(word1player1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...