-4

我只是 python 家伙的初学者。Python 3 这是我的实验室作业:

函数和 while 循环。创建一个测试指定函数的主函数

summation (value) 此函数将 1 的总和返回到 value。您可以假设该值将是正数。例如,求和 (5) 将返回 15 (1 + 2 + 3 + 4 + 5)。

它给了我: print("Summation:",summation(10))

到目前为止我有

def summation (value):
    num = 1
    while num <= value:
        num = num + 1
    return value

我很肯定这是错误的,但我不知道该怎么做。任何帮助深表感谢!!

4

4 回答 4

2

该值所代表的极限是什么?您将要添加的序列中的项目数。

循环播放时需要跟踪哪些内容?到目前为止所有数字的总和,您现在使用的数字以及完成循环的时间。

在循环的每次迭代中你需要做什么?将当前数字添加到总数中,并将当前数字推进到序列中的下一个数字。

循环完成后你有什么?最后一个“当前”数字和到目前为止的总和。

于 2013-09-25T01:40:23.857 回答
1

顺便说一句,您需要做的是编写一些代码,该代码会产生与 python 内置函数等效的结果sum,应用于 a range, sum(range(1, value+1))。在这里,range 返回 1 和 value 之间的所有值,然后将它们相加。

你可以做类似的事情:

def summation(value):
    i = 1
    sum_value = 0
    while i <= value:
        sum_value = sum_value + i
        i = i + 1 
    return sum_value
于 2013-09-25T01:40:38.667 回答
1

尝试这样的事情:

def summation(n):
    count = 0
    num = 0
    while count < n:
        count+=1
        num+=count
    return num

print summation(5)

这将打印15

我使用了一个while循环,它只会在循环计数小于原始数字时循环然后我使用另一个变量加起来以获得总和

于 2013-09-25T01:42:45.633 回答
1

这里有一些更 Pythonic 的东西,包括一个用于测试的 main:

import sys

__author__ = 'Michael'


def summation(n):
    return sum(x for x in range(1, n+1))

if __name__ == '__main__':
    """http://stackoverflow.com/questions/18994802/basic-python-counter"""
    n = int(sys.argv[1])
    print summation(n)
于 2013-09-25T01:51:51.480 回答