Day_9 · 模块与猜数字小游戏(综合复习) #10

Open
opened 2026-08-22 17:26:36 +08:00 by shimmer · 33 comments
Owner

题目与教程详见仓库对应目录 Day_9/README.md(本仓库已克隆即得)。

预计耗时:25~30 分钟
Python 有很多现成的"工具包"叫模块(module),import 就能用。
今天用随机数模块写个小游戏,顺便把 input / if / while 全部串起来复习一遍。

今日知识点

  • import random:随机数模块,random.randint(1, 10) 生成 1~10 的随机整数
  • import time:时间模块,time.time() 拿当前时间(秒)
  • 为什么要模块:别人写好、你直接用,就像 Django 也是别人写好给你用的"大模块"

先学(教程)

任务(后做)

新建 day9.py,写一个猜数字游戏:

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 代码贴在当日工单评论里。

参考解答(先做再看)

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:统计用时
> 题目与教程详见仓库对应目录 Day_9/README.md(本仓库已克隆即得)。 > 预计耗时: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:统计用时 ```
image.png
<img width="1128" alt="image.png" src="attachments/e6af725c-4b66-4fa4-8d57-77902da8ee7c">
161 KiB

image.png

![image.png](/attachments/cfeeee57-0bfa-489c-af45-a2855aad66be)
110 KiB

image.png

![image.png](/attachments/c3645dea-c843-4965-8540-1f99a184fdf3)
188 KiB
![image.png](/attachments/15c8006a-15da-44e7-9bfc-920db096e5dd) https://github.com/wyn-netizen/hello-daily-challenge
237 KiB
image.png
<img width="364" alt="image.png" src="attachments/245fcdad-1729-49a6-a3e7-0fdff4a28bc8">

image.pngimage.png

<img width="863" alt="image.png" src="attachments/33023dff-f8c7-4e23-8d3a-7d0513e23dcc"><img width="926" alt="image.png" src="attachments/c223223a-ee43-4963-8df2-760e5b065106">
image.png
<img width="785" alt="image.png" src="attachments/e711001e-bba6-451b-acbf-b9ad5d42e686">
270 KiB
be3a02d9865688fa7c53d6f04e47bc24.png
<img width="815" alt="be3a02d9865688fa7c53d6f04e47bc24.png" src="attachments/f311466b-0b31-4060-8e40-6cccce65b46d">
{CE240541-E27D-4F18-8D8D-51E35296C829}.png
<img width="1037" alt="{CE240541-E27D-4F18-8D8D-51E35296C829}.png" src="attachments/ee88dcc8-a8be-4e1b-9df1-9265c9e9b5d2">
屏幕截图 2026-09-18 121036.png
<img width="1439" alt="屏幕截图 2026-09-18 121036.png" src="attachments/c1b4bd43-2c23-456b-bb86-c80684679294">

QQ_1789862733671.png

![QQ_1789862733671.png](/attachments/8d4a4fd4-d901-4503-b4f7-0b7fb5335e5d)
image.png
<img width="965" alt="image.png" src="attachments/aa8bd7f3-5159-4222-af65-bfda00f4edbd">
213 KiB

屏幕截图 2026-09-20 095111.png屏幕截图 2026-09-20 100223.png

<img width="1279" alt="屏幕截图 2026-09-20 095111.png" src="attachments/6f9dad2f-212d-4958-9761-f50780167036"><img width="1279" alt="屏幕截图 2026-09-20 100223.png" src="attachments/2a348963-f1d8-40fd-bd74-fe84f0a66a6b">
image.png
<img width="1602" alt="image.png" src="attachments/049110b9-bb54-4b5e-a3b9-700546b61dbe">
214 KiB
image.png
<img width="835" alt="image.png" src="attachments/841d9a62-2266-49ec-b545-42b24f61d0b8">
170 KiB

image.png

import random
from time import time as now


target = random.randint(1, 10)
print("我想到一个 1~10 之间的数,你猜猜看!")

for i in range(5):
    if i == 0:
        start = now()
        # Python 的 for, while, if 并不创建新的作用域
    guess = int(input("你的猜测:"))
    if guess == target:
        print("猜对啦!")
        break
    elif guess < target:
        print("小了,再大点")
    else:
        print("大了,再小点")
    if i == 4:
        print(f"机会用完了,答案是 {target}")
        break

end = now()
print(f"你一共用了 {end - start:.2f} 秒")
![image.png](/attachments/76fc804a-eb7e-416a-9bd1-b8b8777e174e) ```python import random from time import time as now target = random.randint(1, 10) print("我想到一个 1~10 之间的数,你猜猜看!") for i in range(5): if i == 0: start = now() # Python 的 for, while, if 并不创建新的作用域 guess = int(input("你的猜测:")) if guess == target: print("猜对啦!") break elif guess < target: print("小了,再大点") else: print("大了,再小点") if i == 4: print(f"机会用完了,答案是 {target}") break end = now() print(f"你一共用了 {end - start:.2f} 秒") ```
241 KiB

image.pngimage.png

<img width="361" alt="image.png" src="attachments/3ddc736c-514d-4d61-821a-7c1c4cab6da0"><img width="350" alt="image.png" src="attachments/c2ffa864-2531-4189-abe7-b21c54658093">
140 KiB
182 KiB

以我99血,祈与99恋,第九天

以我99血,祈与99恋,第九天

image.png

![image.png](/attachments/97eff5cf-50cd-4e5c-adb5-6ba908d2a2ee)
107 KiB

image.png

![image.png](/attachments/11e232c7-1ddd-4fd9-b81f-52a8001309ea)
287 KiB
image.png
<img width="1152" alt="image.png" src="attachments/ed4a9b80-a0ec-4bbd-954e-74ff4764abab">
234 KiB

image.png

![image.png](/attachments/b50cf0a6-2bb1-4c88-bc8b-f1dab680960e)
586 KiB

image.png

![image.png](/attachments/d1d6a7af-0f26-4d02-9130-b7975d9ca1d4)
200 KiB

`import random
import time
t1=time.time()
target=random.randint(1,10)
print("我想到一个1到10的数")

while True:
guess=int(input("你的猜测:"))
if guess==target:
print("Bingo")
t2=time.time()
print(t2-t1)
break
elif target>guess:
print("小了")
else:
print("大了")`

`import random import time t1=time.time() target=random.randint(1,10) print("我想到一个1到10的数") while True: guess=int(input("你的猜测:")) if guess==target: print("Bingo") t2=time.time() print(t2-t1) break elif target>guess: print("小了") else: print("大了")`
image.png
<img width="1280" alt="image.png" src="attachments/e01daea4-c987-41ce-886c-b8daa761b30d">
352 KiB

Day_9 · 模块 + 猜数字小游戏(random + while True)

day9.png

Day_9 · 模块 + 猜数字小游戏(random + while True) ![day9.png](https://cdn.jsdelivr.net/gh/xu675693517-hue/hello-daily-challenge@main/screenshots/day9.png)
Sign in to join this conversation.