python核心编程&条件判断与循环
来源:互联网 发布:专柜mac口红多少钱 编辑:程序博客网 时间:2024/05/23 19:16
1 条件判断语句
1.1 if单一条件判断语句
if expression: expre_true_suite
1.2 if多重条件判断语句
单个if语句可以通过使用布尔操作符and
、or
和not
实现多重条件判断
1.3 else判断语句
if expression: expr_true_suiteelse: expr_false_suite
对于python语法而言,else语句还可在while和for循环中使用else语句。在循环使用时,else子句只在循环完成后执行,也就是说break语句也会跳过else块。
1.4 elif语句
if expression1: expr1_true_suiteelif expression2: expr2_true_suite
对于某些可以使用python字典的搜索操作,应优先选择使用字典搜索。因字典的搜索操作比类似if-elif-else语句或是for循环这样的序列查询要快
1.5 条件表达式(三元操作符)
X if C else Y>>> smaller = x if x < y else y
2 循环语句
2.1 while语句
while expression: suite_to_repeat
2.2 for语句
for语句可以遍历序列成员,并可以用在列表解析
和生成器表达式
中,它会自动地调用迭代器的next()方法,捕获StopIteration异常并结束循环。
for iter_var in iterable: suite_to_repeat
利用for语句迭代序列有三种基本方法:
1、通过序列项迭代
for item in list: suite
2、通过序列索引迭代
for item in range(len(list)): suite
3、通过项和索引迭代
for num,value in enumerate(list): suite
3 内建函数
3.1 range()
range(start, end, step=1)
虽然range()看起来像是一个条件循环,但实际上range()先用指定的条件生成一个列表,然后把列表用于这个for语句
3.2 xrange()
xrange()的作用与range()相似。但它不会在内存里创建列表的完整拷贝,只能被用在for循环中使用。其性能远高于range(),因其不生成整个列表。使用遍历时,xrange()每次只返回一个值。
其他内建函数
与序列相关的函数还有以下几种:
sorted()、reversed()、enumerate()、zip()
4 其他辅助语句
4.1 break语句
break语句可以结束当前循环然后跳转到下条 语句,可以用于while和for循环语句。
4.2 continue语句
当遇到continue语句时,程序会终止当前循环,并忽略剩余语句,然后回到循环的顶端。在开始下一次迭代前,如果是条件循环,将验证条件表达式,如果是迭代循环,将验证是否还有元素可以迭代。只有在验证成功后,才会开始迭代。
4.3 pass语句
pass语句不做任何操作
5 迭代器和iter()函数
在学习迭代器之前,需要明确几个定义:可迭代对象、迭代器
可迭代对象(Iterable)是指可以被直接作用于for循环的对象,可以通过isinstance()判断
isinstance([],Iterable)
迭代器(Iterator)是指可以被next函数调用并不断返回下一个值的对象,亦可以通过isinstance()判断
isinstance([],Iterator)
迭代器继承自可迭代对象,可迭代对象包含_ iter ,而迭代器不仅包含 iter ,还包含 next _方法,因此所有的可迭代对象均可通过内置函数iter()转变成迭代器,却不能被next()函数调用。
5.1 序列迭代器
myTuple = (123, 'xyz', 45.67)fetch = iter(myTuple)while True: try: i = fetch.next() except StopIteration: break
5.2 字典迭代器
字典迭代器会遍历它的键(keys),即语句for eachKey in myDict.keys()可以缩写为for eachKey in myDict。
同时,字典中有三个内建方法来定义迭代:
myDict.iterkeys():通过keys迭代
myDict.itervalues():通过values迭代
myDict.iteritems():通过key/value对来迭代
5.3 文件迭代器
文件迭代器会自动调用readline()方法,循环访问文本文件的所有行。
5.4 创建迭代器
对一个对象调用iter()可以得到它的迭代器。语法如下:
iter(obj)iter(func, sentinel)
当你传递一个参数给iter()时,它会检查你传递的是不是一个序列。如果是,根据索引从0一直迭代到序列结束。另一个创建迭代器的方法是使用类
如果是传递两个参数给iter(),它会重复调用func,直到迭代器的下个值等于sentinel
值得注意的是:
在迭代可变对象时,不能修改它们。详情请见下方
myDidct = {'a':1,'b':2,'c':3,'d':4}
for eachKey in myDict:
print eachKey, myDict[eachKey]
del myDict[eachKey]
在上述例子中,程序试图在迭代中删除键名为eachKey的条目,此时字典的大小将会发生改变。这是python程序所不允许的。
6 列表解析
[expr for iter_var in iterable][expr for iter_var in iterable if cond_expr]
列表解析的一个不足是必会生成所有的数据,用以创建整个列表。这对有大量数据的迭代器有负面效应。而生成器可以很好的解决这个问题
生成器与列表解析相似,但它并不真正创建数字列表,而是返回一个生成器。这个生成器在每次计算出一个条目后,把这个条目产生出来。
(expr for iter_var in iterable if cond_expr)
- python核心编程&条件判断与循环
- python 条件判断与循环
- python条件判断与循环
- Python核心编程----条件和循环
- Python:循环、条件判断
- python条件判断、循环
- 《Python核心编程》第8章 条件和循环 练习
- python核心编程六——条件和循环
- 《Python核心编程》第八章:条件和循环
- Python核心编程(第八章)--条件和循环
- <Python核心编程>条件和循环(包括迭代器、生成器)
- python核心编程(八)— 条件和循环
- Python核心编程---读书笔记:第8章 条件和循环
- python 条件判断和循环
- Python(条件判断和循环)
- Python-条件判断和循环
- Python条件判断和循环
- python条件判断和循环
- bootstrap的模态框锁定可点击区域
- spark 集群部署可用方法
- UIWebView加载自签名Https网页
- Ping测试网络连接状态
- bzoj 1047: [HAOI2007]理想的正方形 (单调队列)
- python核心编程&条件判断与循环
- 加速iOS开发的28个第三方库
- RedisProxy 系统设计与使用说明
- VelocityTracker简介
- Android NDK开发(二) 底层实现HEX的编码和解码
- fastdfs nginx
- 用nginx的反向代理机制解决前端跨域问题
- 翻译:ORB-SLAM: a Versatile and Accurate Monocular SLAM System
- vs使用时报错解决办法总结