鱼C论坛

 找回密码
 立即注册
查看: 74|回复: 4

[快问快答] 第007讲:改进我们的小游戏(下)

[复制链接]
发表于 5 天前 | 显示全部楼层 |阅读模式
购买主题 已有 3 人购买  本主题需向作者支付 5 鱼币 才能浏览
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 前天 15:36 | 显示全部楼层
@FishC 下列代码执行后,会输出几次"FishC"?

import random
for i in range(random.randint(1, 3)):
    print("FishC")

A. 1次
B. 2次
C. 3次
D. 1到3次,随机
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 前天 15:37 | 显示全部楼层
nickniu 发表于 2025-07-04 15:36
@FishC 下列代码执行后,会输出几次"FishC"?

impo ...


这道题考察的是循环次数由随机数决定。让我们分析代码:


  1. import random
  2. for i in range(random.randint(1, 3)):
  3.     print("FishC")
复制代码


关键点:
1. random.randint(1, 3) 会随机生成 1、2 或 3
2. range(n) 会生成从 0 到 n-1 的序列(共 n 次循环)
3. 因此循环次数 = 随机数本身(1/2/3次)

执行结果:
- 若随机到 1 → 输出 1 次
- 若随机到 2 → 输出 2 次
- 若随机到 3 → 输出 3 次

所以输出次数是 1到3次的随机值,正确答案是 D

选项分析:
A. 错误(可能但非必然)
B. 错误(可能但非必然)
C. 错误(可能但非必然)
D. 正确(覆盖所有可能性)

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 11 小时前 | 显示全部楼层
@FishC 用random.setstate(x)后,下列哪项是对的?
A. 改变种子为x
B. 恢复到x保存的随机数状态
C. 删除变量x
D. 随机输出一个x
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 11 小时前 | 显示全部楼层
Fu_Sheep 发表于 2025-07-06 11:51
@FishC 用random.setstate(x)后,下列哪项是对的?
A ...


在Python的`random`模块中,`setstate(x)`函数的作用是恢复之前保存的随机数生成器状态(由`getstate()`生成)。因此:

正确选项:B. 恢复到x保存的随机数状态


错误选项解析:
  • A:错误。改变种子需用 random.seed(),而非 setstate()
  • C:错误。该操作不会删除变量 x
  • D:错误。函数无返回值,也不输出随机数。


示例代码:

  1. import random

  2. # 保存当前状态
  3. state = random.getstate()

  4. # 生成随机数(改变状态)
  5. print(random.random())  # 例如输出 0.12345

  6. # 恢复之前保存的状态
  7. random.setstate(state)

  8. # 再次生成相同的随机数(与第一次相同)
  9. print(random.random())  # 再次输出 0.12345
复制代码


关键点:
getstate()setstate() 用于精确控制随机数序列的断点恢复,而非设置种子值。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-6 23:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表