Python 我编写的代码在“if”语句中工作得很好,但在“else”语句中不工作

Python 我编写的代码在“if”语句中工作得很好,但在“else”语句中不工作,python,python-3.x,Python,Python 3.x,当我运行我的程序时,如果我对输入给出了正确的答案,它就会正常工作并登录。但当我给出错误的答案时,它会再次开始,当它在循环中再次开始时,这次即使我给出了正确的答案,它也会不断告诉我错误的昵称或密码。我如何解决这个问题 kadi = open('kullanici.txt','r') sif = open('sifre.txt','r') while True: ad = input('Your nickname: ') sifreniz = input('Your password

当我运行我的程序时,如果我对输入给出了正确的答案,它就会正常工作并登录。但当我给出错误的答案时,它会再次开始,当它在循环中再次开始时,这次即使我给出了正确的答案,它也会不断告诉我错误的昵称或密码。我如何解决这个问题

kadi = open('kullanici.txt','r')
sif = open('sifre.txt','r')
while True:
    ad = input('Your nickname: ')
    sifreniz = input('Your password: ')
    if not(ad in kadi.read()) or  not(sifreniz in sif.read()):
        print('Wrong nickname or password.')
        continue
    else:
        print('You succesfully logged in.')
        break

您可以在变量中立即读取文件,然后签入变量:

kadi = open('kullanici.txt','r').read()
sif = open('sifre.txt','r').read()
while True:
    ad = input('Your nickname: ')
    sifreniz = input('Your password: ')
    if not(ad in kadi) or  not(sifreniz in sif):
        print('Wrong nickname or password.')
        continue
    else:
        print('You succesfully logged in.')
        break

第二次读取文件时,您已经到达文件末尾,结果是一个空字符串。还要注意的是,您没有检查密码是否与昵称匹配,也不应该以纯文本形式存储密码。一旦您读取了文件,文件指针将指向其末尾,任何读取操作都不会返回任何结果。您必须重新打开文件或按.seek0倒带。