li=[]
username=input('请输入您的用户名:')
password=input('请输入您的密码:')
with open('list_of_info',mode='w+',encoding='utf-8') as f:
f.write('{}\n{}'.format(username,password))
with open('list_of_info',mode='r+',encoding='utf-8') as f1:
for line in f1:
li.append(line)
def shoping(func):
def inner(*args,**kwargs):
username_1=input('请输入您的登录用户名:').strip()
password_1=input('请输入您的登陆密码:').strip()
print(li)
print(username_1)
if username_1==li[0] and password_1==li[1]:
# print('登录成功')
print(username_1)
print(li[0])
ret = func(*args,**kwargs)
return ret
else:
print('登录失败,请重新登录')
# return ret
return inner
@shoping
def shopinglist_add():
print('增加一件商品')
@shoping
def shopinglist_del():
print('删除一件商品')
shopinglist_add()
在执行这段代码的时候,为何每次都执行的是else,然后打印登录失败。我将if 语句中的li[0]和li[1]分别换成固定的用户名和密码后,比如直接写成if username_1=='KL' and password_1=='123':显示正常。所以怀疑列表这里不能读出元素,求助大佬解释。
自己找到方法了,代码改成这样if username_1==li[0].strip() and password_1==li[1].strip():,需要在后面加上.strip()