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

2024-06-01 19:44:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我们的目标是创建一个带有随机函数的变量,其中变量在每个循环中都会发生变化。你知道吗

我用随机函数创建了变量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.

Tags: 函数importforageisrandompeopleold
2条回答

当您最初在循环外定义age时,变量age被赋值,该值由随机函数返回。由于在循环的每次迭代中都没有重新定义它的值,所以它的值将保持不变,因此它为什么循环使用相同的值。你知道吗

但是,一旦语句在for循环中,每次循环迭代时都会将变量赋值给随机函数的(新)值,这意味着变量的值在循环的每次迭代时都会发生变化。你知道吗

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

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

第一种情况是这样的:

  1. 滚模
  2. 说“这是(数字)!”你知道吗
  3. 说“这是(数字)!”你知道吗
  4. 说“这是(数字)!”你知道吗

第二种情况是:

  1. 滚模
  2. 说“这是(数字)!”你知道吗
  3. 重滚模具
  4. 说“这是(数字)!”你知道吗
  5. 重滚模具
  6. 说“这是(数字)!”你知道吗

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

相关问题 更多 >