Python循环语句加深练习:开发车牌选号系统(附详细代码解析)

目录

摘要

一、项目功能概述

二、代码分段解析

1. 初始化与全局变量

2. 主程序循环(核心交互逻辑) 

3. 功能1:生成车牌(while循环嵌套for循环) 

4. 功能2:选择车牌(for循环遍历列表) 

5. 退出与容错处理 

三、循环语句核心知识点

1. while循环

2. for循环

3. 循环控制

五、总结

下一步练习:


摘要

本文通过一个完整的车牌选号系统项目,结合while循环、for循环和条件判断,帮助初学者掌握循环语句的核心用法。代码包含车牌生成、分组选择、用户交互等逻辑,适合新手理解循环在实际开发中的应用场景。

一、项目功能概述

  1. 生成车牌:随机生成45个符合规则的车牌(格式:晋A● + 5位字母/数字)。

  2. 选择车牌:分三组展示车牌,用户依次选择,最终确定一个车牌。

  3. 退出系统:输入qQ退出程序。

二、代码分段解析

1. 初始化与全局变量

import random

# 固定前缀
car_first = "晋A●"
# 允许的字符列表(字母+数字)
character = "A B C D E F G H J K L M N P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0".split(" ")
# 存储生成的所有车牌
car_number_list = []
# 存储用户选择的候选车牌
select_car_number = []
  • character:通过split方法将字符串转为列表,包含所有可用字符。

  • 全局列表car_number_list保存生成的车牌,select_car_number保存用户选择的候选车牌。

2. 主程序循环(核心交互逻辑) 

while True:
    # 打印菜单
    print("*" * 50)
    print("<==========车牌选号系统===========>")
    print("1. 生成车牌")
    print("2. 选择号牌")
    print("q/Q 退出")
    print("*" * 50)
    
    # 用户输入选项
    car_number = input("请输入选项:")
  • while True:无限循环保持程序运行,直到用户选择退出。

  • 菜单打印:通过print输出可视化菜单,提升用户体验。

3. 功能1:生成车牌(while循环嵌套for循环) 

if car_number == "1":
    sum_1 = 0  # 计数器,确保生成45个车牌
    while sum_1 < 45:
        number_buf = ""  # 临时存储生成的车牌号
        # 生成5位随机字符
        for j in range(5):
            number_buf += random.choice(character)
        
        # 容错判断:车牌不能全为字母或全为数字
        if not number_buf.isalpha() and not number_buf.isdecimal():
            cal_num = 0  # 统计字母数量
            # 遍历字符,统计字母个数
            for char in number_buf:
                if char.isalpha():
                    cal_num += 1
                    # 如果字母数≥3,直接退出循环
                    if cal_num >= 3:
                        break
            # 若字母数≥3,将车牌添加到列表
            if cal_num >= 3:
                car_number_list.append(car_first + number_buf)
        # 更新计数器
        sum_1 = len(car_number_list)
    print("号牌已经生成完毕!!!")
  • while sum_1 < 45:确保生成45个有效车牌。

  • for j in range(5):生成5位随机字符。

  • for char in number_buf:遍历字符统计字母数量。

  • 关键逻辑:车牌必须包含至少3个字母,且不能全为字母或数字。

4. 功能2:选择车牌(for循环遍历列表) 

elif car_number == "2":
    # 将车牌分为三组
    select_number_list_1 = car_number_list[:15]
    select_number_list_2 = car_number_list[15:30]
    select_number_list_3 = car_number_list[30:]
    
    # 处理第一组选择
    for i in range(len(select_number_list_1)):
        print(f"序号{i+1}--{select_number_list_1[i]}")
    num_1 = input("请输入这一组你喜欢的号牌的序号")
    # 容错:检查输入是否为1-15的数字
    if num_1.isdecimal() and "1" <= num_1 <= "15":
        num_1 = int(num_1)
        car_number1 = select_number_list_1[num_1-1]
        select_car_number.append(car_number1)
    
    # 第二组、第三组代码类似(略)
    
    # 最终选择
    print("您选中的号码为:", select_car_number)
    # 用户从候选车牌中选择一个
    final_choice = int(input("请填写车牌序号:")) - 1
    print(f'恭喜您,最终选择的车牌为:{select_car_number[final_choice]}')
  • for i in range(len(...)):遍历列表打印车牌及其序号。

  • 输入校验:通过isdecimal()和范围检查确保输入合法。

  • 列表切片car_number_list[:15]将车牌分成三组。

5. 退出与容错处理 

elif car_number.lower() == "q":
    break  # 退出循环
else:
    print("无效指令,请输入正确的指令")

三、循环语句核心知识点

1. while循环

  • 作用:重复执行代码块,直到条件不满足。

  • 适用场景:不确定循环次数时(如用户反复操作菜单)。

  • 示例

while sum_1 < 45:
    # 生成车牌直到满足数量

2. for循环

  • 作用:遍历序列(如列表、字符串)中的每个元素。

  • 适用场景:已知循环次数或需要遍历数据时。

  • 示例

for j in range(5):
    # 生成5位字符

3. 循环控制

  • break:立即退出循环。

  • continue:跳过当前循环,进入下一次迭代。

五、总结

通过本项目,你学会了:

  1. while循环实现持续交互。

  2. for循环遍历数据与生成车牌。

  3. 条件判断与循环结合实现输入校验。

下一步练习

  • 尝试为系统添加“保存车牌到文件”功能。

  • 优化分组选择逻辑,减少重复代码。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

python_chai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值