第五章 条件、循环和其他语句
5.1 print/import语句
print 表达式1,表达式2,表达式3…… #输出之间用逗号隔开
import 从其他文件导入
>>>from module import function1,function2…
>>>from module import * #导入所有功能
>>>module1.function()
>>>module2.function() #同名区分来源
>>>from math import sqrt as foobar
>>>import math as mathtool #提供别名
5.2 赋值
>>> x,y,z=1,2,3 #同时赋值,数目相等
>>> print x,y,z
1 2 3
>>> x,y=y,x #交换,序列解包
>>> Key,value=字典.popitem()
>>> x=y=somefunction() #链式赋值,相当于y=function(),x=y
>>> print x+=1,y*=2 #增量赋值
5.3 语句块
加缩进,以冒号开始,每一句缩进量相同
5.4 条件语句
布尔值:假 E False None 0 “ ” () [] {} 注:等同但不相等
布尔函数:bool() E 将变量/字符串/元组/序列…转换为true/false
if语句:if 条件:
执行1
执行2
…
if…else…语句: if…elif…else…语句: 嵌套语句:
if 条件: if 条件1: if …… :
执行1 执行1 if …… :
else: elif 条件2: ……
执行2 执行2 else:
else: ……
执行3 else:
……
条件判断
x==y x=y,反应相等性
x is y x,y是同一个对象,反应同一性
x in y x是y的成员
x!=y x和y不相等
字符串比较 逐位按表比较,序列同理
例:x=y=[…],z=[…],此时x==y,x==z均为true,但x is y:true,x is z:false
布尔运算符 and,or,not 可以加()作优先级,注意短路执行的情况,因
为执行顺序有先后
断言 assert语句,用于检查程序,一旦出现假,程序崩溃
相当于>>>if not condition
crash program
5.5 循环
while 条件:
执行1
执行2
… #一定要跳出条件
for ... in …s: #应当为可迭代对象,如序列、字典等
执行1
执行2
…
例:循环遍历字典
迭代工具
并行迭代 i,j等标准循环索引变量名
也可以利用zip函数,以短序列长度为截止长度
name=[…],ages=[…]
zip(names,ages)=[(name1,age1),()…]
for name,age in zip(names,ages)
print …
编号迭代
跳出循环
用break 对于for循环:for i in range(1,10,2)
……
if ……:
break
while里面也可以加break,break后可以加else,仅在没调用break时执行
步长表示
Range(0,10,n):步长为n,不包括10,n<0,应当倒序
用continue 跳出本次循环并执行下一次循环
5.6 列表推导式—轻量级循环,利用其他列表循环创建新的列表
>>> [x*x for x in range(10)]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> [(x,y) for x in range(2) for y in range(3)]
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2)]
5.7 其他语句
pass 空代码块不写执行条件可以直接加pass结束,不屑内容为非法
del 删除变量名称(值仍在)x=1,del x 则x无法读取
exel 执行字符串里合法的Python代码
eval 计算字符串中合法的表达式