Ошибка в операторе Walrus
Я работал с оператором Моржа. Я заставлял пользователя угадывать число от 0 до 10. Затем его предположение добавляется в список, полный их предположений. Но как только они вводят 0, он просто распечатывает список.
Проблема, с которой я столкнулся, заключается в том, что первое предположение не попадает в список. Я пробовал распечатывать список каждый раз, когда добавлялось значение, но список просто не включал первый ввод. Как я могу заставить оператора Walrus добавить первое значение в мой список?
Вот мой код:
import traceback
def checkAnswerWalrus():
listOfGuesses = []
while (numberGuessed := int(input(f"Guess a number between 0 to 10 : "))) != 0:
listOfGuesses.append(numberGuessed)
print(listOfGuesses)
if numberGuessed == 0:
print(listOfGuesses)
return(True)
if __name__ == "__main__":
try:
numberGuessed = int(input(f"Guess a number between 0 to 10 : "))
checkAnswerWalrus()
except Exception as error:
traceback.print_exc()
finally:
print(f":)")
Вот пример вывода, где "2" не добавляется к списку:
C:/Python3.8/python.exe c:/Users/mayab/Desktop/ict/python/misc/testWalrus.py
Guess a number between 0 to 10 : 2
Guess a number between 0 to 10 : 3
[3]
Guess a number between 0 to 10 : 4
[3, 4]
Guess a number between 0 to 10 : 5
[3, 4, 5]
Guess a number between 0 to 10 : 6
[3, 4, 5, 6]
Guess a number between 0 to 10 : 7
[3, 4, 5, 6, 7]
Guess a number between 0 to 10 : 0
[3, 4, 5, 6, 7]
:)
1 ответ
Первый вопрос задается и первое число вводится в
try
раздел, в котором вы не добавляете значение в список. Просто удали его и позволь
checkAnswerWalrus()
делать всю работу.