条件测试:
if 条件表达式
python 的比较操作
所有的python对象都支持比较操作
可用于测试相等性、相对大小等
如果是复合对象,python会检查其所有部分,包括自动遍历各级嵌套对象,知道可以得出最终结果。
测试操作符
‘==’操作符测试值得相等性
'is' 表达式测试对象的一致性。
python 中不同类型的比较方法
数字:通过相对大小进行比较
字符串:按照字典次序逐字符进行比较
列表和元组:自左至右比较各部分内容
字典:对排序之后的(键、值)列表进行比较
python 中真和假的含义
1.任何非零数字和非空对象都为真,否则为假
2.数字0、空对象和特殊None 均为假
3.比较和相等测试会递归地应用于数据结构中
4.返回值为True或False
组合条件测试:
X and Y : 与运算
X or Y : 或运算
not X :非运算
判断语句格式:
if boolean_expression1:
suite1
elif boolean_expression2:
suite2
else:
eslse)suite
while 循环
用于便携通用迭代结构
顶端测试为真即会执行循环体,并且重复多次测试知道为假后执行循环后的其他语句
循环表达式:
while boolean_expression:
while_suite
else:
else_suite
#只要boolean_expression的结果为True ,循环就一直执行;
#boolean_expression的结果为False时终止循环,此时如果有else分支,则会执行.
************************************************************************
* #break 跳出最内层的循环
* #continue 跳出所处的最近层循环的开始处
* #pass 点位语句
* #else 代码块,循环正常终止才会执行,如果循环终止是由break 跳出导致 * 的,则else不会执行。
************************************************************************
while 表达式:
while True:
x = raw_input('')
if x == 'q' or x == 'quit':
break
else:
test.append(x)
for循环
一个通用的序列迭代器,用于遍历任何有序的序列对象内的元素
可用于字符串、元组、列表和其他的内置可迭代对象,以及通过类所穿件的新对象。
python 也提供了一些能够进行隐形迭代的工具:
in成员关系测试
列表解析
map、reduce和filter函数
for表达式:
for expression in object:
for_suite
if boolean_expression2 : continue
if boolean_expression3 :break
else:
else_suite
python 迭代
迭代:重复做一件事
iterable(可迭代)对象
支持每次返回自己所包含的一个成员对象
对象实现了__iter__方法
序列类型,如:list,str,tuple
非徐磊类型,如:dict,file
用于自定义的一些包含_iter_()或_getitem_()方法的类
迭代器又称游标,它是程序设计的软件设计模式,是一种可在容器物件(container,如列表等)上实现元素遍历的接口
迭代器是一种特殊的数据结构,
简单理解方式:对于一个集体中的每一个元素,想要执行遍历,那么针对这个集合的迭代器定义了遍历集体每一个元素的顺序或方法.
迭代器本身是不可逆的.
迭代器
在python中迭代器是遵循迭代协议的对象
使用iter()可从任何序列对象中得到迭代器
若要实现迭代器,需要在类中定义next()方法(python3 中是 __next__())
要使得迭代器指向下一个元素,则使用成员函数next()
在python中,是函数next(),而非成员函数
当没有元素时,则会引发stoptieration异常
文件是可迭代:
iter()
_iter_()
for循环可用于任何可迭代对象
for循环开始时,会通过迭代协议传递给iter()内置函数,从而能够从可迭代对象中获取一个迭代器,返回的对象含有需要的next方法.
python列表解析:
列表解析是python迭代机制的一种应用,它常用于实现创建新的列表,因此要放置[]中
语法:
[expression for iter_var in iterable ]
[expression for iter_var in iterable if cond_expr ]
生成器表达式
生成器表达式并不是真正创建数字列表,而是返回一个生成器对象,此对象在每次自己算出一个条目后,把这个条目'产生'(yield)出来
生成器表达式使用了"惰性计算"或称作'延迟求职'的机制
序列过长,并且每次只需要取一个元素时,应当考虑使用生成器表达式而不是列表解析
生成器表达式于python2.4引入
语法:
(expr for iter_var in iterable)
(expr for iter_var in iterbale if cond_expr)