Estellelllle 发表于 2021-10-6 13:05:42

求助大神!!

i=1
while i<=9:
    j=1
    while j<=i:
      print(j,"*",i,"=",j*i,end=" ")
      j=j+1
    print()
i=i+1

i=1
while i<=9:
    j=1
    while j<=i:
      print(j,"*",i,"=",j*i,end=" ")
      j=j+1
    print()
    i=i+1

这两组代码为什么不一样?为什么后面那个才是对的,i=i+1为什么要缩进?

qiuyouzhi 发表于 2021-10-6 13:12:50

不缩进,最外层的while循环怎么结束呢?

嘉岳呀 发表于 2021-10-6 13:31:14

不缩进的话,最外层的循环结束不了

不缩进:最外层的 while 循环结束后,i = i + 1

缩进:在最外层的 while 循环里,每循环一次,i = i + 1

不缩进结束不了循环,因为最外层循环条件是 i <= 9

Estellelllle 发表于 2021-10-6 13:53:46

嘉岳呀 发表于 2021-10-6 13:31
不缩进的话,最外层的循环结束不了

不缩进:最外层的 while 循环结束后,i = i + 1


啊?能不能解释的详细一点,要缩进我懂了,但是我不理解为什么不缩进就结束不了循环,不缩进的话不也是每循环一次i 就+1吗?(万分感谢!!)小白有点不太懂哪里该缩进哪里不缩进呜呜┭┮﹏┭┮

大马强 发表于 2021-10-6 14:44:52

Estellelllle 发表于 2021-10-6 13:53
啊?能不能解释的详细一点,要缩进我懂了,但是我不理解为什么不缩进就结束不了循环,不缩进的话不也是每 ...

可以看得出这是个嵌套循环,两份代码只有最后一句是不一样的
第一个时在循环内,即每次第二层while 循环结束 都会执行到,执行9次即第二个while跳出9 次时 i= 10 ,不满足第一层循环,第一层循环跳出程序结束
第二个在两个循环外,那你的第一层循环不是永远跳不出来了吗

Estellelllle 发表于 2021-10-6 15:00:01

大马强 发表于 2021-10-6 14:44
可以看得出这是个嵌套循环,两份代码只有最后一句是不一样的
第一个时在循环内,即每次第二层while 循环 ...

感谢!

嘉岳呀 发表于 2021-10-6 15:01:41

Estellelllle 发表于 2021-10-6 13:53
啊?能不能解释的详细一点,要缩进我懂了,但是我不理解为什么不缩进就结束不了循环,不缩进的话不也是每 ...

这个可以适当的打一下括号

不缩进:

i=1
while i<=9:
{
    j=1
    while j<=i:
    {
      print(j,"*",i,"=",j*i,end=" ")
      j=j+1
    }
    print()
}
i=i+1

相当于出了循环再 i = i + 1

缩进:

i=1
while i<=9:
{
    j=1
    while j<=i:
    {
      print(j,"*",i,"=",j*i,end=" ")
      j=j+1
    }
    print()
    i=i+1
}

相当于再最外面的循环里 i = i + 1

因为最为层的 while 循环条件为 i <= 9,不缩进的话 i 永远都是 1,所以缩进以后就每执行一次外面的大循环以及里面的小循环n次以后,i 就会增加 1

这样外循环循环 9 次以后, 外循环就会结束

嘉岳呀 发表于 2021-10-6 15:02:52

还有打括号只是为了表明区域,不要再 Python 的循环及函数里面使用大括号

Estellelllle 发表于 2021-10-6 16:24:51

嘉岳呀 发表于 2021-10-6 15:01
这个可以适当的打一下括号

不缩进:


非常感谢!!!

嘉岳呀 发表于 2021-10-6 18:40:33

https://s1.ax1x.com/2020/07/05/UpAthV.gif
页: [1]
查看完整版本: 求助大神!!