Попытка перенаправить пользователя на новый подраздел

#python

#python

Вопрос:

Итак, я исхожу из Visual Basic. Все еще кодирую его, но также немного изучаю python на стороне. Что я часто делаю в VB, так это то, что я могу перенаправлять пользователей на новый подраздел.

 UserOp = input("What option would you like to do? 1, 2 or 3")

if userop == "1":

    option1()

elif userop == "2":

    option2()

elif userop == "3":

    option3()
  

Итак, цель здесь — перенаправить пользователя на новый подраздел, называемый либо ‘option1’ ‘option2’ ‘option3’.

Спасибо, я знал, что это звучит глупо, но я только начал

Комментарии:

1. похоже, это должно сработать. В чем проблема / ошибка, с которой вы столкнулись?

2. ну, например. если пользователь нажал 1. Это перенаправило бы их на опцию 1. Итак, мой вопрос в том, как мне создать новый подраздел для option1?

3. Я думаю, то, что вы имеете в виду, — это функция. Объявлено в python с помощью Def.

4. Если это еще не сделано, вам следует поработать с учебным пособием по Python

5. Это def , а не Def и def не функция! Также UserOp и userop являются разными переменными в Python, потому что случай имеет значение. Вы действительно должны следовать базовому руководству по Python, чтобы узнать об основах. Таким образом, вы только потеряете время.

Ответ №1:

Итак, сначала вам нужно определить функцию, после чего вы сможете их вызвать.
Я переработал код :

 def option1():
    print ("opt1")

def option2():
    print ("opt2")

def option3():
    print ("opt3")

UserOp = input("What option would you like to do? 1, 2 or 3 : ")

if UserOp == "1":
    option1()

elif UserOp == "2":
    option2()

elif UserOp == "3":
    option3()
  

Я надеюсь, это может вам помочь.

Ответ №2:

Pythonic способ сделать это — использовать словарь:

 def option1():
    print(1)

def option2():
    print(2)

def option3():
    print(3)

switch = {
    "1": option1,
    "2": option2,
    "3": option3,
}

user_option = input("What option would you like to do? 1, 2 or 3")

switch.get(user_option, "Invalid option. Valid values 1, 2, and 3")()
  

Способ, которым это работает, заключается в том, что вы сопоставляете пользовательские параметры функциям с помощью dictionary. В моем примере это называется switch . Каждый ключ словаря является пользовательским выбором и указывает на определенную функцию. После того, как пользователь выбирает параметры, вы вызываете dictionary с помощью метода get и причины get, потому что он может обрабатывать недопустимое значение. Аналогично инструкции default: в инструкции switch. Другой способ сделать это:

 switch[user_option]()
  

но это не удастся в случае, если пользователь введет недопустимую запись.