Python实战案例:逢7过
“逢 7 过” 是一款简单易上手、适合多人参与的酒桌小游戏,主要通过报数规则增加互动和趣味性,尤其适合朋友聚会、聚餐时活跃气氛。
接下来,咱就通过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过"小游戏,执行流程可以分为以下几个主要阶段:
game_start = 1
print('''
欢迎来到逢7过小游戏...
''')
game_start
为1(表示运行状态, 等价于game_start = True
)while game_start:
# 输入处理模块
# 游戏逻辑模块
# 续玩控制模块
while game_start
控制整个游戏流程game_start
为1,游戏就会持续循环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('错误:请检查输入的内容后重试')
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_num
到end_num
的整数列表~~~~~~~~过~~~~~~~~
,增强视觉效果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 中一些基础知识的运用。例如:
game_start
变量控制程序流程(布尔逻辑的数字实现)start_num = int(start)
)if-else
结构(输入验证、逢7判断)or
的实际应用('7' in str(i) or i % 7 == 0
)while
循环的持续条件控制(游戏主循环、输入验证循环)break
和continue
语句的使用(终止/跳过当前循环)f"{'过':~^10}"
)最后,还有一点需要说明:
在实际编程中,我们永远不要寄希望于用户按照规则输入正确内容,而是要设置合理的输入验证逻辑,确保我们提取到的数据的合法性,从而保证程序能够稳定运行。