Сумма двух чисел

Когда я ввожу ввод суммы число1 + число2 в качестве «ответа», а число1, число2 — это два рандомизированных числа в диапазоне от 1 до 500, я получаю сообщение «Неправильно, извините!» заявление вместо "Правильно!" когда ответ правильный.

Например, если два числа 479 + 121, ответ должен быть 600, верно? Ну, видимо, это не так, мой код любит говорить. Я предполагаю, что из-за некоторой ошибочной логики. (Обратите внимание, что это всего лишь выдержка, очевидно. Переменные были объявлены как целые числа ранее в основном модуле, и случайный импортируется.)

  def getNumbers():
     number1 = random.randint(1, 500)
     number2 = random.randint(1, 500)
     return number1, number2

  def getAnswer(number1, number2, answer):
     print("What is the answer to the following equation:")
     print(number1)
     print("+")
     print(number2)
     answer = input("What is the sum? ")
     return answer

 def checkAnswer(number1, number2, answer, right):
     if answer == number1 + number2:
       print("Right!")
     else:
       print("Wrong, sorry!")

Выходит как:

Каков ответ на следующее уравнение?

479

+

121

Какова сумма? 600

Неправильно, извините!

0 также считается неверным, поэтому я не уверен, какое значение установлено. Любая идея, как исправить этот код?


person LukeP412    schedule 22.02.2016    source источник
comment
Подсказка: answer устанавливается на "600", что не совпадает с 600.   -  person Kevin    schedule 22.02.2016
comment
Убедитесь, что вы не сравниваете строки с целыми числами. '600' != 600   -  person Klaus D.    schedule 22.02.2016
comment
479 + 121 это 479121!   -  person cdarke    schedule 22.02.2016


Ответы (1)


Функция input возвращает строку, вы должны привести ее к int:

answer = int(input("What is the sum? "))

потому что вы не привели его к int "600" == 600 всегда False и Wrong напечатано.

person ᴀʀᴍᴀɴ    schedule 22.02.2016
comment
Должен был знать, что это была строка, а не целое число. Благодарю вас! - person LukeP412; 22.02.2016
comment
Если этот ответ решил ваш вопрос, рассмотрите возможность принятия ответа, установив флажок. Это показывает более широкому сообществу, что вы нашли решение, и повышает репутацию как отвечающего, так и вас самих. Нет обязанности делать это - person ᴀʀᴍᴀɴ; 22.02.2016
comment
Мои извинения, я думаю, что есть 10-минутное ожидание, чтобы пометить их как отвеченные, когда вы совершенно новый - person LukeP412; 22.02.2016