【问题标题】:Creating Random Strings in Python在 Python 中创建随机字符串
【发布时间】:2019-02-07 15:12:07
【问题描述】:
import random

string1 = "Fred"
string2 = "Jones"
int1 = 4
int2 = 8
randomInt = random.randint(1, 100)
GloriousListOfFun = [string1, string2, int1, int2, randomInt]
RandomFromGloriousListOfFun = random.choice(GloriousListOfFun)

x=0
while x<1: 
    line1 = "Hi I am {} from Albion".format(RandomFromGloriousListOfFun)
    print(line1)

我知道这 99.9% 没用,但现在这会返回如下内容: “嗨,我是来自 Albion 的 9 岁” “嗨,我是来自 Albion 的 9 岁” “嗨,我是来自 Albion 的 9 岁” ETC... 有谁知道我怎样才能让它像这样重复,但每次都有一个随机变量?谢谢。

【问题讨论】:

  • 您只使用了一次random.choice。您需要在循环中再次使用它。试一试。
  • 如果你想生成令人信服的随机数据来填充伪造的数据库进行测试或类似的事情,你可能想了解 Faker faker.readthedocs.io/en/latest/index.html

标签: python loops random


【解决方案1】:

您可以将RandomFromGloriousListOfFun 设为一个函数并在每次迭代时调用它,以便每次从列表中返回一个随机样本:

GloriousListOfFun = [string1, string2, int1, int2, randomInt]
RandomFromGloriousListOfFun = lambda: random.choice(GloriousListOfFun)

for _ in range(5):
    print("Hi I am {} from Albion".format(RandomFromGloriousListOfFun()))

输出

Hi I am 97 from Albion
Hi I am Fred from Albion
Hi I am 8 from Albion
Hi I am Jones from Albion
Hi I am 8 from Albion

【讨论】:

    【解决方案2】:

    您可以将这些随机数放入 while 循环中,这样每次它都会获得新的随机数。

    import random
    
    string1 = "Fred"
    string2 = "Jones"
    int1 = 4
    int2 = 8
    x=0
    while x<1:
        randomInt = random.randint(1, 100)
        GloriousListOfFun = [string1, string2, int1, int2, randomInt]
        RandomFromGloriousListOfFun = random.choice(GloriousListOfFun)
        line1 = "Hi I am {} from Albion".format(RandomFromGloriousListOfFun)
        print(line1)
    

    【讨论】:

      【解决方案3】:

      你的错误在这里

      RandomFromGloriousListOfFun = random.choice(GloriousListOfFun)
      

      因为它使您的随机数固定!你应该做的是每次运行random.choice(GloriousListOfFun),像这样:

      while x<1: 
          line1 = "Hi I am {} from Albion".format(random.choice(GloriousListOfFun))
          print(line1)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-10-26
        • 2022-09-27
        • 2019-06-02
        • 1970-01-01
        • 2021-09-04
        • 2011-02-28
        • 2014-10-20
        相关资源
        最近更新 更多