python-3.x - 为什么if语句不比较文本文件中的数据?Python
问题描述
我正在尝试创建一个简单的登录系统。问题是,即使我输入了正确的用户名和密码,if 语句也根本没有执行。这是我第一次提问。来自文本文件的数据:
泰德, teddy@gmail.com, 12345678 豆豆,bean@gmail.com,12345678
with open('data.txt') as f:
f_read = f.read().split()
print(f_read)
n = str(input("Do you have an account?yes/no: "))
while n == "yes":
username_check = input("enter a username: ")
checkpass = input("enter your password: ")
for line in open('data.txt','r').readlines():
loginDetails = line.split()
if username_check == loginDetails[0] and checkpass == loginDetails[2]:
print("accepted")
break
else:
print('not accepted')
这是输出。
您有帐户吗?是/否:是 输入用户名:bean 输入您的密码:12345678 不接受 输入用户名:
解决方案
问题是分隔文件中字段的逗号。
当你做loginDetails = line.split()
的内容loginDetails
将是例如['bean,', 'bean@gmail.com,', '12345678']
。
当你比较它们时'bean'
,'bean,'
它们将不匹配。
可能的解决方案包括更改输入文件的格式,或使用逗号分隔值模块来读取文件。或以逗号分隔,如另一个答案所示。
推荐阅读
- c++ - 官方支持 C++11 的最低 GCC 版本
- html - HTML:图像不显示
- javascript - window.scroll 不适用于页面上的多个滚动窗口
- c# - 在声明时初始化属性与 Blazor C# 中的 OnInitialize 的优缺点
- visual-studio - Qt VS 工具中的后台构建是什么
- python - 错误“产品”对象没有属性“_combinator_query”
- python - 如何找到最后一个元素的索引
- python - 我无法修复计算存款最终金额的功能
- python - 我的游戏角色只有在需要鼠标时鼠标在屏幕上移动时才会移动
- spartacus-storefront - 迁移 Spartacus SAP Commerce Cloud 2011