Я начал изучать Python в прошлом месяце. Следующая программа не возвращает «Верно», даже если вводится правильный ответ:

import random
n1 = random.randint(2,22)
 
import random
n2= random.randint(1,20)

ans=n1+n2

message = input(f"Enter the answer to the question: {n1}+{n2}=")

print(f"Your answer is {message}")

if message == 'ans': 
    print("Correct")

elif message != 'ans':
    print("Wrong")

input()
-3
Rocktopus101 14 Фев 2021 в 14:26

3 ответа

Лучший ответ

В вашем коде есть две проблемы:

  1. Вы сравниваете буквальную строку 'ans', но вам нужно сравнить с объектом ans.
  2. Вам необходимо преобразовать пользовательский ввод в int; по умолчанию тип input - str.
    import random
    n1 = random.randint(2,22)
    
    n2= random.randint(1,20)
    
    ans=n1+n2
    
    message = int(input(f"Enter the answer to the question: {n1}+{n2}="))
    
    print(f"Your answer is {message}")
    
    if message == ans: 
        print("Correct")
    else:
        print("Wrong")
    
    input()

Кроме того, вам не нужно импортировать один и тот же модуль дважды, и вы можете использовать if-else вместо if и elif в вашем случае.

0
Tomerikoo 14 Фев 2021 в 11:36

Здесь есть несколько проблем:

  1. 'ans' - это строка "and", а не строковая версия переменной ans
  2. Как только вы получите ввод от пользователя, это строка, вы должны преобразовать ее в целое число, используя int(input(...))
  3. вам не нужно каждый раз import случайным образом использовать, достаточно одного импорта.

В целом ваш код должен быть:

import random
n1 = random.randint(2,22)
n2= random.randint(1,20)

ans=n1+n2


message = int(input(f"Enter the answer to the question: {n1}+{n2}="))

print(f"Your answer is {message}")


if message == ans: 
    print("Correct")

elif message != ans:
    print("Wrong")
0
David S 14 Фев 2021 в 11:32

Питонический путь

import random

n1, n2 = random.randint(2, 22), random.randint(1, 20)
message = int(input(f"Enter the answer to the question: {n1}+{n2}="))

print(f"Your answer : {message}")
print("Correct") if n1 + n2 == message else print("Wrong")
0
Ali Aref 14 Фев 2021 в 11:47
66194948