为什么需要在循环中创建变量随机函数才能正常工作



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

我用随机函数创建了变量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. 说"是(数字(!">

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

当您在循环外部初步定义age时,变量age被分配由随机函数返回的 VALUE。由于您不会在循环的每次迭代中重新定义其值,因此其值将保持不变,因此它使用相同的值进行循环。

但是,一旦语句进入 for 循环,每次循环迭代时,变量都会分配给随机函数的(新(值,这意味着变量的值在循环的每次迭代中都会更改。

最新更新