当我运行此代码时,print(x)
每次都会打印相同的字母,然而当我像第二个示例print(random.choice(b))
那样运行它时,它会按预期工作。有什么不同?我检查了一个找到“播种”引用的答案,但我之前没有使用random.seed()
。
import random
b = "Hello World"
x = random.choice(b)
print(x)
print(x)
print(x)
# same answer as many times as you want to print
print(random.choice(b))
print(random.choice(b))
print(random.choice(b))
# random choice each time
答案 0 :(得分:0)
random.choice(b)
时, x
只被调用一次,每次引用该变量时都不会再次调用它。每次打印x
时,您都会看到初始分配的结果。执行print(random.choice(b))
后,每次random.choice()
都会调用b
。如果每次引用变量时分配给变量的值都会发生变化,那确实会出现问题。
你在这里做的事情真的没什么区别:
x = random.choice(b)
print(x)
你在这做什么:
print(random.choice(b))
不同之处在于您执行后3次(即,您调用random.choice()
3x并打印结果3x),因此您会看到3个不同的结果。如果你这样做:
x = random.choice(b)
print(x)
x = random.choice(b)
print(x)
x = random.choice(b)
print(x)
每次都会看到不同的结果(或者每次至少有一个随机结果 - 它可能是相同的。)
答案 1 :(得分:0)
通过打印指定值3次不会改变变量的值,除非你再次调用随机函数生成一个新的随机变量:)
答案 2 :(得分:0)
不同之处在于,第一个x = random.choice(b)
将x
设置为随机,然后打印x
,这是从b
中随机选择的字母。它只会在您声明x
时随机选择x
。第二个,print(random.choice(b))
每次都会生成一个新的随机数。
您可以使用以下代码使x等于random.choice:
b = "Hello world!"
x = random.choice
print(x(b))
这与print(random.choice(b))
完全相同。