python的流程控制
if
逻辑判断:
所谓的逻辑判断就是在一个程序中要对判断语句进行真假的结果判定,逻辑判断结果的最基本标准是布尔类型。布尔类型只有两个值:True
和 False
。一个逻辑语句是由条件语句和业务语句组合而成。
if
语句的功能是判断一个命题的真假,如果命题为真(True
),则执行 if
的逻辑语句,否则不会执行。
用法:
if 判断条件:
条件成立时执行的语句块
判断条件的真假结果是布尔类型。if
语句无返回值。示例:
>>> person = {'name': 'xiaobai', 'age': 18, 'height': 0}
>>> if person['height'] == 0:
... print('the person is not exist.')
...
the person is not exist.
- 什么是
else
?
else
是对 if
条件不满足的时候执行另一个代码块的入口。
用法:
if 判断条件:
条件成立时执行的语句块
else:
条件不成立时执行的语句块
当 if
条件不满足时执行 else
语句,else
语句无返回值。示例:
>>> person = {'name': 'xiaobai', 'age': 18, 'height': 180}
>>> if person['height'] == 0:
... print('the person is not exist.')
... else:
... print('the person\'s height is {}'.format(person['height']))
...
the person's height is 180
- 什么是
elif
?
elif
对于命题的非第一次的多种判断,每一种判断条件对应一个业务代码块。
elif
语句是对于 if
首次判断不满足时其他条件的判断语句。
if 判断条件1:
条件1成立时执行的语句块
elif 判断条件2:
条件2成立时执行的语句块
elif 判断条件3:
条件3成立时执行的语句块
...
else:
所有条件都不成立时执行的语句块
先进行 if
判断语句,如果 if
不成立就会执行 elif
判断,如果 if
和 elif
都不成立才会执行 else
的代码块。if
下面可以有多个 elif
,但只能有一个 else
。示例:
>>> person = {'name': 'xiaobai', 'age': 18, 'height': 180}
>>> if person['height'] == 0:
... print('the person is not exist.')
... elif 0 < person['height'] <= 160:
... print('the person is short.')
... elif 160 < person['height'] <= 180:
... print('the person is middle.')
... else:
... print('the person is tall.')
...
the person is middle.
if
条件语句的说明:
条件语句中,满足一个条件后,将退出当前条件语句
每个条件语句中必须且仅有一个 if 语句,可以有 0 个或多个 elif 语句,可以有 0 个或 1 个 else语句
每个条件语句,第一个条件必须是 if 开头
python的 for 循环
python的循环也称为遍历,通过 for
关键字将列表、元组、字符串、字典中的每个元素按照序列顺序进行遍历。
用法:
for item in iterable:
遍历执行的代码块
参数 iterable
表示可循环的数据类型,如列表、元组、字符串、字典;item
表示 iterable
中的每一个元素。
for
循环语句没有返回值,但在特定情况下有返回值。示例:
>>> l = ['name', 'age', 'gender', 'job']
>>> for i in l:
... print(i)
...
name
age
gender
job
- 对字典进行循环:
字典对象有内置函数 keys
、values
和 items
,分别可用于获取字典当前元素的key
、value
和 key: value
键值对。
用法:
for key in dict.keys():
遍历执行的代码块
for value in dict.values():
遍历执行的代码块
for key, value in dict.ietms():
遍历执行的代码块
参数 key
表示 for
循环体中获取的字典当前元素的 key
;value
表示 for
循环体中获取的字典当前元素的 key
对应的 value
。
示例:
>>> person = {'name': 'xiaobai', 'age': 18, 'height': 180}
>>> for i in person.keys():
... print(i)
...
name
age
height
>>> for j in person.values():
... print(j)
...
xiaobai
18
180
>>> for i, j in person.items():
... print(i, j)
...
name xiaobai
age 18
height 180
- 内置函数
range
:
range
函数返回的是一个一定范围的可迭代对象,元素为整型。返回的是 range
类型,无法打印信息,但可循环。
用法:
for item in range(start, end, step=1):
遍历执行的代码块
参数 start
表示开始的数字,类似索引左边;end
表示结束的数字,类似索引右边;step
为步长,类似索引步长,默认为 1。range
函数默认从 0 开始,不包括结束值,range
函数也遵循“左含右不含”的规则。
示例:
>>> for i in range(1, 10):
... print(i)
...
1
2
3
4
5
6
7
8
9
>>> type(range(1, 10))
<class 'range'>
for
循环中的else
:
for
循环中也可以使用 else
,但 else
语句只会在 for
循环正常退出后执行,循环如果报错或中途停止则不会执行 else
语句。
示例:
>>> for i in range(1, 10):
... print(i)
... else:
... print('遍历结束')
...
1
2
3
4
5
6
7
8
9
遍历结束
- 嵌套
for
循环:
嵌套 for
循环,即 for
循环中的 for
循环。嵌套 for
循环中,每进行一次外层的 for
循环,会完整的进行内层的 for
循环,内层的 for
循环完整结束后,会再次进入外层的 for
循环,直至外层的 for
循环结束。
用法:
for item_1 in iterable_1:
遍历执行的代码块
for item_2 in iterable_2:
遍历执行的代码块
示例:
>>> person = {'name': 'xiaobai', 'age': 18, 'height': 180}
>>> for key in person.keys():
... print(key)
... print('\n')
... for value in person.values():
... print(value)
... print('-----')
...
name
xiaobai
-----
18
-----
180
-----
age
xiaobai
-----
18
-----
180
-----
height
xiaobai
-----
18
-----
180
-----
python的 while 循环
for
循环是有限循环,因为可迭代对象中的元素始终是有个数的。相比之下,while
循环是无效循环,只要判断条件满足就可以一直循环下去,条件不满足时将停止循环。
for
循环与 while
循环的区别是 for
循环是有限循环,while
是无限循环且 while
不依赖可迭代的类型,for
需要依赖可迭代的类型。
用法:
while 判断条件:
遍历执行的代码块
示例:
>>> n, s = 1, 0
>>> while n <= 5:
... s += n
... n += 1
...
>>> print(s)
15
continue
与break
:
循环遇到 continue
时将停止本次数据循环,进入下一次循环。
用法:
while 判断条件:
遍历执行的代码块
continue
for item in iterable:
遍历执行的代码块
continue
循环遇到 break
时将正常停止整个循环,此时如果循环使用了 else
语句,else
语句将不会执行。
如果程序中只存在单循环,这时用 break
就会结束循环,程序就会终止。如果在多层循环嵌套中使用 break
只结束当前循环
用法:
while 判断条件:
遍历执行的代码块
break
for item in iterable:
遍历执行的代码块
break
示例:
>>> users = [
... {'name': 'xiaobai', 'age': 18, 'gender': 'man'},
... {'name': 'xiaohei', 'age': 17, 'gender': 'man'},
... {'name': 'xiaoxi', 'age': 18, 'gender': 'woman'},
... {'name': 'xiaohong', 'age': 19, 'gender': 'woman'}
... ]
>>> for user in users:
... if user.get('gender') == 'woman':
... continue
... print(user.get('name'))
...
xiaobai
xiaohei
>>> for i in range(10):
... if i == 8:
... print('-----')
... print('已经循环了 {} 次,循环退出'.format(i))
... break
... print(i)
... else:
... print('循环正常退出')
...
0
1
2
3
4
5
6
7
-----
已经循环了 8 次,循环退出
continue
与 break
的使用说明:
continue 与 break 只能使用于循环体中,其他地方无法使用,强行使用会报错
continue 与 break 通常伴随着循环语句中的条件语句,满足条件可以继续执行,不满足条件提前结束循环
在 while 循环中,break 语句优先于 while 逻辑体的判断