Попытка t ie ввода выбора, чтобы я мог нажать 1,2 или 3 и получить параметры напечатанного текста - PullRequest
0 голосов
/ 07 августа 2020
def cSelection():
    Selection = input()
    return Selection

    if Selection == 1 :
       print('Oxygen levels are normal')
    elif Selection == 2:
        print('Fuel levels are at medium capacity')
    elif Selection == 3:
        print('Food is running low, request for new shipment')  

1 Ответ

0 голосов
/ 07 августа 2020

Оператор return не в нужном месте. Условия if/elif не выполняются из-за возврата return из функции перед ними. return должно быть после logi c (if/elif).

Кроме того, функция input() возвращает строковый тип, но ваши условия if/elif ожидают целое число. Это означает, что вы должны преобразовать вывод input() в целое число с int().

Я рекомендую определить ветвь else, если вход не равен 1-3. Как в моем примере ниже.

Правильный код:

def cSelection():
    Selection = int(input("Write a number (1-3): "))  # Input cast to integer.

    if Selection == 1 :
       print('Oxygen levels are normal')
    elif Selection == 2:
        print('Fuel levels are at medium capacity')
    elif Selection == 3:
        print('Food is running low, request for new shipment')
    else:
        print("Wrong option")

    return Selection

return_value = cSelection()
print("Return value of function: {}".format(return_value))

Вывод:

>>> python3 test.py 
Write a number (1-3): 1
Oxygen levels are normal
Return value of function: 1

>>> python3 test.py 
Write a number (1-3): 3
Food is running low, request for new shipment
Return value of function: 3

>>> python3 test.py 
Write a number (1-3): 5
Wrong option
Return value of function: 5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...