本文共 3243 字,大约阅读时间需要 10 分钟。
编程的真正力量不仅仅在于运行一条条的指令,就像任务清单那样。根据表达式求值的结果,程序可以决定下一步的操作。“控制流语句”决定了在什么条件下执行哪些python语句。
布尔值
虽然整型、浮点型和字符串数据类型有无数种可能的值,但“布尔”数据类型只有两种值:True和False。在作为python代码输入时,布尔值True和False不像字符串,两边没有引号,它们总是以大写字母开头。布尔值也可以用在表达式中,并且可以保存在变量中。如果大小写不正确,或者试图用True和False作为变量名,python会给出错误信息。
1 2 3 4 5 6 7 8 9 | >>> abc = True >>> abc True >>> false Traceback (most recent call last): File "<stdin>" , line 1 , in <module> NameError: name 'false' is not defined >>> False False |
比较操作符
比较两个值,求值为一个布尔值。
整型或浮点型的值永远不会与字符串相等。
==与=的区别:==用于判断是否一致,而=用于赋值。
▎常用比较操作符:
== 等于
!= 不等于
< 小于
> 大于
<= 小于等于
>= 大于等于
测试示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | >>> 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操作符求值为相反的布尔值。
1 2 3 4 5 6 7 8 9 10 | >>> ( 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子句。
1 2 3 4 5 6 7 8 9 10 11 12 | [root@server01 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' ) [root@server01 test ] # python3 if.py a=6 |
2)while和for 循环
while和for都可以循环,但for循环相对更简洁。
while示例:
1 2 3 4 5 6 7 8 9 10 11 | [root@server01 test ] # cat while.py a=0 while a<5: print( 'Hello world.' ) a=a+1 [root@server01 test ] # python3 while.py Hello world. Hello world. Hello world. Hello world. Hello world. |
for示例:
1 2 3 4 5 6 7 8 9 | [root@server01 test ] # cat for.py for a in range(0,6): print( 'Hello world.' ) [root@server01 test ] # python3 for.py Hello world. Hello world. Hello world. Hello world. Hello world. |
3)break和continue 中断
当循环时,如果执行遇到break语句,就会马上退出循环。
1 2 3 4 5 6 7 8 9 10 11 | [root@server01 test ] # cat break.py a=0 while a<5: print( 'Hello world.' ) a=a+1 if a==3: break [root@server01 test ] # python3 break.py Hello world. Hello world. Hello world. |
当循环时,如果执行遇到continue语句,就会跳回循环开始处,继续循环。
1 2 3 4 5 6 7 8 9 10 11 12 13 | [root@server01 test ] # cat continue.py a=0 while a<5: if a==3: a=a+1 continue print( 'Hello world.' ) a=a+1 [root@server01 test ] # python3 continue.py Hello world. Hello world. Hello world. Hello world. |
4)range()
range()函数可以被传递多个参数。上限为3个参数。第一个为变量开始的值,第二个参数是上限(不包含),第三个参数是“步长”。
1 2 3 4 5 6 7 8 | >>> 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,才能使用它。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | [root@server01 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 [root@server01 test ] # python3 sys.py Type exit to exit . hello 1> hello Type exit to exit . world 2> world Type exit to exit . exit |