控制流-阿里云开发者社区

开发者社区> 开发与运维> 正文

控制流

简介:

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










本文转自Grodd51CTO博客,原文链接:http://blog.51cto.com/juispan/1943869,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章