Python 使用lambda函数登录输入

Python 使用lambda函数登录输入,python,lambda,Python,Lambda,我不知道如何使用lambda函数。我编写了这段简单的代码,但现在我正在尝试使用lambda函数重写代码,同时保留常规指令 username_password = {"Maria":"hola","Victoria":"bye"} def main(): for x in range(5): login_username = input("Please enter your user

我不知道如何使用lambda函数。我编写了这段简单的代码,但现在我正在尝试使用lambda函数重写代码,同时保留常规指令

username_password = {"Maria":"hola","Victoria":"bye"} 

def main():
   for x in range(5): 
       login_username = input("Please enter your username.\n") 
       login_password = input("Please enter your password.\n")  

       if login_username in username_password and login_password == username_password[login_username]: 
           print("Logged in")
           break
       else:
           print("\ntry again please")
   else: 
      print("incorrect username / password, kicked off of the system")
      


main() 

首先,您的代码不正确。其次,不建议使用lamda来解决此类问题。请阅读:

这个问题很模糊,但我会给你一些想法

这些更改并没有使代码更易于阅读,只是为了给您一个可以使用lambdas的示例。。。这是使用单个语句的任何地方

将lambda与简单的变换方法(如
map
)相结合,可以让您做一些非常有趣(尽管过于复杂)的事情:


在这种情况下,您似乎不想使用lambdas。为什么您觉得有必要在这里使用它们?Lambda函数类似于列表理解的函数版本。您应该只在定义短/可读函数时使用它们。您可以使用lambdas在一行中编写整个函数,值得吗?作为一个笑话,是的;作为练习,不是真的。我个人在您的代码中找不到lambda函数可以提高可读性的地方。我想使用lambda函数,因为这正是我的教授要求我的。@AlanCalderon他们要求在这段代码中使用lambda吗?如果没有,你最好拿出一个不同的例子(例如,在符合特定条件的列表中搜索帐户)
username_password = {"Maria": "hola", "Victoria": "bye"}
user_input = lambda: input("Please enter your username.\n")
pass_input = lambda: input("Please enter your password.\n")
check_login = lambda u, pw: username_password.get(u) == pw
ask_input = lambda *_: check_login(user_input(), pass_input())


def main():
    for logged_in in map(ask_input, range(5)):
        if logged_in:
            print("Logged in")
            break
        else:
            print("try again please")
    else:
        print("incorrect username / password, kicked off of the system")


main()