当前位置: 首页 > news >正文

[Python 基础课程]猜数字游戏

以下是用 Python 写一个经典「猜数字游戏」的完整教学示例,适合 Python 基础课程使用。

我们会从最简单版本开始,一步一步增加功能,最后给出几个进阶练习方向。

版本 1:最基础版(适合第 1~2 次课)

# 猜数字游戏 - 版本1importrandom# 电脑随机生成一个 1~100 的数字secret_number=random.randint(1,100)guess_count=0print("欢迎来到猜数字游戏!")print("我已经想好了一个 1 到 100 之间的整数,你来猜猜看~")whileTrue:# 获取玩家输入guess=input("请输入你猜的数字:")# 输入检查:必须是数字ifnotguess.isdigit():print("请输入正确的数字哦~")continueguess=int(guess)guess_count+=1ifguess==secret_number:print(f"恭喜你!猜对了~ 就是{secret_number}")print(f"你一共猜了{guess_count}次")breakelifguess<secret_number:print("太小了,再大一点~")else:print("太大了,再小一点~")

特点

  • 使用 while True 无限循环
  • 基本的输入验证
  • 简单的比较逻辑
  • 记录猜测次数

版本 2:增加难度选择 & 猜测次数限制(适合第 3~5 次课)

# 猜数字游戏 - 版本2(难度选择 + 次数限制)importrandomprint("=== 猜数字游戏 ===")print("请选择难度:")print("1. 简单 (1~50,10次机会)")print("2. 普通 (1~100,8次机会)")print("3. 困难 (1~200,6次机会)")whileTrue:level=input("请输入难度编号 (1/2/3):")iflevelin['1','2','3']:level=int(level)breakprint("请输入 1、2 或 3")iflevel==1:max_num=50max_attempts=10eliflevel==2:max_num=100max_attempts=8else:max_num=200max_attempts=6secret_number=random.randint(1,max_num)attempts_left=max_attemptsprint(f"\n游戏开始!我已经想好了一个 1 到{max_num}的数字")print(f"你一共有{max_attempts}次机会\n")whileattempts_left>0:guess=input(f"剩余{attempts_left}次机会,请输入数字:")ifnotguess.isdigit():print("请输入数字!")continueguess=int(guess)ifguess==secret_number:print(f"\n太棒了!猜对了~ 就是{secret_number}")print(f"你用了{max_attempts-attempts_left+1}次机会")breakelifguess<secret_number:print("太小了!")else:print("太大了!")attempts_left-=1ifattempts_left==0:print(f"\n游戏结束!正确答案是:{secret_number}")

新增内容

  • 难度选择(用 if-elif)
  • 次数限制机制
  • 剩余次数提示
  • 游戏结束两种情况的处理

版本 3:更完整的版本(加入重玩功能、历史记录)

# 猜数字游戏 - 版本3(可重玩 + 历史最佳)importrandomimporttimedefplay_game():print("\n"+"="*40)print(" 猜数字游戏 - 开始新一轮!")print("="*40)level=input("选择难度 (1:简单 2:普通 3:困难):")iflevel=='1':max_n,max_t=50,10eliflevel=='2':max_n,max_t=100,8else:max_n,max_t=200,6secret=random.randint(1,max_n)attempts=0start_time=time.time()print(f"\n已生成 1~{max_n}的数字,你有{max_t}次机会")whileattempts<max_t:try:guess=int(input(f"第{attempts+1}次猜测:"))exceptValueError:print("请输入整数!")continueattempts+=1ifguess==secret:used_time=round(time.time()-start_time,2)print(f"\n★ 恭喜!猜对了!就是{secret}")print(f"用时{used_time}秒,共{attempts}次猜测")returnattempts,used_timeelifguess<secret:print("太小了 ↑")else:print("太大了 ↓")print(f"\n很遗憾,次数用完。正确答案是:{secret}")returnNone,None# 主程序 - 支持多轮游戏best_attempts=float('inf')best_time=float('inf')whileTrue:attempts,used_time=play_game()ifattemptsisnotNone:ifattempts<best_attempts:best_attempts=attempts best_time=used_timeprint("→ 新纪录!")elifattempts==best_attemptsandused_time<best_time:best_time=used_timeprint("→ 用时新纪录!")print(f"\n当前最佳:{best_attempts}次,{best_time:.2f}秒")again=input("\n再玩一次?(y/n):").lower()ifagain!='y':print("感谢游玩!再见~")break

