Python理论2 Flow Control
文章目录
流程控制
在Python的流程控制的核心在于利用布尔逻辑去控制流程,其中主要包含了3个语句,以if为关键词的if结构,以for为关键词的for循环,以while为关键词的while循环。后文将分别对布尔逻辑、代码块、if结构、for循环、while循环进行介绍。先用一张流程图描述一下流程控制的概念:
布尔逻辑
布尔值
True和False
需要注意的有:
(1)首字母大写;
(2)不能作为变量名,
比较运算符
操作符 | 含义 |
---|---|
== | 等于 |
!= | 不等于等于 |
< | 小于 |
> | 大于 |
<= | 小于等于 |
>= | 大于等于 |
比较运算符计算结果为布尔值,如下:
>>> 42 == 42
>>> 42 == 99
True
False
>>> 2 != 3
True
>>> 2 != 2
False
这里着重讲一下==和=的区别
- ==是一个运算符,它的作用是判断其左右两端的值是否相等
- =是一个赋值符号,它的作用是将等号右边的值赋予左边的变量中,不具备判断左右两边值是否相等的功能。
布尔运算符
包括三个运算符,and,or 以及not,其中and和or作用两个布尔值或表达式之前,not作用于一个布尔值和表达式之间。
用法参见表:
表达式 | 结果 |
---|---|
True and True | True |
True and False | False |
False and True | False |
False and False | False |
True or True | True |
True or False | True |
False or True | True |
False or False | False |
not True | False |
not False | True |
布尔逻辑表达式
将比较运算符和布尔运算符混合使用即是布尔逻辑表达式,看看例子:
>>> (4 < 5) and (5 < 6)
True
>>>
运算过程如下:
代码块
语法规则
- 始于缩进(一般为一个Tab)
- 一个代码块中可以包含其他的代码块
- 结束于缩进减少为零(对象为本代码块)
还是用代码去理解:
name = 'Mary'
password = 'swordfish'
if name == 'Mary':
print('Hello Mary')
if password == 'swordfish':
print('Access granted.')
else:
print('Wrong password.')
这里有三个代码块,第一个if下面的缩进,第二个if下面的缩进以及else下面的缩进。
if结构
if
语法规则:
- 关键词if
- 条件(一个布尔逻辑表达式,计算结果为True或False)
- 冒号
- 另起一行,缩进的代码块(这里是if子句)
if condition:
clause #if子句
实例:
if name == 'Alice':
print('Hi, Alice.')
实例流程图如下:
else
语法规则:
- 关键词else
- 冒号
- 另起一行,缩进的代码块(这里是else子句)
- 无法独立于if存在
else :
clause #if子句
实例如下:
name = 'Bob'
if name == 'Alice':
print('Hi, Alice.')
else:
print('Hello, stranger.')
实例流程图如下:
elif
语法规则:
- 关键词elif
- 条件(一个布尔逻辑表达式,计算结果为True或False)
- 冒号
- 另起一行,缩进的代码块(这里是elif子句)
- 无法独立于if存在
elif condition:
clause #if子句
实例如下:
name = 'Bob'
age = 5
if name == 'Alice':
print('Hi, Alice.')
elif age < 12:
print('You are not Alice, kiddo.')
实例流程图如下:
if elif else联用及个人心得
- if 机构中仅if可以独立存在
- elif 和 else可以和if一起独立存在,也可相互连用
- 三者使用时缩进相同
实例:
name = 'Bob'
age = 30
if name == 'Alice':
print('Hi, Alice.')
elif age < 12:
print('You are not Alice, kiddo.')
else:
print('You are neither Alice nor a little kid.')
实例流程图:
while循环
语法
- 关键词while
- 条件(一个布尔逻辑表达式,计算结果为True或False)
- 冒号
- 另起一行,缩进的代码块(这里是while子句)
while condition:
clause #while子句
Note:
当while后的条件计算为True时一直循环,循环过程为执行完代码块后又回到代码块的第一行继续执行代码。
代码演示:
spam = 0
while spam < 5:
print('Hello, world.')
spam = spam + 1
执行结果为:
Hello, world.
Hello, world.
Hello, world.
Hello, world.
Hello, world.
代码流程图演示:
break
当在while循环中使用break时,循环立刻停止。在使用 while True: 循环时很有用,比如应用于输入正确用户名的场景下。
while True:
print('Please type your name.')
name = input()
if name == 'your name':
break
print('Thank you!')
代码流程图如下:
continue
用于在执行代码块时立即回到循环起点,一般放在循环中间的位置。
如下代码:
while True:
print('who are you?')
name=input()
if name!='Joe':
continue
print('Hello,Joe.What is the password?(It is a fish)')
password=input()
if password=='swordfish':
break
print('Access Granted.')
如果你只想执行代码块中一部分且让其达到条件时继续执行可以用continue。
代码流程图如下:
for循环
语法
- 关键词while
- 变量
- in
- range( ) 或字符串或列表或字典,这里跟while循环区别开
- 冒号
- 另起一行,缩进的代码块(这里是while子句)
代码示意:
print('My name is')
for i in range(5):
print('Jimmy Five Times (' + str(i) + ')')
执行结果:
My name is
Jimmy Five Times (0)
Jimmy Five Times (1)
Jimmy Five Times (2)
Jimmy Five Times (3)
Jimmy Five Times (4)
代码流程图:
range( )
range( )是一个在for循环中十分重要的内置函数,在这里再讲一下它的特点:
- 可以传递给他三个整数range(a,b,c)
- a和b代表它的范围
- c代表步长
- a,b,c都可以为负数
- c的默认值为1
- a的默认值为0
代码示意:
for i in range(5, -1, -1):
print(i)
执行结果:
5
4
3
2
1
0
for循环与while循环的异同与个人理解
- while循环条件是布尔逻辑表达式,其结果是布尔值True或者False
- for循环是变量在一个范围里
- for循环也可以用while循环写,不过要在while循环前给变量并将这个变量放在布尔逻辑表达式中,在其代码块中利用迭代器改变变量的值,如下:
print('My name is')
i = 0
while i < 5:
print('Jimmy Five Times (' + str(i) + ')')
i = i + 1
对比for循环的例子
导入模块的方法 import
除了嵌入式函数之外,我们还要用到很多标准库中的函数,或者外部模块中的函数,这些函数需要用import来导入模块。
语法
- import 模块1,模块2,模块3 (当然你也可以只导入一个))
- form 模块 import 函数
累死了,先这样吧,关于布尔值还有一个布尔值可以等于其他值的问题,等更完其他部分有时间再更。