首先我给大家分享一个代码:
row = 1 while row <= 5:
col = 1
while col <= row:
print("*" end="")
col += 1
print("")
row += 1
1 2 3 4 5 6 7 8 9 10 上面的这个代码运行完之后,打印出来的是这样的:
* **
1 2 3 4 5 我当时学while嵌套循环时,不理解上面的这个代码全部运行完之后的结果:为什么能够在打印第n行时能够在第n行打印n个*。
后来我发现原来是我遗漏了一个非常重要的条件,从而导致我不理解以上代码的结果,那就是:我定义的col计数变量是在第一个while里面,而不是在第一个while外面。
首先,当里面的while每运行完一次之后,col的值都理所当然的加上一个1(在这里我令加上1之后的col的值为col1),导致里面的while想要再次运行第二遍的时候却因为col1的值大于row的值,而使运行中的代码直接跳过里面的while循环,而直接运行后序的代码,比如运行 print("") 和 row += 1 (在这里我令加上1之后的row的值为row1)。
然后,row被重新附值完之后,代码又从外面的while开始从头运行。当row1被判断为小于等于5之后,运行下一行代码col = 1,这个时候原本被附过值的col(col = col1)又再一次被重新附值为1,然后才再次运行里面的while,而不是col = col1时运行里面的while。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。