Python中的随机字符串

问题描述 投票:1回答:3
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%无用的,但现在这将返回类似:“嗨,我是从9阿尔比恩”“嗨,我是从9阿尔比恩”“嗨,我是从维奇9”等...有谁知道我怎么可能让它重演每次都这样,但有一个随机变量?谢谢。

python loops random
3个回答
0
投票

你的错误是在这里

RandomFromGloriousListOfFun = random.choice(GloriousListOfFun)

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

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

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

0
投票

你可以把这些随机量为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)
© www.soinside.com 2019 - 2024. All rights reserved.