Python编程基础 — 控制流

1. 布尔操作符

3个布尔操作符(and、or和not)用于比较布尔值。

像比较操作符一样,它们将这些表达式求值为一个布尔值。

让我们仔细看看这些操作符,从and操作符开始。

二元布尔操作符

and和or操作符总是接收两个布尔值(或表达式),所以它们被认为是”二元”操作符。

如果两个布尔值都为True,and操作符就将表达式求值为True;否则求值为False。

在交互环境中输入某个使用and的表达式:

Python
>>> True and True
True
>>> True and False
False

另一方面,只要有一个布尔值为真,or操作符就将表达式求值为True。

如果都是False则求值为False:

Python
>>> True or True
True
>>> False or False
False

not操作符

与and和or不同,not操作符只作用于一个布尔值,这使它成为”一元”操作符。

not操作符求值为相反的布尔值:

Python
>>> not True
False
>>> not not not not True
True

就像在说话和写作中使用双重否定一样,你可以嵌套not操作符,虽然在真正的程序中并不经常这样做。

2. 混合布尔和比较操作符

既然比较操作符求值为布尔值,那么就可以和布尔值操作符一起在表达式中使用。

and、or和not操作符称为布尔操作符是因为它们总是操作布尔值。

虽然像4<6这样的表达式不是布尔值,但是可以求值为布尔值。

在交互环境中,尝试输入一些使用比较操作符的布尔表达式:

Python
>>> (4<5)and(5<6)
True
>>> (4<5)and(9<6)
False
>>> (1==2)or(2==2)
True

计算机将先求值左边的表达式,然后求值右边的表达式。

得到两个布尔值后,它又将整个表达式再求值为一个布尔值。

也可以在一个表达式中使用多个布尔操作符,与比较操作符一起使用:

Python
>>> 2+2 == 4 and not 2+2 == 5 and 2*2 == 2+2
True

和算术操作符一样,布尔操作符也有操作顺序。

在所有算术和比较操作符求值后,Python先求值not操作符,然后求值and操作符,最后求值or操作符。

3. if语句

最常见的控制流语句是if语句。

在Python中,if语句包含以下部分:

  • if关键字
  • 条件
  • 冒号
  • 在下一行开始,缩进的代码块

if子句后面有时候也可以跟着else语句。

只有if语句的条件为False时,else子句才会执行。

elif语句是”否者如果”,总是跟在if或另一条elif语句后面。

假如,假定有以下代码,用于检查某人的名字是否为Alice

所有控制流语句都以冒号结尾,后面跟着一个新的代码块。

4. while循环语句

利用while循环语句,可以让一个代码块一遍又一遍地执行。

只要while循环语句的条件为True,while子句中的代码就会执行。

例如,检查spam的值,如果它小于5,就输出一条消息。

5. break语句

有一个捷径可以让执行提前跳出while子句。

如果执行遇到break语句,就会马上退出while子句。

6. continue语句

像break语句一样,continue语句用于循环内部。

如果程序执行遇到continue语句,就会马上跳回到巡回开始处,重新对循环条件求值。

7. for循环和range()函数

在条件为True时,while循环就会继续执行。

但如果你想让一个代码块执行固定次数,该怎么办?

可以通过for循环语句和range()函数来实现。

在代码中,for循环语句的形式为for i in range(5):总是包含以下部分:

  • for关键字
  • 一个变量名
  • in关键字
  • 调用range()函数,最多传入3个参数
  • 冒号
  • 从下一行开始,缩进的代码块

让我们创建一个新的程序,命名为fiveTimes.py,看看for循环的效果:

8. rang()函数的开始、停止和步长参数

某些函数可以有多个参数调用,参数之间用逗号分开,range()就是其中之一。

这让你能够改变传递给range()的整数,实现各种整数序列,包括从0以外的值开始的序列。

rang()函数也可以有第三个参数。

前两个参数分别是起始值和终止值,第三个参数是”步长”。

步长是每次迭代后循环变量增加的值:

在为for循环生成序列数据方面,range()函数很灵活。

举例来说,甚至可以用负数作为步长参数,让循环计数逐渐减少,而不是增加:

9. 用sys.exit()函数提前结束程序

要介绍的最后一个控制流概念是如何终止程序。

当程序执行到指令的底部时,总是会终止。

但是,调用sys.exit()函数,可以让程序提前终止或退出。

因此这个函数在sys模块中,以必须先导入sys才能使用它。

订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
滚动至顶部