这是我的原始代码:
x = input("Please input an integer: ")
x = int(x)
i = 1
sum = 0
while x >= i:
sum = sum + i
i += 1
print(sum)
这是第二部分:
b) 通过将循环包含在另一个循环中来修改程序,以便可以找到连续的和。例如,如果输入 5,您将找到五个连续数字的和:
1 = 1
1 + 2 = 3
1 + 2 + 3 = 6
1 + 2 + 3 + 4 = 10
1 + 2 + 3 + 4 + 5 = 15
我已经被困在这个问题上三天了,我就是不明白该怎么做。我已经尝试过,但没有成功。
while x >= i:
sum_numbers = sum_numbers + i
past_values = range(i)
for ints in past_values:
L = []
L.append(ints)
print(L, "+", i, "=", sum_numbers)
i += 1
任何人都可以帮助引导我走向正确的方向吗?顺便提一句。它是Python 3.3
最佳答案
您可以在一个循环中完成此操作,方法是使用 range
定义您的数字,并使用 sum
为您循环遍历数字。
>>> x = input("Please input an integer: ")
Please input an integer: 5
>>> x = int(x)
>>>
>>> for i in range(1, x+1):
... nums = range(1, i+1)
... print(' + '.join(map(str, nums)), '=', sum(nums))
...
1 = 1
1 + 2 = 3
1 + 2 + 3 = 6
1 + 2 + 3 + 4 = 10
1 + 2 + 3 + 4 + 5 = 15
range(1, x+1)
会给我 [1, 2, 3, 4, 5]
,这充当我们多少次的 Controller 想要打印出一个总和。因此,对于您的示例,此 for 循环将发生 5 次。
nums = range(1, i+1)
请注意,我们在这里使用 i
(取自上面的 range
),我用它来定义我在序列中达到的数字。
' + '.join(map(str, nums))
:
map(str, nums)
用于使用str
将nums
的所有元素转换为字符串,因为join
方法需要一个充满字符串的迭代。' + '.join
用于将元素与公共(public)字符串(在本例中为 ' + ')“连接”在一起。如果只有 1 个元素,join
将仅返回该元素。
sum(nums)
给出 range(1, i+1)
中定义的所有数字的总和:
- 当 nums =
range(1, 2)
时,sum(nums)
= 1 - 当 nums =
range(1, 3)
时,sum(nums)
= 3 - 等等...
关于python - 在Python中添加连续整数,有一点不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14591872/