Я хочу, чтобы пользователь мог выбрать значение из определенных вариантов. Если они выберут правильный выбор, консоль напечатает «Вы уверены?», Если не будет напечатана «Пожалуйста, выберите ...»., если оператор, проверяющий ввод пользователя, всегда переходит в ветвь else
Shutter_Speed = (1.0, 2.0, 5.0, 10.0)
Choose_Shutter_Speed = input ("Select Shutter Interval: ")
if Shutter_Speed in (1.0, 2.0, 5.0, 10.0):
print ("Are you sure? ")
else:
print ("Please select from 1.0, 2.0, 5.0 or 10.0 seconds")
Когда я запускаю этот код, независимо от того, что я ввожу в качестве ввода, он будет запускать оператор 'else'. Что я делаю не так?
Ваша проблема в том, что ваш оператор 'if' проверяет« Shutter_Speed », но вход пользователя сохраняется в' Choose_Shutter_Speed'. Кроме того, вы, вероятно, захотите использовать ['decimal'] (https://docs.python.org/2/library/decimal.html) s (или, возможно, только строки) для представления скорости затвора, а не плавания. –
Кроме того, 'Choose_Shutter_Speed' - это строка, как и все, что вы получаете от' input', и пытаетесь сравнить ее с целыми числами. Это всегда будет терпеть неудачу. Используйте 'int (input())'. – TheSoundDefense
Рекомендуется сохранять слова 'UpperCase' только для имен классов и иметь переменные, соответствующие стилю PEP8. В противном случае, как вы можете видеть, это запутывает (SO выделяет их так, как если бы они были именами классов, а не переменными). –