很快到了第二天 条件语句与循环语句
条件语句
if 语句
- if – else 语句
- if – elif – else 语句
- assert 关键词
- assert len(my_list) > 0
循环语句
while 循环
- while - else 循环
- 这个我很少用过, 当while循环正常执行完的情况下,执行else输出,如果while循环中执行了跳出循环的语句,比如 break,将不执行else代码块的内容。
while 布尔表达式:
代码块
else:
代码块
for 循环
- for – else 循环
- 当for循环正常执行完的情况下,执行else输出,如果for循环中执行了跳出循环的语句,比如 break,将不执行else代码块的内容,与while – else语句一样。
for 迭代变量 in 可迭代对象:
代码块
else:
代码块
range() 函数
enumerate()函数
sequence:一个序列、迭代器或其他支持迭代对象。
- seasons = [‘Spring’, ‘Summer’, ‘Fall’, ‘Winter’]
lst = list(enumerate(seasons))
print(lst)
# [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
lst = list(enumerate(seasons, start=1)) # 下标从 1 开始
print(lst)
# [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
break 语句
- 语句可以跳出当前所在层的循环。
continue 语句
pass 语句
- 要是我早知道有这么一个玩意儿,就不用在if语句里面写一个print()
- pass 语句的意思是“不做任何事”,如果你在需要有语句的地方不写任何语句,那么解释器会提示出错,而 pass 语句就是用来解决这些问题的。
推导式
这个一般教程少见,需要重点看一下
列表推导式
- [ expr for value in collection [if condition] ]
x = [-4, -2, 0, 2, 4]
y = [a - 2 for a in x]
print(y)
# [-8, -4, 0, 4, 8]
元组推导式
- ( expr for value in collection [if condition] )
a = (x for x in range(10))
print(a)
# <generator object <genexpr> at 0x0000025BE511CC48>
print(tuple(a))
# (0, 2, 4, 6, 8, 10, 12, 14, 16, 18)
字典推导式
- { key_expr: value_expr for value in collection [if condition] }
b = {i: i % 2 == 0 for i in range(20) if i % 3 == 0}
print(b)
{0: True, 3: False, 6: True, 9: False, 12: True, 15: False, 18: True}
集合推导式
- { expr for value in collection [if condition] }
c = {i for i in [1, 2, 3, 4, 5, 5, 6, 4, 3, 2, 1]}
print(c)
# {1, 2, 3, 4, 5, 6}
其它
- next(iterator[, default])
- Return the next item from the iterator. If default is given and the iterator is exhausted, it is returned instead of raising StopIteration.
e = (i for i in range(10))
print(e)
# <generator object <genexpr> at 0x0000007A0B8D01B0>
print(next(e)) # 0
print(next(e)) # 1
for each in e:
print(each, end=' ')
# 2 3 4 5 6 7 8 9`