В вашем коде переменная answer
- это то, что пользователь вводит в ответ на ваш запрос для input
. Это их ответ на ваш вопрос. Переменная result
является правильным ответом на ваш случайный вопрос. То, что вы хотите сделать, это проверить, являются ли их answer
такими же, как ожидалось result
(вот почему я назвал эту переменную correct_answer
в ответе на ваш предыдущий вопрос).
Причина использования eval
в том, что он eval uates выражение, которое передается как строка. Так, например, если вы пройдете «2 * 3» до eval
, он вернется. 6.
Документация для eval
- это here, которая всегда является хорошим местом для начала.
Разбивка линии, которая дает вам неприятности:
result = eval(str(number1)+oper+str(number2))
Перерывы вниз для примера, где number1
составляет 4 и number2
7:
result = eval("4*7")
"4 * 7" тогда преобразуется в eval
из строки «4 * 7» в исходный код 4*7
, который затем рассчитывается как 28
.
Я думаю, что трудности, с которыми вы сталкиваетесь, видят, что существует разница между «4 * 7», которая является строкой, и 4*7
, которая является кодовым выражением. То, что eval
делает, преобразует строки в операторы, которые затем могут быть выполнены как код.
Пожалуйста, измените заголовок на что-то значимое и исправьте свой отступ. Пожалуйста, укажите, какая часть документации по используемым функциям вы не поняли. – timgeb
Изменено, и я определенно прочитал последнюю строку. – PythonNooby
@PythonNooby, это Python 2 или Python 3? Для первого, 'input()' уже включает неявный 'eval()'. –