Привет, я новичок в программировании, и я работал над программой калькулятора. Это еще не закончено, но мой вопрос сегодня, опасно ли использовать функцию input(), как я? Я провел много исследований, и я могу найти, где он говорит, чтобы не использовать функцию ввода с python 2, потому что это опасно и использовать raw_input, но этот модуль не работает, как мне это нужно. Есть ли более безопасный способ сделать это. Вот мой код калькулятора (его простой и простой)
while True:
print '\nWhat do you want to multiply/divide/add/subtract ?',
calc = input(" ---> " )
print '\nThe answer is %s\n' %(calc)
Кроме того, я бы мог добавить код, который, если будет введено что-либо, кроме проблемы с умножением, добавлением, делением или вычитанием, будет указано неверный ввод и продолжит аналогично тому, как этот код работает, если что-либо, кроме "y" или "y", n 'вводится? как этот код ниже. (Извините, я не мог добавить это в заголовок, потому что это было бы долго.
while True:
y = 'y'
n = 'n'
answer = raw_input('Run again? (y/n): ')
if answer in ('y', 'n'):
break
print 'Invalid input.'
if answer == y:
continue
else:
print 'Goodbye'
break
Спасибо, вам очень жаль, если это много, и я попытался исследовать и приблизился к выяснению того, как добавить недопустимый вход, и мне также нужен способ выйти из программы, просто набрав quit. ~ iMexa
В Python 2.x raw_input()
возвращает строку, тогда как input()
оценивает ввод в контексте. input()
эквивалентно eval(raw_input(prompt))
. input()
не вызывает ошибок пользователя. Если вход недействителен, он просто вызывает SyntaxError
, в отличие от функции raw_input()
.
Python2 input()
оценивает его содержимое, а raw_input()
возвращает его как строку.
# Python 2
input()
>>> 2+2
4
raw_input()
>>> 2+2
"2+2"
Неправильно будет input()
ошибки при неправильном использовании, но он также может позволить пользователю программы выполнять неожиданные операции, некоторые из которых могут быть опасными.