with open('b.txt',mode='rt',encoding='utf-8') as f: res = f.read() username,password = res.split(':') inp_username = input('please input your username:').strip() inp_password = input('please input your password:') if inp_username == username.strip() and inp_password == password: print('login successful') elif inp_username == username.strip() and inp_password != password: print('username or password error1') elif inp_username != username.strip() and inp_password == password: print('username or password error2') print(username,password,inp_username,inp_password)
please input your username:fang
please input your password:123
username or password error2
fang 123 fang 123
Process finished with exit code 0
我知道问题的所在了,从txt文件中取出来的时候,变量前自动加了个'\ufef'的前缀,我搜了搜是BOM的问题,我也不大明白其中的原理,不过将从txt文件中取出来的编码格式换成utf-8-sig就好了,不过大佬能细细讲一下其中的原理吗
inp_username.strip()试试。全部去掉前后空格。
我这运行正常啊,你是不是txt里面打的中文的冒号导致没分割出来?
with open('jisuan.txt',mode='rt',encoding='utf-8') as f:
res = f.read()
username, password = res.split(':')
inp_username = input('please input your username:').strip()
inp_password = input('please input your password:')
if inp_username == username.strip() and inp_password == password:
print('login successful')
elif inp_username == username.strip() and inp_password != password:
print('username or password error1')
elif inp_username != username.strip() and inp_password == password:
print('username or password error2')
print(username, password, inp_username, inp_password)
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m