在python中打印数字1到n的和

时间:2018-06-21 14:40:02

标签: python python-3.x

目标: 编写一个程序,要求用户输入数字n并打印总和 数字1到n中的一个。该程序一直要求输入一个号码,直到 用户输入0。

expected output:
enter an integer number (0 to end): 5
1+2+3+4+5 = 15

我能够解决第二个问题,直到用户输入0。 我遇到的问题是循环打印数字。

1+2+3+4+5 = 15

我在想,如果我在一个循环中使用一个循环,我可以做到这一点。这是我当前的代码。我看到其他问题可以回答此编程问题,但我想知道如何特别打印出导致我输入的数字的数字

num = int(input( "enter a integer: " ))
sum_num =0

if num != 0:
   for i in range(1, num+1): 
       sum_num += i
       print(sum_num)
else:
     exit()

5 个答案:

答案 0 :(得分:1)

您的代码有几个问题:

  1. 您的while循环将永远不会结束。其预期目的尚不清楚。
  2. 您每次循环的总和是1,而不是i
  3. 您的print语句仅在末尾出现。您可以将其包含在循环中。
  4. 在Python中,range(n)排除了 n ,因此请使用range(n + 1)
  5. 您无需将整数转换为字符串即可print

将所有内容放在一起:

num = int(input( "enter a integer: " ))
sum_num = 0

for i in range(1, num+1): 
    sum_num += i
    print(sum_num)

enter a integer: 5
1
3
6
10
15

答案 1 :(得分:1)

我认为这符合您的需求:

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)

这将打印出整数和,然后输出答案,然后等待下一个输入。输出示例:

$ python test.py
enter a integer: 5
1+2+3+4+5 = 15
enter a integer: 4
1+2+3+4 = 10
enter a integer: 3
1+2+3 = 6
enter a integer: 2
1+2 = 3
enter a integer: 1
1 = 1
enter a integer: 0
 = 0

答案 2 :(得分:0)

num=int(input("Enter the Number " ))
sum=0

for i in range(1, num + 1):
        sum = sum+ i
print(sum)

Enter the Number 9 45

答案 3 :(得分:0)

n = int(input("enter the no. : "))
sum = 0
for i in range(1,n+1):
    if(i<n):
        print(i,"+", end=" ")
    else:
        print(i,end=" ")
    sum = sum + i
print("=",sum)

答案 4 :(得分:-1)

n *(n + 1)/ 2

“ zBody zmust zbe zat zleast z30 zcharacters; zyou zentered z9 z ...”