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

Python编写密码输入校验功能时无法重复循环该如何解决?

密码校验循环失效问题修复

核心问题原因

  • 密码输入逻辑input("Password: ")仅写在循环外,程序只会在启动时读取一次输入,循环过程中不会获取用户新输入的密码
  • 校验失败后的重新提示逻辑放在了while循环外部,无法被循环触发
  • 空格校验逻辑写反:现有代码会在密码不含空格时判定为不合法,不符合常规密码不能包含空格的需求,需要调整判断条件

修正后可正常运行的代码

import re

while True:
    # 输入逻辑放入循环内,每次校验前读取用户新输入的密码
    p = input("Password: ")
    is_valid = True
    if len(p) < 8 or len(p) > 32:
        is_valid = False
    elif not re.search("[a-z]", p):
        is_valid = False
    elif not re.search("[0-9]", p):
        is_valid = False
    elif not re.search("[A-Z]", p):
        is_valid = False
    elif not re.search("[$#@]", p):
        is_valid = False
    # 调整空格校验逻辑:存在空格则判定密码不合法
    elif re.search("\s", p):
        is_valid = False
    
    if is_valid:
        print("Valid Password")
        # 校验通过直接跳出循环
        break
    else:
        print("Not a Valid Password. Please type again.")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:36:05