Python实现输入数字对应范围数值求和的问题求助
搞定Python数字求和问题
嘿,我看你现在的代码能遍历数字,但还没实现累加求和对吧?咱们来一步步改:
首先,先看看你现有代码的问题:
num1 = int(input("How many laps?: ")) num2 = int(0) for lap in range (num1): num2 = lap # 这里每次都把num2替换成当前lap,而不是累加! print("Sum is:" , (num2))
你这里每次循环都把num2直接赋值成当前的lap,所以最后num2只会是最后一个数字(比如输入5的话就是4),而不是所有数字的总和。
方法1:修改循环实现累加
只需要把赋值语句改成累加就行,把num2 = lap换成num2 += lap(等价于num2 = num2 + lap),这样每次循环都会把当前的lap值加到总和里:
num1 = int(input("How many laps?: ")) num2 = 0 # 这里int(0)可以直接写成0,更简洁 for lap in range(num1): num2 += lap print("Sum is:", num2)
测试一下,输入5的话,循环会依次把0、1、2、3、4加到num2里,最后得到10,完美符合你的需求!
方法2:用Python内置的sum()函数更简洁
其实Python有现成的求和函数sum(),可以直接对range(num1)的序列求和,一行就能搞定核心逻辑,代码更清爽:
num1 = int(input("How many laps?: ")) total = sum(range(num1)) print("Sum is:", total)
range(num1)会生成从0到num1-1的整数序列,sum()直接计算这个序列的总和,效果和方法1完全一样,但代码更清爽。
内容的提问来源于stack exchange,提问作者jussi
相关产品推荐
相关产品推荐

