【问题标题】:prints the sum of the numbers -5 to 0 in python在python中打印数字-5到0的总和
【发布时间】:2022-11-30 21:58:01
【问题描述】:

好的,所以我是 python 的新手,我应该编写一个代码来给我这个输出

input= -5 output = (-5)+(-4)+(-3)+(-2)+(-1)=-15 但我就是无法理解它

我以为我可以以某种方式翻转这个

while True:
    output = ""
    num = int(input("enter a integer: "))
    if num == 0:
        exit()
    for i in range(1, num + 1):
        output += "{}".format(i)
        if i != num:
            output += "+"
    output += " = {}".format(sum(range(num + 1)))
    print(output)

但我想不通。 请帮忙。 如果有人可以告诉我如何在一个代码中获得这两个,那将很有帮助。

【问题讨论】:

  • 请编辑您的标题以反映您遇到的实际编程问题,而不是一些任意的截止日期要求。
  • 欢迎来到堆栈溢出!您的代码在哪些方面没有按预期工作?请详细说明您观察到的具体问题以及您进行了哪些调试。要了解有关此社区的更多信息以及我们如何为您提供帮助,请从tour 开始并阅读How to Ask 及其链接资源。
  • range(start, stop, step=1) - docs.python.org/3/library/stdtypes.html#range

标签: python


【解决方案1】:
n = int(input("Enter a integer: "))
res = ""
s = 0
x,y = [n,0] if n < 0 else [1, n+1]
for i in range(x, y, 1):
    res += f"({i}) +"
    s += i
res = res[:-2] + "=" + str(s)
print()
print(res)

【讨论】:

  • 当 n 为正时,这将不起作用。
【解决方案2】:

此代码将处理正面和负面num

while True:
    num = int(input("enter an integer: "))
    if num == 0:
        break
    # Create the correct range based on num being positive or negative
    nums = range(num, 0) if num < 0 else range(1, num+1)
    # Create the string "a + b + c..." or "(-a) + (-b) + (-c)..."
    eq = ' + '.join(f"({n})" if n < 0 else str(n) for n in nums)
    # Print results
    print(f"{eq} = {sum(nums)}")

示例运行:

enter an integer: 5
1 + 2 + 3 + 4 + 5 = 15
enter an integer: -5
(-5) + (-4) + (-3) + (-2) + (-1) = -15
enter an integer: 0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多