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



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

尝试使用这个

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

您可以使用联接和列表推导来组合字符串。

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 

你可以试试这个

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

一个有趣的方法是一次打印一点。在打印中使用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

最新更新