Skip to main content
 首页 » 编程设计

python之区间内自然数之和

2025年05月04日13lovecherry

这是我在求职面试中被问到的一个问题。

问题是如何对1到100之间的所有自然数求和,我也要求用python写这个程序。

那是我写的代码:

def sumNaturalNumbers(start, end, total_sum): 
    li = range(start, end) 
    sum = li[0] + li[-1] 
    li.remove(li[0]) 
    li.remove(li[-1]) 
    total_sum += sum 
    if len(li) == 0: 
        return total_sum 
    return sumNaturalNumbers(li[0], li[-1]+1, total_sum) 
 
print sumNaturalNumbers(1,101, 0) 

有什么我可以更改\修复以使这个函数更符合 Python 风格,这样我就可以在下一次工作面试中提高自己吗?

编辑

我的意图是在每次迭代中将列表中的第一项和最后一项相加,即 101,然后乘以 50。我要求展示我的思维方式,然后在解释之后实现它。 我知道函数 sum,但我需要以那种方式实现它。

请您参考如下方法:

有一个内置函数sum,可以对输入的列表求和:

sum(range(start, stop+1)) 

>>> sum(range(1, 11)) #Sum of numbers between 1 and 10, inclusive 
55 
>>> sum(range(1, 101)) #Sum of numbers between 1 and 100, inclusive 
5050 
>>>