python - 在Python中添加连续整数,有一点不同

标签 python

这是我的原始代码:

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) 用于使用 strnums 的所有元素转换为字符串,因为 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/

相关文章:

python - NLTK 查找错误

python - 如何将 tkinter Scale 小部件 slider 的默认值设置为 100?

python - 如何在 Django 中处理上传的文件以将其存储在数据库中

python - 在 Pandas 的下一个 K 连续行中找到最高值?

python - Flask-Login login_manager.session_protection=strong 不会重定向到登录页面

python - 用灰度图像中的透明度替换白色

python - PyQt4 文件名对话框

python - 使用Python脚本获取未读电子邮件

python - 无法在模板中显示模型中的数据

Python列表过滤器