流程控制是计算机语言中必有的,也是组成计算机语言最主要的部分之一,每门语言的都差不多,这里介绍不一样的
Python中的真假
- 在Python中,除了下面的值,其他的值都会被当做True处理
0、0.0、[]、{}、set()、tuple()、None
关于Python中语法的简略表示
- Python式“三元表达式”
age = 18 call = "黄花大闺女" if age < 20 else "Lady"
for循环
- 普通的for循环
for <var> in <iterable>: <for-body> else: <else-body>
- for-break-else的说明:当迭代的对象迭代完并为空时,位于else的子句将执行,而如果在for循环中含有break时则直接终止循环,并不会执行else子句(break执行的时候不会执行else,若break没有被执行,则会执行else语句)。
- 迭代for循环
[i * i for i in range(5)] # 结果 [0, 1, 4, 9, 16]
Python迭代器、生成器
- 容器迭代器
# 把一个列表转换为一个迭代器 iterator = iter([i**2 for i in range(10)]) # 元祖配合for直接生成一个迭代器 iterator = (i**2 for i in range(10)) # 迭代器都有一个next方法,用来获取下一个元素 iterator.next()
- 特点:需要一个的时候再去生成
next
的值,对内存的使用代价很低
- 特点:需要一个的时候再去生成
- 函数迭代器
- 函数迭代器就是把函数中的
return
替换成yield
,那么函数的返回值就是一个迭代器了,那么就可以顺其自然的调用next
方法了,而且能保存函数的执行状态。当然,这个return
需要可迭代的,比如放在for
循环中,否则,你告诉我它有个毛用!!!???
- 函数迭代器就是把函数中的
zip函数
- zip函数的作用是把两个容器的对应索引的值组成一个元组
num1 = [1, 2, 3] num2 = [6, 7, 8] for tp in zip(num1, num2): print(tp)
- enumerate函数的作用是把一个容器的索引与对应索引的值组成一个元组
nums = [6, 7, 8] for tp in enumerate(nums): print(tp)
- 指定enumerate函数的开始索引:
nums = [6, 7, 8] for tp in enumerate(nums, 2): print(tp)