变量和函数帮助//Python

变量和函数帮助//Python,python,function,variables,Python,Function,Variables,好的,这是代码 def user_password(): input('Please Enter Password: ') #profiles def intercept(): user_password() if user_password == "intercept": print("this is working so far") else: print("Incorect Password") def Jimmy(

好的,这是代码

def user_password():
input('Please Enter Password: ')

#profiles
def intercept():
    user_password()
    if user_password == "intercept":
            print("this is working so far")
    else:
            print("Incorect Password")
def Jimmy():
    user_password()
    if user_password == "Jimmy":
            print("this is working so far")
    else:
            print("Incorect Password")
def Tommy():
    user_password()
    if user_password == "Tommy":
            print("this is working so far")
    else:
            print("Incorect Password")

#login
user_functions = dict(
    intercept=intercept,
    Jimmy=Jimmy,
    Tommy=Tommy,
    # ...
)
 user_input = input("Input function name: ") 

if user_input in user_functions:
    user_functions[user_input]()
else:
    print("Error: Unknown function.")
问题:

  • 我的代码总是以询问密码开始,即使我不想要它 到
    • 当我将第一个变量更改为函数时,它解决了这个问题
    • 为什么在我设置变量时它会执行呢。我很确定我不应该用函数代替变量
  • 不管怎样,即使我给出了正确的密码,它也总是以不正确的密码结束

    • 我想你是想写这样的东西:

      def get_user_password():
         return input('Please Enter Password: ')
      
      
      def Jimmy():
          user_password = get_user_password()
          if user_password == "Jimmy":
                  print("this is working so far")
      

      因为您的第一行代码是“user_password=input('请输入密码:'),所以这将是执行
      =
      的第一行,但这并不意味着“将左边的东西简化为右边的操作”。它的意思是“做右边的事情,让左边的事情成为做右边的事情产生的对象的名称”。你介意解释一下它是如何工作的,以及为什么我的代码不工作吗?请先检查代码,因为我更改了一些stuff@intercept您的第一行是SyntaxError。请了解如何定义函数以及如何设置变量
      def user_password=input('Please Enter password:')
      对这些都不做任何操作。即使我做得正确,它也会显示不正确的密码