#python-3.x
#python-3.x
Вопрос:
Я использую модуль random, поэтому Python может генерировать два случайных числа, которые передаются пользователю для проверки их таблиц умножения до 26. Единственная проблема, с которой я сталкиваюсь с этим кодом, заключается в том, что Python подчиняется только операнду != .
Приведенный ниже код "elif answer != win_number:"
выводит то, что пользователь получит, если ответ неверен, но даже в тех случаях, когда ответ правильный, Python все равно печатает этот код и пропускает другие операторы сравнения.
import random
while True:
num1 = random.choice(range(0, 26))
num2 = random.choice(range(0, 26))
win_number = num1 * num2
answer = input("What is " str(num1) " * " str(num2) "?: ")
if answer == win_number:
print("Correct! " str(win_number) " was the right answer!")
elif answer == "?":
print(win_number)
elif answer != win_number:
print("Incorrect! " str(win_number) " is the correct answer!")
Если пользователь вводит 100, когда Python спрашивает, что такое 10 * 10, я ожидаю, что Python перейдет к "if answer == win_number:"
опции и распечатает:
("Correct! " str(win_number) " was the right answer!")
Вместо этого он полностью переопределяет это и переходит прямо к «неправильной» строке.
Что я здесь делаю не так?
Ответ №1:
input
функция возвращает a string
, так что:
>>> "100" == 100
False
Вот почему это условие не выполняется.
Чтобы исправить свой код, вы можете привести ответ:
if int(answer) == win_number: