Python实战案例:逢7过

Python实战案例:逢7过🎮



一、案例背景

“逢 7 过” 是一款简单易上手、适合多人参与的酒桌小游戏,主要通过报数规则增加互动和趣味性,尤其适合朋友聚会、聚餐时活跃气氛。

游戏规则

  1. 参与人数:2人以上,无固定上限,轮流进行。
  2. 报数范围:通常从1开始,按顺序依次报数(也可自定义起始数,如从任意数字开始递增)。
  3. “过”的条件(满足以下任意一条即喊“过”):
    • 7的倍数:如7、14、21、28……
    • 包含数字7:如7、17、27、70、71……
  4. 违规惩罚:若玩家报数时遇到符合条件的数字却未喊“过”,或错误喊“过”(即不符合条件却喊“过”),则接受惩罚(如喝酒、表演节目等)。

接下来,咱就通过Python代码,运用已学习知识,模拟实现它。


二、代码实现

# 小游戏:逢7过

# 游戏主循环控制开关(1:运行 0:关闭)
game_start = 1

# 打印游戏欢迎信息和规则说明
print('''
欢迎来到逢7过小游戏\n
游戏规则:
1. 输入开始和结束的正整数
2. 打印出这个范围内的数字
3. 逢7过:如果数字中有7或者是7的倍数,则打印"过"
4. 继续游戏:询问是否继续,输入Y或N
5. 输入Y继续游戏,输入N退出游戏
''')

# 主游戏循环 - 控制整个游戏流程的执行与退出
while game_start:
    # ------- 输入处理模块 -------
    # 验证并获取有效的游戏范围(开始和结束正整数)
    while True:
        # 处理开始数字输入 - 确保输入为合法正整数
        start = input('请输入开始正整数: ')
        if not start.strip().isdigit():
            print('输入内容有误')
            continue

        # 处理结束数字输入 - 使用嵌套循环确保输入合法性
        while True:
            end = input('请输入结束正整数: ')
            if end.strip().isdigit():
                break
            print('输入内容有误')

        # 转换为整数并验证范围
        start_num = int(start)
        end_num = int(end)
        # 检查范围有效性:结束数>开始数>0
        if end_num > start_num > 0:
            print(f"游戏开始:{start_num}-{end_num}")
            break
        else:
            print('错误:请检查输入的内容后重试')
            print('提示:结束数字应大于开始数字且大于0')

    # ------- 游戏逻辑模块 -------
    # 生成游戏范围的数字列表并处理"逢7过"逻辑
    list_1 = list(range(start_num, end_num + 1))
    # 遍历范围内的每个数字
    for i in list_1:
        # 判断是否满足"逢7过"条件:含7或为7的倍数
        if '7' in str(i) or i % 7 == 0:
            # 使用波浪线居中对齐输出"过",增强视觉效果
            print(f"{'过':~^10}")
        else:
            # 普通数字直接输出
            print(i)

    # ------- 续玩控制模块 -------
    # 处理游戏结束后的用户选择(继续/退出)
    while True:
        continue_game = input('是否继续?(Y/N)').strip().lower()
        if continue_game == 'y':
            print('游戏继续')
            break
        elif continue_game == 'n':
            # 设置循环控制标志为0,终止主游戏循环
            game_start = 0
            print('游戏退出')
            break
        else:
            print('指令无法识别,请重新输入')


三、执行过程

以上代码通过我们所学Python基础知识模拟实现了"逢7过"小游戏,执行流程可以分为以下几个主要阶段:

3.1 初始化阶段

