计算从 x 到 y 的数字总和,程序将答案打印为 "x+(x+1)....+y= (sum of # from x to y)"

Finding the sum of numbers from x to y and the program prints the answer as "x+(x+1)....+y= (sum of # from x to y)"

例如,1到3的数字之和打印为1+2+3=6;该程序打印答案以及加在一起的数字。如何做到这一点?非常感谢任何帮助,因为我尝试过的任何方法都没有奏效。我一直在尝试使用求和公式来获得答案,并使用循环来将数字相加……但没有成功。虽然提示是使用 for 循环,但我不确定如何将其合并到程序中。练习提示还说我不能使用 sum 或 .join 函数:(,我知道这会使事情变得容易得多。天哪,我很抱歉忘记提及它。

你可以试试这个

def problem1_3(n):
   return n + problem1_3(n-1) if n > 1 else 1

或尝试以下

n = 0
sum = 10
for num in range(0, n+1, 1):
   sum = sum+num
print("SUM of first ", n, "numbers is: ", sum )

输出

SUM of first  10 numbers is:  55

试试这个

x = 3
y = 6

for i in range(x, y+1):
    opt_str += str(i) + "+"
    sum += i

print(opt_str[:-1] + "=" + str(sum))

输出:

3+4+5+6=18

您可以对 assemble 字符串使用连接和列表理解。

n1 = 1
n2 = 3

li = str(n1)+"".join(["+"+str(i) for i in range(n1+1,n2+1)])+"="+str(sum(range(n1,n2+1)))
print (li)

输出:

1+2+3=6 

一个有趣的方法是一次打印一点。在打印中使用 end='' 以避免换行:

num = 3
sum = 0

for i in range(1,num+1):
    sum += i
    if i>1:
        print ("+", end='')
    print(i, end='')
print("=%d" % sum)

1+2+3=6

最简单的方法是使用 for 循环和 print() 函数

def func(x,y):
    sum = 0

    #Loop for adding
    for i in range(x,y+1):
        sum+=i

    #Loop for printing
    for i in range(x,y+1):
        if i == y:
            print(i,end = '')
        else: print(i," + ",end = '')
    print(" = ",sum)

print() 函数的 end 参数指定打印的字符串将以什么结尾,而不是默认的换行符。

所以对于你这里的例子, func(1,3) 将输出:1 + 2 + 3 = 6

代码如下:

print("Finding the sum of numbers from x to y")
print("Please specify x & y(x<=y):")
x = int(input(" x:"))
y = int(input(" y:"))
numbers = [x]
result = f"Sum: {x}"

for i in range(1,y-x+1):
    numbers.append(x+i)
    result += f"+({x}+{i})"
    
print(f"{result} = {sum(numbers)}")

输出:

Finding the sum of numbers from x to y
Please specify x & y(x<=y):
 x:1
 y:10
Sum: 1+(1+1)+(1+2)+(1+3)+(1+4)+(1+5)+(1+6)+(1+7)+(1+8)+(1+9) = 55

输出2:

Finding the sum of numbers from x to y
Please specify x & y(x<=y):
 x:2
 y:6
Sum: 2+(2+1)+(2+2)+(2+3)+(2+4) = 20