You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Python的random.randint在for循环中没有重新生成新随机数

问题原因分析
  • 你当前贴出的这段代码本身逻辑没问题,确实会在每次循环迭代时生成新的随机a、b。首先可以确定你实际运行的代码和你贴出的代码不是同一份:你贴的代码里input函数返回的是字符串类型,和整数类型的a*b做相等判断永远返回False,不可能出现你运行结果里的Well done提示。
  • 如果你实际运行时每次循环a、b都不变,最常见的是两个错误:
    1. 你把a = random.randint(1,12)、b = random.randint(1,12)两行写在了for循环外面,只会在循环启动前生成一次随机值,后续所有循环都复用同一个结果
    2. 你在代码中设置了固定的随机数种子,且每次调用randint前都重新设置了相同的种子,会导致每次生成的随机值完全一致
  • 你贴出的代码本身还存在逻辑缺陷:需要把输入内容转为整数后再和乘法结果比较,修改方式为将answer = input(question)改为answer = int(input(question)),否则就算用户输入了正确的数字,也会被判定为错误。

内容的提问来源于stack exchange,提问作者Will Simpson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 10:27:00