game_start = 1
print('''
欢迎来到逢7过小游戏...
''')
  • 设置游戏控制标志game_start为1(表示运行状态, 等价于game_start = True
  • 打印游戏欢迎信息和规则说明

3.2 主游戏循环

while game_start:
    # 输入处理模块
    # 游戏逻辑模块
    # 续玩控制模块
  • 使用while game_start控制整个游戏流程
  • 只要game_start为1,游戏就会持续循环

3.3 输入处理模块

while True:
    # 获取并验证开始数字
    start = input('请输入开始正整数: ')
    if not start.strip().isdigit():
        print('输入内容有误')
        continue
    
    # 获取并验证结束数字
    while True:
        end = input('请输入结束正整数: ')
        if end.strip().isdigit():
            break
        print('输入内容有误')
    
    # 验证范围有效性
    start_num = int(start)
    end_num = int(end)
    if end_num > start_num > 0:
        print(f"游戏开始:{start_num}-{end_num}")
        break
    else:
        print('错误:请检查输入的内容后重试')
  • 输入验证
    1. 开始数字必须为正整数
    2. 结束数字必须为正整数
    3. 结束数字必须大于开始数字
  • 嵌套循环:使用两层循环确保输入合法性
  • 错误处理:对不合法输入给出明确提示

3.4 游戏逻辑模块

list_1 = list(range(start_num, end_num + 1))
for i in list_1:
    if '7' in str(i) or i % 7 == 0:
        print(f"{'过':~^10}")
    else:
        print(i)
  • 生成数字列表:使用range函数生成从start_numend_num的整数列表
  • 核心逻辑:遍历每个数字,判断是否满足"逢7过"条件:
    • 数字包含字符’7’(如17、70)
    • 数字是7的倍数(如7、14)
  • 格式化输出:满足条件时输出~~~~~~~~过~~~~~~~~,增强视觉效果

3.5 续玩控制模块

while True:
    continue_game = input('是否继续?(Y/N)').strip().lower()
    if continue_game == 'y':
        print('游戏继续')
        break
    elif continue_game == 'n':
        game_start = 0
        print('游戏退出')
        break
    else:
        print('指令无法识别,请重新输入')
  • 用户选择处理
    • 输入Y/y:继续游戏(回到主循环开头)
    • 输入N/n:设置game_start=0,退出主循环
    • 其他输入:提示错误并重新询问
  • 状态控制:通过修改game_start的值决定游戏是否继续

整体流程图

开始
│
├── 初始化游戏状态
│
└── 进入主循环
    │
    ├── 输入处理模块
    │   │
    │   ├── 获取并验证开始数字
    │   ├── 获取并验证结束数字
    │   └── 验证范围有效性
    │
    ├── 游戏逻辑模块
    │   │
    │   ├── 生成数字列表
    │   └── 遍历判断并输出结果
    │
    └── 续玩控制模块
        │
        ├── 获取用户选择
        ├── 判断是否继续
        │   │
        │   ├── 是 → 回到主循环开头
        │   └── 否 → 设置game_start=0
        │
        └── 退出主循环 → 结束游戏

四、案例总结

以上代码作为一个较为基础的实战案例,涵盖了 Python 中一些基础知识的运用。例如:

  1. 变量与数据类型
  • 使用game_start变量控制程序流程(布尔逻辑的数字实现)
  • 字符串、整数的转换与使用(如start_num = int(start)
  1. 条件判断
  • 多层嵌套的if-else结构(输入验证、逢7判断)
  • 逻辑运算符or的实际应用('7' in str(i) or i % 7 == 0
  1. 循环控制
  • while循环的持续条件控制(游戏主循环、输入验证循环)
  • breakcontinue语句的使用(终止/跳过当前循环)
  1. 格式化输出
  • f-string的应用(f"{'过':~^10}"
  • 字符串对齐与填充的实践
  1. 用户输入校验
  • 多层循环确保输入合法性(嵌套验证结构)
  • 对不合法输入给出明确提示

最后,还有一点需要说明:
在实际编程中,我们永远不要寄希望于用户按照规则输入正确内容,而是要设置合理的输入验证逻辑,确保我们提取到的数据的合法性,从而保证程序能够稳定运行。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值