【问题标题】:How to get last random int generated? [closed]如何获得最后一个随机 int 生成? [关闭]
【发布时间】:2019-10-20 12:02:08
【问题描述】:

我正在编写一些代码来查找伪随机数中的模式。我想打印这些数字,因为它们被添加到列表中。如何获得最后生成的“随机”整数?我将使用此值将其打印到控制台。 我浏览了文档,但在文档中找不到。

这是一些代码:

pseudo_random_list += str(random.randrange(0, 9))
# [Snippet to print last integer generated]

(pseudo_random_list 是一个字符串。)

我也不想创建临时变量。 (内存不是无限的)

【问题讨论】:

  • “最后”生成的 int 是什么意思?你需要更具体。
  • 如果要将它们添加到列表中,只需查看列表中的最后一项 -- someList[-1]
  • 不支持。您必须以变量、列表或类似的形式记住它。
  • last generated int 是在当前步骤之前的那个还是真正的last一个?
  • 分歧:IMO pseudo_random_list 是一个非常容易误导 string 对象的变量名...

标签: python python-3.x random


【解决方案1】:

只需将整数分配给变量:

num = random.randint(1,5)

print(num)  # First time

print(num)  # Print again, to verify it doesn't change

它保持不变:

4
4

在循环中使用 this 的示例:

while True:
    num = random.randint(1,5)

    print(num)

    # Do whatever here

【讨论】:

    【解决方案2】:

    您可以编写自己的函数来记住它返回的最后一个数字。由于它只存储最后一个,所以不会每次调用都消耗越来越多的内存。

    import random
    
    def random_digit():
        random_digit.last = random.randrange(0, 9)
        return random_digit.last
    
    pseudo_random_list = ''
    
    for _ in range(7):
        pseudo_random_list += str(random_digit())
    
    # Sample usage.
    print(repr(pseudo_random_list)) # -> '5538304'
    print(random_digit.last) # -> 4
    

    注意:我认为您可能想要使用random.randint() 而不是random.randrange(),因为random.randrange(0, 9) 只会生成0..8 范围内的数字,而random.randint(0, 9) 会生成数字在 0..9 范围内。

    【讨论】:

      【解决方案3】:

      我想我自己想通了。

      我可以简单地在我的列表中添加一个值,然后使用 print(pseudo_random_list[-1]) 打印该值

      【讨论】:

      • 这将为您提供添加到列表中的最后一个 字符,而不是生成的最后一个 int(尽管显然两者之间存在关系)。跨度>
      • @martineau 实际上是这样,因为我将最后一个 int 添加到列表的末尾。
      【解决方案4】:

      只要有一个临时变量,它们就可以通过。那将是最后一个值。

      【讨论】:

      • 生成一堆数字然后比较两个切片(就像我正在做的那样)已经非常占用内存,我不想在混合中添加创建临时变量。
      • @Divergence 那么请将您的代码添加到您的问题中
      • 不知道为什么这被否决了。使用:temp = random.randrange(0, 9);pseudo_random_list += str(temp) 这将只有 1 个临时变量被最后一个随机数覆盖。 (几乎没有增加内存)
      猜你喜欢
      • 1970-01-01
      • 2020-07-09
      • 1970-01-01
      • 2018-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-13
      • 1970-01-01
      相关资源
      最近更新 更多