【问题标题】:Basic Python Counter基本 Python 计数器
【发布时间】:2013-09-25 01:34:29
【问题描述】:

我只是 python 的初学者。蟒蛇 3 这是我的实验室作业:

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

求和(值) 此函数将 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

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

【问题讨论】:

  • 你在这里所做的只是改变num然后返回value不变。
  • 我意识到这一点,但我以前从未做过计数器,也不知道如何显示计数器,比如说 0-10。
  • 非常接近,您需要定义和跟踪总和,然后返回它而不是 value
  • 你的计数器是正确的,你只需要另一个变量来保存运行总和。

标签: python loops while-loop counter


【解决方案1】:

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

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

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

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

【讨论】:

  • 谁能给我一个基本计数器的例子?也许这就是我需要开始的地方。我迷路了!
  • 这是我在这个问题中唯一赞成的答案,因为它实际上试图教给 OP 一些东西。
  • 我更愿意学习如何做到这一点,而不是仅仅得到答案。但我认为在这种情况下,答案向我展示了我所缺少的东西,然后它是有道理的。谢谢大家的意见。
【解决方案2】:

顺便说一句,您需要做的是编写一些代码,该代码会产生与 python 内置函数 sum 等效的结果,应用于 rangesum(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

【讨论】:

  • 尽管这看起来可能有效,但我个人尽量避免向正在做作业的人提供完整的答案,而是为他们提供指导。绝对不是这里的规则,但我不能给它一个赞成票:-/
【解决方案3】:

试试这样的:

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

print summation(5)

这将打印15

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

【讨论】:

    【解决方案4】:

    这里有一些更 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)
    

    【讨论】:

    • 太复杂了。sum(range(1,x+1)) 就是你所需要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    相关资源
    最近更新 更多