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

CS50 Python课程:Vanity车牌验证代码逻辑及首数字非0规则咨询

Vanity车牌验证:for循环逻辑分析

核心规则回顾

  • 数字仅允许出现在车牌末尾,出现数字后不能再出现字母
  • 第一个出现的数字不能是0

针对「检测第一个数字是否为0」的循环逻辑验证

假设你的循环是类似这样的常见写法:

def is_valid_plate(plate):
    # 可先补充长度、首字符为字母等基础校验
    found_digit = False
    for char in plate:
        if char.isdigit():
            if not found_digit:
                # 首次遇到数字,检查是否为0
                if char == '0':
                    return False
                found_digit = True
        else:
            # 若已出现过数字,再碰到字母则违反规则
            if found_digit:
                return False
    return True

逻辑正确性分析

  • 遍历字符时,首次遇到数字就判断是否为0,是则直接返回False,符合「第一个数字不能为0」的要求;确认非0后标记found_digit,后续不再校验数字开头问题
  • 若遇到字母时已经标记过found_digit,说明数字后出现了字母,直接返回False,满足「数字只能在末尾」的规则
  • 整个循环同时覆盖了两个核心规则,逻辑是闭环的

常见遗漏点提醒

  • 如果你的循环只单独校验「第一个数字是否为0」,没处理「数字后不能有字母」的情况,逻辑是不完整的,必须把两个规则在同一循环内处理
  • 别忘了补充CS50题目里的其他基础规则,比如车牌长度需在2-6字符之间、首字符必须为字母等

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 11:12:45