while用法:Python中,while循环和if条件分支语句类似,即在条件(表达式)为真的情况下,会执行相应的代码块。不同之处在于,只要条件为真,while就会一直重复执行那段代码块。
while语句的语法格式如下:
while条件表达式:
代码块
这里的代码块,指的是缩进格式相同的多行代码,不过在循环结构中,它又称为循环体。
while语句执行的具体流程为:首先判断条件表达式的值,其值为真(True)时,则执行代码块中的语句,当执行完毕后,再回过头来重新判断条件表达式的值是否为真,若仍为真,则继续重新执行代码块...如此循环,直到条件表达式的值为假(False),才终止循环。
while循环结构的执行流程如图所示。
例如,打印1~的所有数字,就可以使用while循环,实现代码如下:
#循环的初始化条件
num=1
#当num小于时,会一直执行循环体
whilenum:
print("num=",num)
#迭代语句
num+=1
print("循环结束!")
运行程序会发现,程序只输出了1~99,却没有输出。这是因为,当循环至num的值为时,此时条件表达式为假(),当然就不会再去执行代码块中的语句,因此不会输出。
注意:在使用while循环时,一定要保证循环条件有变成假的时候,否则这个循环将成为一个死循环。所谓死循环,指的是无法结束循环的循环结构,例如将上面while循环中的num+=1代码注释掉,再运行程序你会发现,Python解释器一直在输出"num=1",永远不会结束(因为num一直为True),除非我们强制关闭解释器。
再次强调,只要位于while循环体中的代码,其必须使用相同的缩进格式(通常缩进4个空格),否则Python解释器会报SyntaxError错误(语法错误)。例如,将上面程序中num+=1语句前移一个空格,再次执行该程序,此时Python解释器就会报SyntaxError错误。
除此之外,while循环还常用来遍历列表、元组和字符串,因为它们都支持通过下标索引获取指定位置的元素。例如,下面程序演示了如何使用while循环遍历一个字符串变量:
my_char="helloworld"
i=0;
whilei
print(my_char[i],end="")
i=i+1
程序执行结果为:
helloworld