我该如何在python上写一行代码,将100个随机数从1到6相加



我有这个代码(我知道为什么它是错误的,我只是不知道如何修复它(

import random
x = 0
for i in range(100):
print(x + (random.randint(1, 6)))

请有人帮我,或者给我指一个正确的方向。提前谢谢。

你不加数字:

import random
x = 0
for i in range(100):
x += random.randint(1, 6)
print(x)

答案如下。

import random
x = sum([random.randint(1,6) for i in range(100)])

前面两个答案没有解释,所以这里是:

在代码中,您添加的是随机数,但问题是,您并没有将该随机数添加到x本身,而是打印出x加上随机数。这意味着你的循环正在这样做:

print(0 + random.randint(1, 6))
print(0 + random.randint(1, 6))
print(0 + random.randint(1, 6))
# ...

基本上,x总是0。为了解决此问题,您必须将随机数添加到x本身,然后打印x。此外,您不希望每次添加都打印一次,而是在最后打印一次——所以将print置于for循环之外:

import random
x = 0
for i in range(100):
x += random.randint(1, 6)
print(x)

然而,这也可以使用generator comprehensions:来解决

import random
x = sum(random.randint(1, 6) for i in range(100))
print(x)

如果您只想要最终的总和:

from random import randint
x = 0
for i in range(100):
x += randint(1, 6)
print(x)

Eden Yosef的答案是在Python中做同样事情的最好方法,因为它使用理解,但我想补充一下,如果你还没有理解的话。

Daniel的每次求和都会打印出来,这就是你的格式。

import random
x = sum([random.randint(1,6) for i in range(100)])
print(x)

最新更新