def中的Python变量

def中的Python变量,python,Python,我在def函数内部进行了输入,但需要在def函数外部的if语句中使用它 但是它说输入没有定义 def mainmenu() Pick = input("input 1 for deposit, and so on") If pick == "1": Deposit() 很难知道您想做什么,但根据您的示例,您可以使用: def pick(): return input("input 1 for deposit, and so on") if pick() == "1

我在def函数内部进行了输入,但需要在def函数外部的if语句中使用它 但是它说输入没有定义

def mainmenu()
       Pick = input("input 1 for deposit, and so on")

If pick == "1":
   Deposit()

很难知道您想做什么,但根据您的示例,您可以使用:

def pick():
   return input("input 1 for deposit, and so on")

if pick() == "1":
   # Deposit()
   print("execute Deposit()")

你可以这样做,这是更好的方法 而是使用if语句

menu_data = { '1' : func1, '2': func2} # etc...


def pick():
    user_input = input("input 1 for deposit, and so on")
    try:
      menu_data[user_input]() # call the method according to the input
    except KeyError as err:
        print('invalid key try again')
        pick()

由于变量
pick
只是一个局部变量(函数中的一个),而不是全局变量(可以在任何地方访问),因此必须返回该变量才能全局访问该变量

def pick():
  pick = input("input 1 for deposit, and so on")
  return pick

if pick() == "1":
  Deposit()
  # and so on...

因此,您可以通过运行函数来访问它。然后检查它是否等于1

变量仅在scope方法中定义,您可以返回它
Pick”输入(
是无效语法。你的意思是
pick=input
?是的,我的意思是pick=input这回答了你的问题吗?@cartonzstr你看到我的答案了吗?解释得很好……你不需要检查输入,try-catch会处理它,你可以再次调用你的函数,要求用户再次输入有效的输入。Python鼓励使用它例外情况,你可以在这里看到删除所有评论,忘记这一切