【问题标题】:How to make a randomly generated Python Variable from a list and keep its value across functions [duplicate]如何从列表中随机生成 Python 变量并在函数之间保持其值 [重复]
【发布时间】:2020-04-07 17:38:39
【问题描述】:

我有一个函数test1(),在这个函数中,有一个变量w,它是从l 列表中随机生成的元素。我想在另一个函数test2 中使用w 的值,但保留它在test1 中生成的值。我当前的代码是:

import random
def test1 ():
    l = [1,2,3]
    w = random.choice(l)
    print(w)


def test2 ():
    w = test1()
    print(w)


test1()
test2()

使用当前代码,我得到变量 w 的两个不同值,我希望它的值随机生成一次,然后能够在不同的函数中使用该值。

【问题讨论】:

  • 请重复使用功能的说明材料。请特别注意返回值的方式。

标签: python list function random


【解决方案1】:

Test1 不返回任何内容,您必须返回 w,如果您希望始终保持相同的值,您可以设置种子:

import random
random.seed(42)
def test1 ():
    l = [1,2,3]
    w = random.choice(l)
    print(w)
    return w


def test2 ():
    w = test1()
    print(w)


test1()
test2()

【讨论】:

  • 谢谢,您介意解释一下种子的工作原理吗?
  • 这里是一个解释:pynative.com/python-random-seed
  • 还有一个问题,这个方法每次生成相同的数字,但说我每次都想要一个不同的数字,但我希望它在用于不同功能时保持不变。例如,w 取值为 2,现在当我使用 w 时,它的值为 2。如果我再次运行它,w 可能是 1,所以当我在这种情况下使用 w 时,它仍然为 1。希望这是有道理的。
  • 不,因为您使用的是随机包,所以不能这样做。如果你想你必须生成一个随机值的列表并每次传递给列表的另一个值但是如果你想你必须问另一个问题
  • 你能给我看一个简单的例子吗?
猜你喜欢
  • 2014-04-17
  • 1970-01-01
  • 2023-04-01
  • 2017-09-18
  • 1970-01-01
  • 2016-06-11
  • 2014-03-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多