Files

79 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Day_9 · 模块与猜数字小游戏(综合复习)
> 预计耗时:25~30 分钟
> Python 有很多现成的"工具包"叫**模块**(module),`import` 就能用。
> 今天用随机数模块写个小游戏,顺便把 input / if / while 全部串起来复习一遍。
## 今日知识点
- `import random`:随机数模块,`random.randint(1, 10)` 生成 1~10 的随机整数
- `import time`:时间模块,`time.time()` 拿当前时间(秒)
- 为什么要模块:别人写好、你直接用,就像 Django 也是别人写好给你用的"大模块"
## 先学(教程)
- 菜鸟教程("模块"一节,看 import 怎么用即可):https://www.runoob.com/python3/python3-module.html
- B站黑马教程(看讲"模块、random"的几集):https://www.bilibili.com/video/BV1qW4y1a7fU/
## 任务(后做)
新建 `day9.py`,写一个**猜数字游戏**:
```python
import random
target = random.randint(1, 10) # 电脑随机想一个 1~10 的数
print("我想到一个 1~10 之间的数,你猜猜看!")
while True:
guess = int(input("你的猜测:"))
if guess == target:
print("猜对啦!")
break # 猜对就结束
elif guess < target:
print("小了,再大点")
else:
print("大了,再小点")
```
测试:多玩几局,确认"大了/小了/猜对"三种反馈都正常。
**进阶(加分)**:
1. 用 `import time` 记录"猜了几秒":游戏开始记一次 `time.time()`,结束再记一次,两者相减就是秒数,游戏结束时打印。
2. 限制最多猜 5 次,超过就打印"机会用完了,答案是 X"并结束(提示:用 `for` 代替 `while True`,或者加一个计数变量 + `break`)。
## 完成标准
- [ ] 游戏能正常玩完一整局
- [ ] 能说出 `import random` 是干什么的
- [ ] (进阶)能统计用时 或 限制次数(二选一即可)
**提交方式**:把 `day9.py` 代码贴在当日工单评论里。
## 参考解答(先做再看)
```python
import random
import time
start = time.time()
target = random.randint(1, 10)
print("我想到一个 1~10 之间的数,你猜猜看!")
for i in range(5): # 进阶 2:最多 5 次
guess = int(input("你的猜测:"))
if guess == target:
print("猜对啦!")
break
elif guess < target:
print("小了,再大点")
else:
print("大了,再小点")
else: # for 正常结束(没 break)才执行
print(f"机会用完了,答案是{target}")
end = time.time()
print(f"用时{end - start:.1f}秒") # 进阶 1:统计用时
```