从1开始的数字总和(python)

时间:2014-12-10 12:29:54

标签: python

我开始学习Python,而且我上课了。我需要创建程序,在那里你首先要求插入数字(你插入例如#34; 5"),结果应该是从1到你插入的这个数字的数字之和(在这个例子中是1+ 2 + 3 + 4 + 5)。我创建了一个程序,列出了插入数字的数字,但我无法完成它 - 创建这些数字的总和。这是我的代码:

print ("Insert the digit")
digit = int(input())
i = 0
while i < (digit):
    i = i + 1
    print (i)

5 个答案:

答案 0 :(得分:5)

正如其他人所指出的,你没有保持一个总计,你可以在这里使用数学技巧,例如:

n = int(input('Enter digit: '))
print('Total sum is:', int(n*(n/2 + .5)))

这对于较大的n来说效率要高得多......因此,您可以使用该公式在恒定时间内计算{{1}的任何值,而不是构建生成器并一次求和。 }。

答案 1 :(得分:3)

您可以尝试以下操作:

i = 0
total = 0
while i < digit:
    i = i + 1 # can be i += 1
    total = total + i # can be total += i
print (total)
也可以使用

range函数。你可以读到这个。

答案 2 :(得分:3)

你可以使用范围和:

my_sum = sum(range(1,digit+1))

范围将为您提供整数列表,语法range([start],stop),它将结束总是少一个,请参阅下面的演示

演示:

>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1,10)
[1, 2, 3, 4, 5, 6, 7, 8, 9]

sum的演示:

>>> my_num = range(1,10)
>>> my_num
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> sum(my_num)
45

答案 3 :(得分:0)

您也可以尝试

print ("Insert the digit")
digit = int(input())
print(sum(range(digit+1)))

此处range是一个功能,它会列出0digit的所有数字,而sum会计算总数

答案 4 :(得分:0)

真正的pythonic方式是执行以下操作:

print ("Insert the digit")
digit = int(input())
i = 0
while i < (digit):
    i = i + 1
    print (i)
summed = sum(range(digit+1))
print(summed)

注意:您不应使用变量名称sum,因为这是一个保留符号(语言实习生)