进阶练习方向(可作为课后作业)

  1. 加入「提示剩余次数」颜色(使用 termcolor 或 colorama 库)
  2. 记录所有玩家的历史成绩到文件(json 或 txt)
  3. 增加「提示功能」:每猜 3 次可使用一次「大了/小了」提示
  4. 加入「排行榜」功能(前五名)
  5. 做成图形界面版本(使用 tkinter 或 pygame)
  6. 增加「自定义范围」功能(玩家自己输入最小最大值)

你现在想直接运行哪个版本?
或者你希望我帮你把某个版本改成图形界面(tkinter)版本?
也可以告诉我你的教学进度/学生水平,我可以调整难度和讲解重点。

http://www.jsqmd.com/news/405984/

相关文章:

  • 深入理解三种PEFT方法:LoRA的低秩更新、QLoRA的4位量化与DoRA的幅度-方向分解
  • 2026年3月GEO系统优化推广评测推荐:五强对比与中立对比助决策 - 深圳昊客网络
  • 【Kafka进阶篇】Kafka消息重复消费?Exactly-Once语义落地指南,PID+事务消息吃透
  • 2026春节冲突 - 枝-致
  • 读《下一个倒下的会不会是华为》
  • 以太坊节点存储与共识机制全解析 - 若
  • 大模型重塑垂直软件行业(非常详细),商业护城河演变逻辑从入门到精通,收藏这一篇就够了!
  • MinerU高精度文档提取实战(非常详细),大模型数据基础设施构建从入门到精通,收藏这一篇就够了!
  • 10个用户体验研究工具,提示工程架构师优化提示设计效率提升300%
  • 突破传统RAG瓶颈实战(非常详细),A-RAG自主掌控检索从入门到精通,收藏这一篇就够了!
  • 202506读书笔记|《住在西雅图,我守着寂寞的湖》——我爱我所没有的,穿越海洋永无停息
  • 独立站新老品牌词交接 SOP 和 闷声发大财 的案例
  • HarmonyOS应用开发实战(基础篇)Day11 -《组件复用》
  • 龙8+直接下放,荣耀X60GT成千元档真全能
  • 中望3D2026 曲面和实体缝合
  • 大数据OLAP中的维度建模方法论
  • HarmonyOS应用开发实战(基础篇)Day10 -《鸿蒙网络请求实战》
  • GDPR vs 大数据:隐私保护与数据价值的平衡之道
  • 大模型技术学习「最简必学路线」(7天),非常详细收藏我这一篇就够了
  • 荣耀Magic8 RSR保时捷设计首发CIPA 6.5级防抖
  • 制造业RAG:如何打造靠谱知识系统,让工程师不再“被坑”?(收藏版)
  • AI应用架构师实战:用自动化编程助手搭建高并发AI接口服务,附压测数据!
  • python与人工智能代码基础
  • 收藏这份STELLA自进化LLM智能体指南,轻松入门大模型生物医学研究[特殊字符]
  • 2026年AI大模型应用开发保姆级教程:从入门到精通,这一篇开始
  • GPU显存不足?AI架构师的8个优化技巧,让大模型运行更顺畅
  • 怎样用IDEA上传代码到gitee(码云)?-比较详细
  • 基于SpringBoot+Vue的二手数码产品回收与交易平台设计与实现
  • 让普通人轻松学会AI大模型的5个技巧:从入门到精通的实用指南
  • [SAP] SAP MM模块学习路径