☰
简单猜数字游戏代码解析
2026/10/8 13:34:48 网站建设 项目流程

第1题 · 猜数字游戏(第2~12行)

- `play()` 连玩 3 局,`t` 累计总局数。
- 每局`a` 是 1~100 的随机答案,`n` 是本局猜测次数。
- `try/except` 捕获非整数输入;`if not 1<=g<=100` 校验范围,都要求重新输入。
- 每猜一次`n+=1` ,用三元表达式一行输出"大了/小了/猜中"。
- 猜中后把`n` 加进`t` 并`break` ,最后打印 3 局平均次数。
第2题 · 两种策略对比(第13~16行 + 主程序)

- `lin` (顺序策略):从 1 往上猜,次数恰好等于答案本身,所以`lambda a:a` 。
- `bin_` (二分策略):用`lo/hi` 维护区间,每次取中点`m` ,根据大小砍掉一半区间,`c` 计数。`while m:=(lo+hi)//2` 用海象运算符一边算中点一边循环。
- 主程序里`A` 是 1000 个随机答案:顺序平均=`sum(A)/1000` 、最多=`max(A)` ;二分用`map(bin_,A)` 逐个计算后取平均和最大。
第3题 · 蒙特卡洛求 π(第17行 + 主程序)

- `pi` 是 lambda:生成 N 个`[0,1)` 的点(第一象限),统计落在单位圆内(`x²+y²≤1` )的点数`M` ,则`π≈4M/N` (四分之一圆面积 ×4)。
- 主程序对 N=1万/10万/100万 各跑 5 次,打印与 3.14159 的平均误差——可观察到 N 增大 10 倍,误差约减为 1/√10。

核心技巧 :用`;` 合并简单语句、用三元表达式替代 if/else、用海象运算符`:=` 在条件里赋值、用`lambda` 和`sum(生成器)` 把循环压成一行——功能与原代码完全等价

本人是新手已经查找大量资料完成的猜数字小游戏,如果还有错的地方希望各位网友指出,谢谢大家观看,希望可以帮助到像我一样的新手小白。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询