Python使用For Loop输出指定行数三角数的重复输出问题咨询
为什么循环输出全是同一个三角数?
你的问题核心出在循环计算时用了固定不变的j,而非循环的迭代变量:
j是你一开始输入的总行数,整个循环过程中它的值不会发生变化- 每次执行
num1 = ((j**2)+j)/(2)时,都是用同一个j代入公式,计算出来的始终是第j行的三角数,所以循环输出的结果全是同一个数
举个例子,如果你输入j=5,那每次计算都是(5²+5)/2=15,循环5次就会输出5个15.0,和你给出的实际输出一致。
要修正的话,应该用循环里的i来对应行数(注意range(0,j)里的i从0开始,所以实际行数是i+1),修改后的代码如下:
j = int(input('how many lines you want on your triangle??????: ')) for i in range(0, j): # 用i+1作为当前行数代入三角数公式 num1 = ((i+1)**2 + (i+1)) / 2 print(num1)
或者用累加逻辑实现,更直观:
j = int(input('how many lines you want on your triangle??????: ')) current = 0 for i in range(1, j+1): current += i print(current)
内容的提问来源于stack exchange,提问作者elfuegoeggo
相关产品推荐
相关产品推荐

