编程的真正力量不仅仅在于运行一条条的指令,就像任务清单那样。根据表达式求值的结果,程序可以决定下一步的操作。“控制流语句”决定了在什么条件下执行哪些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
|