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

Python判断字符串含大写及数字函数报错,求无导入修复方案

代码问题分析
  • 条件逻辑错误:原代码中if char in "ABCDEFGHIJKLMNOPQRSTUVWXYZ" and "1234567890"的判断逻辑完全错误,Python中该表达式会被解析为(char in 大写字符串) and (数字字符串),而非判断字符同时属于两个集合,且非空字符串的布尔值为True,因此该条件实际仅判断字符是否为大写字母,和需求完全不符。
  • 提前终止循环:循环内部无论判断结果如何都会直接return,导致仅会校验字符串的第一个字符就返回结果,无法遍历整个字符串判断是否存在目标字符。
修改后代码
def passwordOK(password: str):
    has_upper = False
    has_digit = False
    upper_list = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    digit_list = "1234567890"
    for char in password:
        if char in upper_list:
            has_upper = True
        if char in digit_list:
            has_digit = True
    return has_upper and has_digit

print(passwordOK(password='roskaisHsodihf'))
修改说明
  • 新增两个布尔标记位分别记录字符串中是否出现过大写字母、数字,遍历过程中只要匹配到对应字符就更新标记位状态
  • 移除循环内的return语句,等整个字符串遍历完成后,再返回两个标记位的与运算结果,只有同时存在大写字母和数字时才会返回True
  • 全程未导入任何第三方模块,仅使用基础的遍历和布尔运算实现,符合要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:15:00