2016-09-01 4 views
1

Я пытаюсь заставить пользователя ввести число от 1 до 6 включительно, а также обрабатывать, если они помещаются в не целое. Вот мой код ниже, но, похоже, он не работает правильно. Я попробовал все, что мог, с исключениями, попробовал, а если иными словами в функции, но не удастся заставить его работать :(помогите пожалуйста. Я получил часть этого, чтобы работать, но когда я попрошу их снова ввести номер, знаю, как закодировать это правильно, так что исключения продолжают работать. Я взял исключение, потому что ни один из них не работал. заранее спасибоПолучите ввод пользователя в пределах диапазона во время обработки исключений

user_choice = int(input("Enter your choice: ")) 

if user_choice <= 6 and user_choice >= 1: 
    return user_choice 

else: 
    print("Invalid menu option.") 
    user_choice = int(input("Please try again: ")) 
    return user_choice 
+1

Что вы возвращаете user_choice в? Return используется для возврата чего-то из функции - попробуйте вместо этого использовать печать. –

+0

- другая функция, я знаю, что код работает, это jus t, что он не обрабатывает исключения, которые ему необходимы, например, если пользователь вводит письмо, ему также нужно снова спросить. если я вхожу в k, он просто дает ошибку python. мне нужно, чтобы он сказал недействительный пункт меню и попросил пользователя повторить попытку. –

ответ

0
user_choice = input("Enter your choice: ") 

try: 
    user_int = int(user_choice) 
except ValueError as e: 
    # user didn't enter an integer! 
    print("Please enter an integernext time") 

if user_choice <= 6 and user_choice >= 1: 
    print(user_choice) 

Это должно иллюстрировать попробовать/за исключением положений.

+0

OP хочет попробовать/кроме ValueError – Li357

+0

О да, я его модифицировал. –

+0

Спасибо Эндрю, его не очень приятно получить -1, когда человек, дающий его, не читает мой вопрос правильно ........ –

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