如何在Python中阻止用户输入字典内已存在的邮箱值
问题原因
- 原代码的
email != users是字符串与字典对象直接比较,判断结果恒为True,导致后续校验逻辑完全失效 - 原代码的
email in users默认仅检查邮箱是否为字典的键(也就是已存储的姓名),不会检查是否为已存储的邮箱值,自然无法识别重复邮箱的场景
修改后的代码
users = {} def option_2(): """Function that adds a new name and email address""" # Prompt user to enter both name and email address name = input("Enter name: ") email = input("Enter email address: ") # 检查邮箱是否已存在于字典的值集合中 if email in users.values(): print("That email is already taken.") else: users[name] = email print(users)
逻辑说明
调用字典的values()方法可以获取所有已存储的邮箱值,直接判断输入的邮箱是否在这个集合里即可识别重复;调整了判断分支的顺序,先做重复校验,校验不通过直接提示,校验通过再写入字典。
内容的提问来源于stack exchange,提问作者user14574630
相关产品推荐
相关产品推荐

