DeepOps的Python小笔记-天池龙珠计划-Python训练营-Task 01:DAY2

很快到了第二天 条件语句与循环语句

条件语句

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`

Leave a Reply

Your email address will not be published.