python - 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
解决方案
exit
仅当CurrentAttemp
is >
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
推荐阅读
- reverse-engineering - AARCH64/ARMv8 上没有堆栈溢出漏洞?
- c# - 使用 HttpClient POST 请求上传文件返回 200,但文件未上传
- google-bigquery - 通过 BigQuery 连接
- azure-devops - 来自单个 azure 管道 yaml 的多个 (github) PR 检查
- c++ - 加快 C++ 代码性能(map、find()、输入和输出)
- php - 如何在奏鸣曲管理员中启用特定实体的删除和编辑
- redux - 如何在单独导入的函数上使用 jest.fn()
- qt - Qt、Visual Studio 2017 和 .vcxproj.user 文件
- javascript - 如何将 PWA 重定向到新服务器
- apache-spark - 在 Scala Spark 中将多列作为 Seq/Array 传递给 UDF