缩进
直接执行的语句不要缩进。
缩进用于代码块,代码块以冒号为起点,用于流程控制,流程控制分为分支结构和循环结构
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表达式
- 利用可迭代对象创建新列表(表达式中通常包含元素):
基本列表:[ 表达式 for 元素 in 可迭代对象 ]
增设条件:[ 表达式 for 元素 in 可迭代对象 if 条件]
接受嵌套:[ 表达式 for 元素1 in 可迭代对象1 for 元素2 in 可迭代对象2]
- 创建生成器 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
结束整个函数/方法,无论其处于多少层循环之中