3.5 循环结构

在日常生活中经常会遇到一些有规律的重复操作,例如,输出从1到100的自然数。如果使用顺序结构来实现这个程序,那么需要使用100个print语句。其实这些语句都是重复执行的,也只需要使用一个循环语句就可以代替这100个语句。在Python中循环语句有while和for两种,首先来看一下while的用法。while循环语句包含条件语句和代码块两个部分。

条件语句:这是一个可能为真也可能为假的语句,由while关键字开始,冒号结尾,例如:

     while i<100:

代码块:这是一段可以执行的代码,当条件语句的值为真,就会执行这个代码块。同样需要注意的是缩进格式。

     while i<100:
         print i

和选择结构不同的是,当代码块执行完之后,并不是继续向下执行,而是重新回到while循环的条件语句,再次检查该条件的值,如果条件为真,就会再次执行代码块,否则会跳过整个代码块。

如果这个条件语句的结果永远为假,那么代码块中的语句将不会执行。可是,如果这个条件语句的结果永远为真呢?例如:

     while 1==1:
         print ("Never stop" )

这种循环永远都不会结束,显然并不需要一个程序永远处于运行状态,它总得有个结束的时候。这时就需要使用break语句,它的作用是终止这个循环。接下来编写一个程序,要求用户输入用户名,但是只有当用户的输入为admin时,才会进行下一步。

代码中使用了input()函数,这是一个非常有用的函数,它可以在执行的时候从命令行处接收来自用户的输入,并将输入结果传递给正在执行的程序。

除了break语句之外,还有一个功能类似的continue语句,它也只能应用于循环结构内部。不同的是,当程序执行过程中遇到continue语句,就会马上回到循环开始的地方,重新对循环条件求值,也就是继续这个循环。

Python中while循环的用法和其他语言(例如C语言)的区别并不大,而另一个for循环就有些不同了。

for循环又被称为计数循环,这是因为可以在条件语句中指定循环的次数。for语句要和range()函数搭配使用,常见的形式如下:

     for i in range(10):

for语句的构成部分主要由循环语句和代码块两个部分组成。

循环语句:这是一个由一个for关键字、一个变量名、一个in关键字、一个range()函数和一个冒号共同构成的语句。range()函数可以接收参数,最多3个。

代码块:这是一段可以执行的代码。

需要注意的是,range()本身就是一个函数,如果只接收一个参数,如range(n),则表示的是执行代码块的次数。

     for i in range(5):
         print(i )

如果接收两个参数,例如range(5,10),第一个参数表示的是for循环开始的值,第二个参数表示上限,但是循环中i的值不会取到10。

     for i in range(5,10):
         print(i)

range()函数也可以有第三个参数,前两个参数分别是开始值和上限,第三个参数是步长,也就是每次循环时循环变量的变化。

     for i in range(2,10,2):
         print(i)