第5章 条件、循环和其他语句
![](http://picture-repository-of-heamon7.qiniudn.com/Python基础教程-第5章 条件、循环和其他语句.png)
第5章 条件、循环和其他语句
5.1print和import的更多信息
print语句可以同时打印多个表达式,只需要用逗号分隔即可,print语句最后添上逗号表明不换行。若要连接逗号需使用+符号
import语句完整用法可以是 from Module import sth as sth
有些模块比如os.path是分层次安排的(一个模块在另一个模块里)
5.2赋值魔法
变量赋值时可以使用序列解包,即将多个值的序列解开,然后放到变量的序列中,当函数或者方法返回元组(或者其他序列或可迭代对象)时,这个特性特别有用
5.3语句块:缩排的快乐
Python中冒号用来表示语句块的开始,缩进推荐使用4个空格
5.4条件和条件语句
elif是else if的缩写
包含一个空格的字符串并非空
最好不要比较两个不兼容的类型,Python中比较运算符是可以连接的,如if(0<a<5):
is运算符是同一运算符,只有两个对象的引用是一样时才为真
字符串和序列按照字母顺序进行比较
assert断言语句类似于if,可以在程序中设置检查点,一旦为假,则产生异常,崩溃
5.5循环
xrange函数作用类似于range函数,只是range函数一次创建整个序列,而xrange一次值创建一个数,有时更高效
Python中迭代序列时,有些函数很常用,比如itertools模块中的一些函数,一些迭代技巧:
并行迭代是指可以同时迭代两个列表,如for i in range(len(list1))。内建的zip函数可以用来把两个序列压缩在一起,然后返回一个元组的列表,如for l1,l2 in zip(list1,list2).zip可以自动处理不等长的序列
编号迭代是在迭代的同时获得当前对象的索引,内建enumerate函数可以做到:for index,string in enumerate(strings)
翻转和排序迭代,即sorted和reversed函数,前者返回一个列表,后者返回一个可迭代对象
5.6列表推导式:轻量级微循环
列表推导式是利用其它列表创建新列表的一种方法,基本方式如下:[x*x for x in range(10) if x%3=0]a=[(x,y) for x in range(10) for y in range(5) if x%2==0 if y%2!=0]
5.7三人行
pass语句和注释联合使用的替代方案是插入字符串,对于那些没有完成的函数和类来说这个方法很有用
del语句用来删除一个变量对内存的引用,但是这个引用并没有显式删除,由Python解释器负责内存的回收
exec胡用于执行Python语句,eval能计算Python表达式,但这样做可能留下安全漏洞。均可以使用命名空间。如:scope={};exec 'sqrt=1' in scope