为什么需要break来停止此函数中的while循环



在嵌套循环上进行Python3练习以创建以下输出:

*
**
***
****
*****
******
*******
********
*********

但是即使我将条件设置为while I<=num,函数继续执行无限长的时间。我发现我需要添加break,但我不明白为什么循环在我调用函数的1次之后继续执行。

def triangle(num):
i = 0
while i <= num:
for i in range(num):
print(i*"*")
i+=1
break
triangle(10)

您的程序使用相同的循环变量iwhilefor循环中进行迭代。

这个结果令人困惑,因此为了得到答案,他们引入了一个随机的break

这个break是无用的,并且可以在没有外部while循环的情况下工作。你只需要有for循环,它就会工作:

def triangle(num):
for i in range(num):
print(i*"*")

因此,中断只会让你进入内部for循环,并在完成后立即退出。

老实说,你的程序看起来像是一个猴子补丁程序。尽管它有效,但由于不寻常的逻辑,它很难阅读和维护。

现在,上面的代码是如何工作的?

让我们看看眼前的问题:

  1. 我们必须创建一个"*"的三角形序列
  2. "*"的数量应该不断增加,最终等于作为参数发送的num的数量
  3. 在python中,任何字符串x乘以整数n都会创建一个重复xn字符串

所以如果我x="abc"newX=x*3print(newX(#打印abcabcabc

  1. 所以你所需要做的就是有一个变量,可以从1 to num开始,乘以"*"并打印出来。这已经在for循环和内部的打印语句中指出

编辑:

如果你被迫使用两个循环,这是一个模仿它的好方法:

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

相关内容

  • 没有找到相关文章

最新更新