使用下面提到的python代码,我正在读取用户输入的数字并打印该系列。
n=int(input("Enter a number: "))
for j in range(1,n+1):
a=[]
for i in range(1,j+1):
print(i,sep=" ",end=" ")
if(i<j):
print("+",sep=" ",end=" ")
a.append(i)
print("=",sum(a))
当我运行此代码时,我看到了下面提到的输出。
RESTART: C:\SKANAKAV\at&t\Python\Aricent_Python\python_scripts\Read a Number
n And Print the Series_contdddd\test_exercise.py
Enter a number: 2
1 = 1
1 + 2 = 3
用户输入了数字2,即&#39; n&#39;。对于第一个&#39;为&#39;循环 - &gt; j是(1,3)其中j现在值为1。对于第二个&#39;为&#39;循环 - &gt;我是(1,2)。在下一行,它打印&#39; 1&#39;然后为&#39; if&#39;条件(i 1&lt; 1)是&#39; false&#39;并因此退出循环并将i(1)追加到&#39; a。现在最终输出打印为1 = 1.
我能够理解直到这意味着第一次迭代。现在这里是我无法理解程序流程的地方。它会回到第一个循环,其中&#39; j&#39;现在变成了2。 a又是一个空列表。 现在为第二个&#39;为&#39;循环 - &gt; (1,3) - &gt; &#39;我&#39;现在又是1。 现在我们打印1然后进入&#39;如果&#39;条件(i(1 <2),这是&#39; true&#39;因此进入循环并打印&#39; +&#39;。
现在再次&#39; a&#39;成为1&#39; i&#39;是1。 通过这个,它应该打印 - &gt; 1 + = 1。 但它打印1 + 2 = 3。 有人可以帮我理解这个程序流程吗?
答案 0 :(得分:-1)
好的,让我们像第一个循环一样回顾第二个循环。我将列出变量值。
j = 2
a = []
i = 1
print i (1)
1 < 2 = true
print '+' (1 +)
a = [1]
print i (1 + 2)
2 < 2 = false
a = [1, 2]
print =, sum(a) (1 + 2 = 3)
你在第二个循环中的范围从1到j + 1(现在是3)