Python的缩进问题?

图片里print(n)的缩进位置各不相同,解释下所在位置表示的意义以及出现这样的结果原因

代码缩进不同意义不同
图一的print在while语法下,而continue是跳过当前循环接着运行,所以只有在奇数时才会打印
图二的print和while循环是同级当while循环下的所有执行完以后才会执行print
图三的print是在if判断条件下coutinue的后面,continue是结束当前循环,所以不会print n,追问

图3你的意思是不是说 如果不满足前面continue的情况不会print,但是如果满足的话,因为continue会跳过本次循环,所以也不会print,是这个意思吗

追答

不满足的的那个判断条件 if 若果不满足就不会往下执行,满足的话会因为continue跳过本次循环也不会print

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-30
习惯了java,c++之类的宽容,初学python,被它摆了道下马威,写if else,竟然必须要我正确用缩进格式,原来在python里不能用括号来表示语句块,也不能用开始/结束标志符来表示,而是靠缩进来表示,好吧,我以后多注意

空白在Python中是重要的。事实上行首的空白是重要的。它称为缩进。在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。
这意味着同一层次的语句必须有相同的缩进。
第2个回答  2019-12-23
python和c语言,java语言不同,不是使用大括号分号来分隔语句。
python是使用换行缩进来分隔代码块,将分支循环区分开的。
这几个不同的print,所处的语义代码块不同,有的是在while循环内,有的是在循环外,有的是在循环内的if分支内。所以注定的结果各不相同
第3个回答  2019-10-30
代码都是顺序执行的,一点一点仔细往下看就明白了,或者用pycharm、vscode等可以调试的IDE,单步调试一下,也可以看到执行顺序。
图1,当if条件满足时,进入if语句中,执行continue,直接跳过本次循环,重新开始下一次循环,下面的print(n)就不执行了,也就是,偶数跳过,基数打印;
图2,while循环全部执行完之后,再执行print(n)和print('end');
图3,当满足if条件时,进入if语句中,但是遇到了continue,直接跳过本次循环,开始下一次循环了,print(n)永远也执行不了。追问

图2当他循环到30的时候,执行continue 直接跳过循环,为什么最后还是输出了一个30,是不是while循环是从1-30一个个试过来,因为试到30结束了,最后输出的就是30了;另外图3你的意思是不是说 如果不满足前面continue的情况不会print,但是如果满足的话,因为continue会跳过本次循环,所以也不会print,是这个意思吗

追答

图2,当n等于30时,while条件不满足,while语句不会执行,直接执行下面的print(n),这时n等于30 ,当然就打印30了

第4个回答  2020-01-01
大家都知道python是一种对缩进非常敏感的语言,对代码格式要求非常严格的。1、不应该使用空格或Tab缩进的地方使用了空格或Tab;2、或者用到了Tab键