编程的真正力量不仅仅在于运行一条条的指令,就像任务清单那样。根据表达式求值的结果,程序可以决定下一步的操作。“控制流语句”决定了在什么条件下执行哪些python语句。
布尔值
虽然整型、浮点型和字符串数据类型有无数种可能的值,但“布尔”数据类型只有两种值:True和False。在作为python代码输入时,布尔值True和False不像字符串,两边没有引号,它们总是以大写字母开头。布尔值也可以用在表达式中,并且可以保存在变量中。如果大小写不正确,或者试图用True和False作为变量名,python会给出错误信息。
>>> abc=True >>> abc True >>> false Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name ‘false‘ is not defined >>> False False
比较操作符
比较两个值,求值为一个布尔值。
整型或浮点型的值永远不会与字符串相等。
==与=的区别:==用于判断是否一致,而=用于赋值。
▎常用比较操作符:
== 等于
!= 不等于
< 小于
> 大于
<= 小于等于
>= 大于等于
测试示例:
>>> 40==40 True >>> 40!=42 True >>> 40<=42 True >>> 40>=42 False >>> 40>=40 True >>> 40==‘40‘ False >>> ‘tom‘==‘Tom‘ False >>> ‘tom‘!=‘Tom‘ True
布尔操作符
and和or操作符总是接受两个布尔值(或表达式),所以它们被认为是“二元”操作符。
如果两个布尔值都为True,and操作符就将表达式求值为True,否则求值为false。
只要有一个布尔值为真,or操作符就将表达式求值为True。如果都是False,所求值为False。
和and和or不同,not操作符只作用于一个布尔值(或表达式)。not操作符求值为相反的布尔值。
>>> (4<5) and (5<6) True >>> (4>5) or (5>6) False >>> (4<5) and (5>6) False >>> (4<5) and not (5>6) True >>> (4<5) and not not (5>6) False
控制流语句
控制流语句的开始部分通常是“条件”,接下来是一个代码块,称为“子句”。
1)if...elif...else 判断
只有if语句为False时,后面的子句才会执行。
一个控制流中可以有有多个elif子句。
[[email protected] test]# cat if.py a=6 if a<5 : print(‘a<5‘) elif a==5 : print(‘a=5‘) elif a==6 : print(‘a=6‘) else : print(‘a>6‘) [[email protected] test]# python3 if.py a=6
2)while和for 循环
while和for都可以循环,但for循环相对更简洁。
while示例:
[[email protected] test]# cat while.py a=0 while a<5: print(‘Hello world.‘) a=a+1 [[email protected] test]# python3 while.py Hello world. Hello world. Hello world. Hello world. Hello world.
for示例:
[[email protected] test]# cat for.py for a in range(0,6): print(‘Hello world.‘) [[email protected] test]# python3 for.py Hello world. Hello world. Hello world. Hello world. Hello world.
3)break和continue 中断
当循环时,如果执行遇到break语句,就会马上退出循环。
[[email protected] test]# cat break.py a=0 while a<5: print(‘Hello world.‘) a=a+1 if a==3: break [[email protected] test]# python3 break.py Hello world. Hello world. Hello world.
当循环时,如果执行遇到continue语句,就会跳回循环开始处,继续循环。
[[email protected] test]# cat continue.py a=0 while a<5: if a==3: a=a+1 continue print(‘Hello world.‘) a=a+1 [[email protected] test]# python3 continue.py Hello world. Hello world. Hello world. Hello world.
4)range()
range()函数可以被传递多个参数。上限为3个参数。第一个为变量开始的值,第二个参数是上限(不包含),第三个参数是“步长”。
>>> for i in range(0,15,3): ... print(i) ... 0 3 6 9 12
终止程序
使用import语句导入模块,可以使用内建函数。可以直接用import语句,也可以用from import语句。
使用from import语句,调用模块中的函数时不需要模块的前缀。
推荐使用import语句,因为完整的名称让代码更可读。
通过调用sys.exit()函数,可以让程序终止或退出。因为这个函数在sys模块中,所以必须先导入sys,才能使用它。
[[email protected] test]# cat sys.py import sys a=1 while True: print(‘Type exit to exit.‘) text=input() if text==‘exit‘: sys.exit() print(str(a)+‘> ‘+text) a=a+1 [[email protected] test]# python3 sys.py Type exit to exit. hello 1> hello Type exit to exit. world 2> world Type exit to exit. exit