while 循环
while 循环主要用于重复的执行一段代码。
# 如果没有条件阻止,while会一直循环到程序崩溃
>>> while True:
>>> ....
>>> ...
# 增加条件阻止
>>> n = 1
>>> while n < 5:
>>> print(n)
>>> n = n + 1 # 简写 n+=1
1
2
3
4
# continue
>>> n = 1
>>> while n < 5:
>>> n+=1
>>> if n == 3:
>>> continue # 跳过当前循环
>>> print(n)
2
4
5
# break
>>> n = 1
>>> while n < 5:
>>> if n == 3:
>>> break # 终止循环
>>> print(n)
>>> n+=1
1
2
continue、break也适用下面的于for循环。
for 循环
for 循环主要是对序列的遍历,在Python中,除了我们前面列举的一些序列字符串、列表、元组,还有一些奇特的序列,比如generator,关于生成器的内容请看函数篇。
# 遍历序列
>>> for s in 'abc':
>>> print(s)
'a'
'b'
'c'
>>> for n in [1,2,3]:
>>> print(n)
1
2
3
# 字典并不是一个序列,所以在遍历字典之前,需要先进行转换 | 字典篇学到的方法:keys() values() items(),就派上用场了。
>>> for k in {1:'a', 2:'b'}.keys():
>>> print(k)
1
2
>>> for v in {1:'a', 2:'b'}.values():
>>> print(v)
'a'
'b'
>>> for i in {1:'a', 2:'b'}.items():
>>> print(i)
(1,'a')
(2,'b')
# 嵌套循环
>>> for i in {1:'a', 2:'b'}.items():
>>> for k in i:
>>> print(k)
1
'a'
2
'b'
温馨提示:IndentationError: 报错,是代码没有 强制对齐 。
推导式
一种生成序列的语法糖。
# range | 快速生成序列
>>> list(range(0,10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# for
l = []
for x in range(0,10):
if x % 2 == 1: # 奇数
l.append(x)
>>> l
[1,3,5,7,9] # 得到一个奇数列表
# 推导式
>>> l = [ x for x in range(0,10) if x % 2 == 1 ] # 表达例2. 一句话的事
>>> l
[1,3,5,7,9]
# 字典推导式公式
{ key_expression : value_expression for expression in iterable }
# 集合推导式公式
{ expression for expression in iterable }