python - 为什么需要在循环内创建可变随机函数才能正常工作?

标签 python python-3.x

目标是创建一个带有随机函数的变量,其中变量会随着运行的每个循环而变化。

我使用随机函数创建了变量age。当我通过多个循环运行它时,它没有给我多个随机数,而是只给了我一个随机数并循环它。

我已经解决了这个问题,但我想了解为什么需要在 for 循环中使用随机函数创建变量才能使其工作。

import random

people = ['eddie', 'irina', 'eric']

random.shuffle(people)

age = random.randrange(1, 120)

for person in people:
    print(person.title() + " is " + str(age) + " years old.)

>>Irina is 32 years old.
>>Eric is 32 years old. 
>>Eddie is 32 years old.
<小时/>
import random

people = ['eddie', 'irina', 'eric']

random.shuffle(people)

for person in people:

    age = random.randrange(1, 120)

    print(person.title() + " is " + str(age) + " years old.)

>>Irina is 24 years old.
>>Eric is 10 years old. 
>>Eddie is 80 years old.

最佳答案

在第一个代码片段中,您将创建一次随机数,然后在循环中多次打印相同的随机数。

在第二个片段中,您在循环的每次迭代中创建一个随机数,从而使其(很可能)每次都是唯一的。

将第一个场景想象为:

  1. 掷骰子
  2. 说“这是(数字)!”
  3. 说“这是(数字)!”
  4. 说“这是(数字)!”

第二种情况是这样的:

  1. 掷骰子
  2. 说“这是(数字)!”
  3. 重新掷骰子
  4. 说“这是(数字)!”
  5. 重新掷骰子
  6. 说“这是(数字)!”

您必须使用第二种方法每次都获得不同的数字。

关于python - 为什么需要在循环内创建可变随机函数才能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57136387/

相关文章:

python-3.x - 使用 Pandas 查找行中的最大值并用该列名称填充新列?

python-3.x - 如何查找不在另一个列表中的列表项?

python - breakpoint() 默认使用ipdb

python - 操作系统错误: [Errno 0] Error in httplib2 request

python - pandas DataFrame.replace 函数因日期时间而损坏

python - 为什么 QPropertyAnimation 动画不起作用?

python-3.x - 尝试获取二叉树中的最后一个节点

python - 使用python对地理定位的、不规则间隔的经度/纬度网格执行双线性插值的最快方法?

Python连续解析控制台输入

python - 计算宏观/微观平均值