第4章 流程控制

缩进

直接执行的语句不要缩进。

缩进用于代码块,代码块以冒号为起点,用于流程控制,流程控制分为分支结构和循环结构

python中,具有相同缩进的代码同属一个代码块,缩进后的代码才算条件执行体。一般缩进4个空格,其它数量亦可

python程序总是从上向下依次执行

冒号

if语句

if:分支结构,既可作语句,也可作表达式

作语句时,【elif】可以有若干个。基本原则:把范围小的条件放在前面

【if】语句中,除False本身为,None, 0, 空的字符串、元组、列表、字典都会被当作False处理

pass 占位符,什么也不做

if expression1:
    statement1
elif expression2:
    statement2
else:
    statament3
>>> if '': print(1)
else: print(2)

2

断言 assert

单行,不用缩进。如果True,往下执行,如果False,报错

>>> assert 3>3
Traceback (most recent call last):
  File "<pyshell#57>", line 1, in <module>
    assert 3>3
AssertionError

# 循环结构

初始化语句 + 循环条件 + 循环体 + 迭代语句

满足条件的情况下,执行循环体(包含迭代语句),直到条件为False,结束循环

else:python的循环都可定义else代码块,条件为False时执行。如果循环体中没有break,else下的代码直接放到循环体之外不影响效果

嵌套循环:内层循环相当于外层循环的循环体,两者可以用不同的结构

while循环

while循环下一定要有迭代语句,否则会陷入死循环。若缺少初始化语句,循环可能无法启动

>>> i = 0
>>> while i <3:
	print(i)
	i += 1

	
0
1
2

用while遍历列表或元组

>>> L = [5,6]
>>> i = 0
>>> while i < len(L):
	print(L[i])
	i += 1

	
5
6

for-in 循环

用于遍历可迭代对象的元素,如:range, list, dict, str等

可迭代对象中包含__iter__方法,且iter方法的返回值对象有next()方法

for-in遍历字典,先用items(), keyw(), values()获得列表,然后遍历

for表达式

  1. 利用可迭代对象创建新列表(表达式中通常包含元素):
    基本列表:[ 表达式 for 元素 in 可迭代对象 ]

增设条件:[ 表达式 for 元素 in 可迭代对象 if 条件]

接受嵌套:[ 表达式 for 元素1 in 可迭代对象1 for 元素2 in 可迭代对象2]

  1. 创建生成器 generator
    G = ( 表达式 for 元素 in 可迭代对象 if 条件)

遍历生成器:for i in G: print(i)

zip()

zip() 压缩多个列表,生成新的可迭代对象。如果各列表长度不相等,以最短的列表为准

新列表中,每个元素(元组)中包含各子列表的元素

>>> list1 = [1,2]
>>> list2 = [5,6]
>>> for i in zip(list1,list2): print(i)

(1, 5)
(2, 6)

isinstance(变量,类型)

判断变量是否为某一类型,返回bool值

>>> isinstance(1,int)
True

结束循环

break

在某种条件下,要强行中止循环时,用break跳出整个循环体,其后的else代码块也不会执行

内层循环中的break只能结束内层循环,外层循环的中断要另设break

如果想在内层break的同时也中止外层循环,可以通过在内、外层循环间传递参数实现,例:

a = False
for ...:
    for ...:
        if 条件1:
            a = True
            break
    if a:
        break

解释:满足条件1时,跳出内层循环,a的值迭代为True,跳出外导循环

continue

忽略本次循环剩下的语句,如果放在循环体的最后一行,是没有意义的

return

结束整个函数/方法,无论其处于多少层循环之中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ailsa2019

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值