作者回复: ctrl+/
作者回复: 您好,我先回答第二个问题,python确定语句块(比如if语句块包含一条语句还是两条语句)是看缩进来判断的,缩进可以是一个或者多个空格或者tab,但是我们习惯上缩进用四个空格。
那我们回头来看第一个问题,
(四个空格) if num == 10:
(八个空格) continue
(八个空格) print(num)
这里的print()语句如果前面只有四个空格那么,程序会执行if语句之后,执行print()语句;而第二个代码print()前面有8个空白格,那么print就被包括做if语句块中了,它的前一个语句是continue,表示外面的循环语句遇到这条语句就跳过一次循环,因此你就看不到print函数的输出了,也就是你认为的无法运行,其实是程序在一直执行循环,但是没有输出
作者回复: continue语句帮你完美的避过了time模块,程序执行到continue会跳出循环,下面的time模块不被执行
作者回复: 正确,稍后我会在github公布练习题答案
作者回复: 您好, 抛出异常之后程序不会向下执行,所以if部分没有被执行到,考虑IndexError 的异常,可以看下是哪里取life_num的下标出了问题,提示一下:注意在错误提示上面找一下问题代码所在的行数
作者回复: 是的,range(1,101),后面我们还会学一个xrange()函数,他们的返回结果不同,根据需求要选择不同的方式生成1-100的整数
作者回复: 和数据库无关,应该是你的sleep()函数没有在while循环里面被执行到,检查一下缩进情况。
作者回复: 您好,我依次回答一下:
1 有while和for混合使用的情况,在python里,while更“像”是现实生活里面的循环,当满足while的条件会一直持续不断的执行下去,for更多的地方用在对一个容器(字符串、字典、列表等)依次取里面的元素。所以他们在Python编程里是有可能会出现都使用的情况的。
2 回答一下你的代码的疑问,当你不使用i += 1时,while循环的判断结果一直为True,所以:
while i % 3 == 0:
print(i)
会一直循环下去,代码没有机会运行到while循环的上一层--for循环的语句,我们通常说程序进入到了死循环;而第二段代码if语句判断一次,无论结果如何if语句块都会结束,会进入到for循环的语句块执行,这就是你主要有疑问的地方,并非for"不起作用"。