上一节已学习了Python的一些基本数据类型,掌握这些知识后,读者可以通过程序实现一些简单功能,但是要编写具有逻辑判断功能的代码,还是远远不够的,具体应该如何处理呢?这正是本小节的重点内容,即学习使用常用的逻辑控制语句,学会这些知识后,读者的疑问就会得到解答,也能够编写更大型的Python应用程序。
条件分支语句就是常用的if条件判断,在条件成立或不成立的情况下,都执行相应的代码块,实现相应的功能。
在使用if条件判断语句的时候要注意格式的缩进,不正确的格式缩进可能会导致代码运行结果错误。
Python与C语言等有些不同,在Python中没有用于多分支判断的switch……case语句,当出现多条件分支时可以使用语句if……elif……else。
下面可以通过一个小例子帮助读者更好地理解条件分支语句。
最近某校2班进行了一次测试,Z老师要根据班上同学的考试成绩划分等级,其中分数在90~100(包含90)的同学等级为A,分数在80~90(包含80)的同学等级为B,分数在60~80(包含60)的同学等级为C,其余分数的同学等级为D。请读者编写一个程序,当输入学生分数的时候,得到该学生对应的等级。
可以通过条件分支语句实现上述功能,其中每个分数段代表一个条件分支。首先判断第一个条件是否满足,若满足则执行对应代码块然后结束;否则接着判断后面的条件,当某一条件满足则执行对应代码块然后结束;若所有条件均不满足,则执行else后面的语句。具体代码如下。
该程序运行后,结果如下。
while循环语句的一般形式如下:
while循环语句和条件分支语句有些相似,都是当表达式为真的时候,就执行语句,不同的是while会一直循环判断该表达式是否为真,若为真则会循环执行语句。在使用while循环语句的时候要注意代码的缩进。
在Python中没有do……while语句,使用的时候要注意。下面通过一个小例子来帮助读者更好地理解while循环语句。
请帮小芳同学找出1~30范围内偶数的和。
可以在while循环语句中嵌套条件判断语句实现上述功能。其中循环语句用于限制数字从1~30的变化范围;条件判断语句用于判断数字是否为偶数,若为偶数则进行加法运算。具体代码如下。
该程序运行后,结果如下。
接触过C语言的读者可能对for语句并不陌生,C语言的for循环十分灵活,通过调整条件,可以让for循环用于循环次数固定和循环次数不确定的情况。但是在Python中,for语句循环的使用与C语言中的用法略有差别。Python中的for语句依据任意序列中的子项,按照它们在序列中的顺序进行迭代。
for语句的一般形式如下:
数据类型包含字符串、列表、元组、字典和集合等。
下面以遍历字符串的例子来说明for循环语句,具体代码如下。
该程序运行后,结果如下。
看到这个例子,读者可能还有疑问,若想遍历数字序列,使用上面的for语句实现,会不会过于烦琐?其实在需要遍历数字序列的时候,可以使用range()方法,这样会方便很多。下面将详细介绍range()的用法。
range(beg, end, step):其中beg是初始值,end是停止值(但不包括end值),step是步进。若没有指定beg值,则默认从0开始,若没有设置步进值step,则默认step是1。具体示例代码如下。
该程序运行后,结果如下。
break语句的作用是终止当前循环,跳出循环体。若使用了循环嵌套,break语句将终止最深层的循环。为便于读者理解,下文将通过一个例子来更加直观地介绍break语句的用法。
找到100~200之间第一个可以被3整除的数,并将其输出,具体代码实现如下。
该程序运行后,结果如下。
由上述代码可知,当找到能被3整除的数之后,就将该数输出,此时使用了break语句中断整个for循环。
continue语句的作用是结束本次循环,即continue后面的语句不执行,继续进行下一次循环。continue语句只是结束本次循环,而不是终止整个循环,因此读者应格外注意其与break语句的区别。接下来通过一个例子来更好地理解continue语句。
输出1~10中不能被3整除的数,具体代码如下。
该程序运行后,结果如下。
从上述代码及结果可知,当数字能被3整除结果为真,则执行continue语句,然后直接进入下一次循环。对比两段代码实现的结果,能更加清楚地理解break语句和continue语句之间的区别。