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

Python密码校验程序符合约束时while循环持续循环无法正常退出问题

密码校验程序循环问题修复方案

问题根因

  • 密码输入、密码长度计算逻辑写在了while循环外部,程序只会在启动时获取一次密码,后续循环都会复用第一次输入的密码做校验,所以会持续输出同一条提示消息。
  • 额外加入的exit()调用属于非常规流程控制语句,在部分运行环境中可能无法立刻生效,反而会导致执行逻辑异常。

符合开发约束的修复后代码

MIN_PASSWORD_LENGTH = 6  # 常量定义
MAX_PASSWORD_LENGTH = 10
message = ''

while message != "password strong":
    # 密码输入、长度计算移到循环内部,每次循环获取新密码
    password = input("Please enter your password: ")
    password_length = len(password)
    print(password_length)
    if password_length < MIN_PASSWORD_LENGTH or password_length > MAX_PASSWORD_LENGTH:
        message = "Password should have more than 6 but less 10 characters"
    elif password.isalpha():
        message = "password weak – contains only letters"
    elif password.isnumeric():
        message = "password weak – contains only numbers"
    else:
        message = "password strong"
    print(message)

修复说明

修复后的代码完全满足两项开发约束:

  • 没有使用break语句,循环完全依靠自身条件判断终止
  • while循环的判断条件仅使用message变量,没有包含password和password_length变量
    当密码校验通过时,message被赋值为"password strong",下一次循环条件判断不成立,循环会自动正常结束。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:06:05