首页 > 解决方案 > bool 和 if 语句的问题

问题描述

我正在构建一个 ID 确认系统,用户有 3 次尝试输入 ID 正确,如果没有,系统将退出。而我的问题是当用户在第三次输入正确的 ID 时,当代码正确时,语句写入 ID 是正确的,第二行显示他,他输入了太多的尝试和系统正在退出。我该如何修复错误?我该如何解决,当用户在 3/3 尝试输入正确的 ID 时,系统会说,正确的我们可以打破 if 语句。我的代码:

checkas = True
Attempts = 3
CurrentAttemp = 0
KickForBadCode = sys.exit
while checkas:
    CurrentAttemp += 1
    IDConfirm = input("* [3NEMATIX]: {} Please confirm Your ID CODE... Attempt! {}/{} ".format(Vartotojo_Vardas, CurrentAttemp, Attempts))
    with open (DuomenuBaz, mode = 'r', encoding = 'utf-8') as Confirm:
        for line in Confirm:
            if "Vardas: "+Vartotojo_Vardas + " Password: " + Vartotojo_Pass + " ID: " + IDConfirm in line.strip():
                print("Correct!")
                Confirm.close()
                checkas = False
                break
            elif "Vardas: "+Vartotojo_Vardas + " Password: " + Vartotojo_Pass + " ID: " + IDConfirm in line.strip() and CurrentAttemp > 2:
                clear()
                print("Correct!")
                Confirm.close()
                checkas = False
                break
            elif CurrentAttemp >2:
                clear()
                print("~ You have been kicked for too many attempts!")
                checkas = False
                sys.exit

标签: python

解决方案


exit仅当CurrentAttempis >than时才需要Attempts。如果Vartotojo_Pass是正确<=Attempts

尝试更换这部分:

if "Vardas: "+Vartotojo_Vardas + " Password: " + Vartotojo_Pass + " ID: " + IDConfirm in line.strip():
                print("Correct!")
                Confirm.close()
                checkas = False
                break
            elif "Vardas: "+Vartotojo_Vardas + " Password: " + Vartotojo_Pass + " ID: " + IDConfirm in line.strip() and CurrentAttemp > 2:
                clear()
                print("Correct!")
                Confirm.close()
                checkas = False
                break
            elif CurrentAttemp >2:
                clear()
                print("~ You have been kicked for too many attempts!")
                checkas = False
                sys.exit

有了这个:

        if "Vardas: "+Vartotojo_Vardas + " Password: " + Vartotojo_Pass + " ID: " + IDConfirm in line.strip():
            print("Correct!")
            Confirm.close()
            checkas = False
            break
        elif "Vardas: "+Vartotojo_Vardas + " Password: " + Vartotojo_Pass + " ID: " + IDConfirm in line.strip() and CurrentAttemp < Attempts:
            clear()
            print("Correct!")
            Confirm.close()
            checkas = False
            break
        elif CurrentAttemp > Attempts:
            clear()
            print("~ You have been kicked for too many attempts!")
            checkas = False
            sys.exit

推荐阅读