Python 3.x Python3密码给了我一个循环
在编写脚本时,我从python3解释器中获得了一些奇怪的观察结果 错误就在于此 我输入正确的用户名和密码,我被授予一个无条件的无限循环Python 3.x Python3密码给了我一个循环,python-3.x,login,while-loop,infinite-loop,Python 3.x,Login,While Loop,Infinite Loop,在编写脚本时,我从python3解释器中获得了一些奇怪的观察结果 错误就在于此 我输入正确的用户名和密码,我被授予一个无条件的无限循环 def LoginAdmin(): # 3 chances seulement ... LoginTrial = 3 position=0 AdminOK=0 AdminCheck=[] PassCheck = open('Data_LoginAdmin', 'r') #lecture des lignes
def LoginAdmin():
# 3 chances seulement ...
LoginTrial = 3
position=0
AdminOK=0
AdminCheck=[]
PassCheck = open('Data_LoginAdmin', 'r')
#lecture des lignes et mise en données les informations mdp et login
for ligne in PassCheck:
print(ligne, end='')
words = ligne.split(":")
AdminCheck.append(words)
print(AdminCheck)
PassCheck.close()
LoginAdminAcces = True
while (((LoginTrial != 0) or (AdminOK == True))):
UserAdminName=input("Identification : ")
if not UserAdminName.isalpha:
LoginTrial = LoginTrial - 1
print("Autentification Échouer essai restant : ", LoginTrial)
elif UserAdminName != AdminCheck[0][0]:
LoginTrial = LoginTrial - 1
print("Autentification Échouer essai restant : ", LoginTrial)
elif UserAdminName == AdminCheck[0][0]:
while (((LoginTrial != 0) or (AdminOK == True))):
UserAdminPass=input("Mot de pass : ")
if not UserAdminName.isalpha:
LoginTrial = LoginTrial - 1
print("Autentification Échouer essai restant : ", LoginTrial)
elif UserAdminPass != AdminCheck[0][1]:
LoginTrial = LoginTrial - 1
print("Autentification Échouer essai restant : ", LoginTrial)
elif UserAdminPass == AdminCheck[0][1]:
LoginAdminAcces = True
AdminOK=True
print(AdminOK)
print("Accès apprové ...")
if LoginTrial == 0:
print("Accès Refusé !!!")
LoginAdminAcces = False
return (LoginAdminAcces)
这是文件数据\u LoginAdmin
Admin:AdminPass
如果有人知道为什么会救我的命。。。有点…不完全确定发生了什么,但这里有一个潜在的问题:
UserAdminName==AdminCheck[0][0]
然后输入最后一个elif(可能是正确的密码)AdminOK
设置为True
(可能意味着密码已经过验证)AdminOK
为trueAdminOK
为false,这样当密码不正确时就可以再次循环。另外,或
应该是和
。因此,将while循环更改为
while (((LoginTrial != 0) and (AdminOK == False))):
Et“AutentificationÉchouée”car c’s UNE Autentification.而且因为AdminOK是一个布尔值,你可以说
不是AdminOK
。哈哈,我也需要更多的睡眠。这绝对是一个,而不是一个OR。您希望用户有剩余的尝试,但尚未获得密码。实际上,如果用户名错误,用户无法实际输入密码,这部分工作正常,而第二部分由于某些原因忽略了真假,导致我崩溃