目标是创建一个具有随机函数的变量,其中变量随着它运行的每个循环而变化。
我用随机函数创建了变量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.
在第一个代码段中,您创建一个随机数一次,然后在循环中多次打印相同的随机数。
在第二个代码段中,您将在循环的每次迭代中创建一个随机数,从而使它(很可能(每次都是唯一的。
将第一个场景视为:
- 掷骰子
- 说"是(数字(!">
- 说"是(数字(!">
- 说"是(数字(!">
第二种情况是这样的:
- 掷骰子
- 说"是(数字(!">
- 重新轧制模具
- 说"是(数字(!">
- 重新轧制模具
- 说"是(数字(!">
您必须使用第二种方法每次都获取不同的数字。
当您在循环外部初步定义age
时,变量age
被分配由随机函数返回的 VALUE。由于您不会在循环的每次迭代中重新定义其值,因此其值将保持不变,因此它使用相同的值进行循环。
但是,一旦语句进入 for
循环,每次循环迭代时,变量都会分配给随机函数的(新(值,这意味着变量的值在循环的每次迭代中都会更改。