控制流
if、elif和else
for循环
break关键字用于使for循环完全退出
while循环
只要条件不为false或循环没有被break显式终止,则代码块将一直不断地执行下去
pass
空操作语句,可以被用在那些没有任何功能的代码块中 (Python是根据空白符划分代码块的)
异常处理
许多函数只对特定类型的输入有效,如果输入值不正确机会产生ValueError,输入参数不是字符串或者数值,可能产生TypeError,意味着你的程序存在合法性bug
image.png
image.png
image.png
image.png
image.png
image.png
range和xrange
range函数用于产生一组间隔平均的整数,range(起始值,结束值,步长)
range产生的整数不包括末端值,range常用于按索引对序列进行迭代,对于非常长的范围,建议使用xrange,其参数和range一样
三元表达式
value=true-expr if condition else false-expr
如果条件以及true和false表达式非常复杂,就可能牺牲可读性
数据结构和序列
元组
元组是一种一维的、定长的、不可变的Python对象序列
通过调用tuple,任何序列或迭代器都可以被转换为元组
元组的元素可以通过方括号[]进行访问,索引从0开始
存储在元组中的对象本身可能是可变的,但一旦创建完毕,存放在各个插槽中的对象就不能再被修改了
元组可以通过加号连接起来已产生更长的元组
跟列表一样,对一个元组乘以一个整数,相当于是连接该元组的多个副本
元组拆包
如果对元组型变量表达式进行赋值,Python就会尝试将等号右侧的值进行拆包
元组方法
最有用的是count方法(计算指定值的出现次数)
列表
变长,内容可以修改,可通过[]或list函数进行定义
添加和移除元素
通过append方法,可以将元素添加到列表的末尾
利用insert(位置,元素)可以将元素插入到列表的指定位置
insert的逆运算是pop(位置)用于移除并返回指定索引处的元素
remove用于按值删除元素,它找到第一个符合要求的值,然后将其从列表中删除
通过in关键字,可以判断列表中是否含有某个值
合并列表
用+即可
对于一个已定义的列表,可以使用extend方法一次性添加多个元素(推荐)
调用列表的sort方法可以实现就地排序(无需创建新对象)
sort的次要排序键能够产生用于排序的值的函数
image.png
image.png
二分搜索及维护有序列表
bisect.bisect 找出新元素应该被插入到哪个位置才能保持原列表的有序性
bisect.insort确实地将新元素插到那个位置上去
image.png
切片
通过切片标记法,可以选取序列类型的子集,基本形式由[start位置:stop位置]
切片还可以被赋值为一段序列
元素数量=stop-start
image.png
image.png
image.png
内置的序列函数
enumerate
逐个返回序列的(i,value)元组;
可以求取一个将序列值(假定是唯一的)映射到其所在位置的字典
sorted
可以将任何序列返回为一个新的有序列表
image.png
image.png
zip
zip用于将多个序列(列表、元组等)中的元素“配对”
可以接受任意数量的序列,最终得到的元组数量由最短的序列决定
可以同时迭代多个序列,还可以结合enumerate一起使用
image.png
zip可以对于已压缩的序列进行解压(将一组行转换为一组列)
image.png
reversed
按逆序迭代序列中的元素
image.png
网友评论