2014-07-15 2 views
-2

Я хочу, чтобы пользователь мог выбрать значение из определенных вариантов. Если они выберут правильный выбор, консоль напечатает «Вы уверены?», Если не будет напечатана «Пожалуйста, выберите ...»., если оператор, проверяющий ввод пользователя, всегда переходит в ветвь 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'. Что я делаю не так?

+1

Ваша проблема в том, что ваш оператор 'if' проверяет« Shutter_Speed ​​», но вход пользователя сохраняется в' Choose_Shutter_Speed'. Кроме того, вы, вероятно, захотите использовать ['decimal'] (https://docs.python.org/2/library/decimal.html) s (или, возможно, только строки) для представления скорости затвора, а не плавания. –

+1

Кроме того, 'Choose_Shutter_Speed' - это строка, как и все, что вы получаете от' input', и пытаетесь сравнить ее с целыми числами. Это всегда будет терпеть неудачу. Используйте 'int (input())'. – TheSoundDefense

+1

Рекомендуется сохранять слова 'UpperCase' только для имен классов и иметь переменные, соответствующие стилю PEP8. В противном случае, как вы можете видеть, это запутывает (SO выделяет их так, как если бы они были именами классов, а не переменными). –

ответ

3

Ваш пользовательский ввод хранится в Choose_Shuttle_Speed, но вы читаете переменную Shuttle_Speed.

Shutter_Speed = (1.0, 2.0, 5.0, 10.0) 
Choose_Shutter_Speed = input ("Select Shutter Interval: ") 

if Choose_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") 

Кроме того, как написано, вы не используете Shuttle_Speed переменную на всех, вы можете просто удалить его полностью или использовать его в том, что предложенный Мэтью.

+0

Это не будет работать, если вы не разобрались, чтобы плавать. – karthikr

+0

Большое спасибо за вашу помощь! Теперь все работает так, как я стремился. Я основывал свой сценарий на аналогичном в другом месте, вероятно, поэтому он поступил не так. – JoeDougieDouglas

3

Похоже, что вы ищете это

if Choose_Shutter_Speed in Shutter_Speed 

Это будет проверять, если вход допустимые значения.

+0

Большое спасибо! Работал как сон. – JoeDougieDouglas

Смежные вопросы