Python 如果使用变量,random.choice将显示相同的答案
当我运行此代码时,Python 如果使用变量,random.choice将显示相同的答案,python,random,Python,Random,当我运行此代码时,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 pri
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
random.choice(b)
仅在将返回值赋给x
时调用一次,而不会在每次引用该变量时再次调用它。每次打印x
时,您都会看到初始分配的结果。当您执行print(random.choice(b))
时,它每次都在b
上调用random.choice()。如果每次引用变量时,分配给变量的值都发生了变化,那么这确实是一个很大的问题
你在这里所做的事情其实没有太大区别:
x = random.choice(b)
print(x)
print(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)
每次您都会看到不同的结果(或者每次至少看到一个随机结果-可能是相同的)。通过打印指定的值3次将不会更改变量的值,除非您调用随机函数再次生成新的随机变量:)区别在于第一个,x=random.choice(b)
将x
设置为随机,然后打印x
,即从b
中随机选择的字母。当您声明x
时,它仅随机选择x
是什么。第二个,print(random.choice(b))
每次都生成一个新的random
您可以使用以下代码使x等于random.choice:
b = "Hello world!"
x = random.choice
print(x(b))
这与print(random.choice(b))
打印x
3次有什么意义?在Python中,x
会得到一个赋值。它不会与从中获取该值的线路保持“实时”连接。只是为了表明前三条线路的答案相同,后三条线路的答案不同,每一条线路的答案可以是任意数字。“给我一个随机对象并将其标记为x
。显示标记为x
的对象。再给我看看。Rad,为什么它使用变量分配的值相同,而使用模块分配的值不同?