在嵌套循环上执行Python3练习以创建此输出:
*
**
***
****
*****
******
*******
********
*********
但是,即使我将条件设置为i <= num时,该函数仍继续执行无限量的时间。我发现我需要添加中断,但是我不明白为什么循环在我调用函数后的1秒钟后仍继续执行。
def triangle(num):
i = 0
while i <= num:
for i in range(num):
print(i*"*")
i+=1
break
triangle(10)
答案 0 :(得分:0)
您拥有的程序正在使用相同的循环变量i
在while
和for
循环中进行迭代。
这很令人困惑,因此为了得到答案,他们引入了随机break
。
此break
是无用的,可以在没有外部while
循环的情况下工作。您可以只使用for
循环,它将起作用:
def triangle(num):
for i in range(num):
print(i*"*")
因此,中断只会使您进入内部for循环,并在完成后立即退出。
说实话,您的程序似乎是一个猴子补丁程序。尽管它可以工作,但由于逻辑异常而难以读取和维护。
现在,以上代码如何工作?
让我们看一下眼前的问题:
num
的数量。x
乘以整数n
都会创建一个n
重复x
的字符串。所以如果我有 x =“ abc” newX = x * 3 print(newX)#打印abcabcabc
1 to num
开始并乘以“ *”并打印出来的变量。 for
循环和其中的print语句已表明了这一点。 修改:
如果您被迫使用两个循环,这是模仿它的好方法:
def triangle(n):
for i in range(n):
for j in range(i):
print("*")
或另一种怪异的方式:
def triangle(n):
i=0
while(i<n):
for j in range(n):
print(i*"*")
i += 1