python - 如何将多个字符串存储为一个变量
问题描述
我为每个使用我的代码的假定用户编写了 if 和 else 语句,以确保他们是谁。我想知道是否有更有效的方法来做到这一点。我希望代码看起来像第 2 到 7 行,但目前我必须让它看起来像第 9 - 14 行。有什么办法可以让第 2 到 7 行工作吗?
我已经尝试使用单独的 if 和 else 语句将每个用户分开,该语句检查用户是否已经存在以及他们是否获得了正确分配给该用户的密码。我还尝试使用列表函数将多个不同的用户存储为一个变量,这样如果程序检测到任何这些用户,它就会将它们移动到下一步但是一旦我这样做,程序就会拒绝识别任何元素作为个人的名单。例如,在代码的第 2 行中,没有一个用户被识别。仅当我将其分开时才识别用户 blake if else 阻止。
user_name = input ("Hello, user please enter your username!")
if user_name == ["Jake", "Bake"]:
Password = input("Please enter your password %s" %user_name)
if Password == ["hello", "notem"]:
print ("Welcome back %s" %user_name)
else:
print ("You are an imposter! Begone!!")
else:
if user_name == ("Bake"):
Password = input("Please enter your password %s" %user_name)
if Password == ("hell"):
print ("Welcome back %s" %user_name)
else:
print ("You are an imposter! Begone!!")
在第 2 到第 7 行之外,我希望我可以输入 Jake 甚至 Blake 来获取密码问题。然后,一旦我输入了相应的并且只有相应的密码,那么我应该会受到欢迎(无论我选择使用哪个用户名)。实际上,只要我输入任何用户名,该程序就会退出我,因为该程序似乎不知道如何从用户名提示继续进行。
解决方案
if user_name == ["Jake", "Bake"]:
检查是否user_name
等于列表["Jake", "Bake"]
。
如果要测试检查名称是否在列表中,请使用关键字in
:
if user_name in ["Jake", "Bake"]:
推荐阅读
- c# - 如何将项目添加到属性(列表
) 泛型类型 - reactjs - 如何使过滤器在列上工作,其值是 MUIDataTable 中的对象数组?
- r - 有没有办法提供关于基于列表的行的值与组 ID 相关联的可靠性的分数?
- elasticsearch - 如何在 Elasticsearch 中处理来自不同日志源的字段冲突?
- google-bigquery - BigQuery ML 评估指标 (nDCG = 1)
- function - 匹配一个值并替换行中的数据
- java - 如何编辑 android studio Java 代码以在较新版本的 Gradle 上工作?
- azure - 将 GitLab 从 Azure Linux VM 迁移到 AKS
- typescript - 使用 Typescript 和 Lerna 的 Vue 2 组件库的推荐构建配置
- reactjs - 如何使用 Typescript 正确声明 React 包装器组件 (HOC) 的类型