You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

While循环输出异常:输入正确PIN仍重复输出问题求助

问题分析与修复方案

原代码的核心问题

  • 正确PIN输入后未终止循环:输入正确PIN时,代码仅打印欢迎界面,但未跳出while循环。此时tries值仍小于3,循环会继续执行,导致重复弹出PIN输入提示。
  • 错误判断逻辑冗余且无效:第二个独立的if pin != correct_Pin会在每次输入后执行(哪怕PIN已匹配正确);且里面的tries > 3判断永远不会触发——因为循环条件是tries < 3,当tries等于3时循环直接终止,根本不会进入循环体执行该判断。
  • 若把pin = input(...)移到循环外:只会获取一次输入值,三次循环都用同一个PIN判断。如果首次输入错误,后续两次循环的判断结果仍为错误,因此会连续打印三次“Please try again”后终止程序。

修复后的代码

correct_Pin = "4349"
tries = 0
while tries < 3:
    pin = input("HELLO, PLEASE ENTER YOUR BANK 4-DIGIT PIN: ")
    tries += 1
    if correct_Pin == pin:
        print("Correct | Welcome, please choose a selection")
        print(
            '''
    1. View balance. 
    ***********************************
    2. Withdraw.
    ************************************
    3. Make deposit
    ***********************************
    4. Exit
    ***********************************
            '''
        )
        break  # 输入正确后直接跳出循环,避免重复执行
    else:  # 用else替代独立的if判断,消除逻辑冗余
        print("Please try again")
# 循环结束后统一判断是否耗尽所有尝试次数
if tries == 3 and pin != correct_Pin:
    print("Too many failed attempts. Access locked.")

修复说明

  1. 添加break终止循环:PIN匹配正确时执行break,直接跳出while循环,避免程序继续要求输入PIN。
  2. 用else整合错误判断:将错误提示放在if的else分支内,避免PIN正确时仍执行错误提示逻辑。
  3. 优化尝试次数耗尽的判断:循环结束后统一检查是否用完3次机会且PIN始终错误,给出锁定提示。

内容的提问来源于stack exchange,提问作者semistupid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 05:25:37