【问题标题】:i've generated random numbers. Now i want to add all the numbers that are generated. What is the code to add them [closed]我已经生成了随机数。现在我想添加所有生成的数字。添加它们的代码是什么[关闭]
【发布时间】:2019-07-06 13:15:55
【问题描述】:

我已经生成了随机数。现在我想添加所有生成的数字。

import random
x= 0
while x<10:
    number = random.randrange(1,10)
    print(number)
    x=x+1

我期待输出

3 9 6 6 4 5 4 7 3 1

Sum: 48

【问题讨论】:

  • 您需要编写代码来执行此操作,但您似乎还没有尝试这样做。
  • 我卡住了。尝试了一些代码,但都以错误结尾。
  • 嗨!这个问题已经被问过了。在这里尝试解决方案:stackoverflow.com/a/32622081/4844273

标签: python random sum


【解决方案1】:

如果您只需要很少的代码行,另一种选择可能是列表理解,如下所示:

import random

num_list = [
    random.randrange(1, 10)
    for _ in range(10)]

print(num_list)
print(sum(num_list))

输出会是这样的:

[6, 4, 3, 1, 1, 2, 6, 8, 6, 1]
38

正如用户@Andrej 指出的那样,从Python 3.6 开始,您可以使用函数random.choices() 来获得相同的结果:

import random
num_list = random.choices(range(1, 10), k=10)
print(num_list)
print(sum(num_list))

【讨论】:

  • 不错的答案。我只会为 Python 3.6+ 添加random.choices(range(1, 10), k=10)
  • 用这个print(*num_list, sep=", ")替换你的第一行,它会删除括号。
  • @AndrejKesely 很好,谢谢。但是@Ralf 我从最后一个打印语句中得到了这样的错误。 TypeError: 'int' object is not callable.
  • @KushanGunasekera 代码对我有用。您能否显示错误的完整堆栈跟踪,以便我可以尝试识别错误的来源?
  • @Ralf 早些时候您的代码运行良好,这是最好的答案,我投了赞成票。但现在它不起作用,我不知道原因。当我打印num_list 时,它显示整数列表,使用sum() 的问题。
【解决方案2】:

使用总数变量并将生成的数字添加到总数中

import random

x = 0
total = 0
while x<10:
    number = random.randrange(1,10)
    print(number)
    total += number
    x=x+1
print(total)

【讨论】:

    【解决方案3】:

    试试这个,

    import random
    
    num = 0
    
    for i in range(10):
        random_number = random.randrange(1,10)
        num += random_number
        print(random_number, end=' ')
    
    print(f'\nsum: {num}')
    
    # 4 9 9 9 2 2 1 9 5 5
    # sum: 55
    

    我尝试使用 Python 3.7 版本。

    【讨论】:

    • 不客气@Aashishm,它像您预期的问题输出一样在单行中打印随机数。如果您想要多行,只需从第一个打印语句中删除 end=' '
    【解决方案4】:

    尝试创建一个新变量并将随机数添加到其中

    import random
    x= 0
    sum = 0
    while x<10:
        number = random.randrange(1,10)
        print(number)
        sum = sum + number
        x=x+1
    print(sum)
    

    【讨论】:

    • 试过了,但它一直在 while 循环中添加。但我正在尝试在打印完所有数字后明确显示总和。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-21
    • 2018-11-23
    • 1970-01-01
    • 2022-10-07
    相关资源
    最近更新 更多