为了账号安全,请及时绑定邮箱和手机立即绑定

Python 条件和循环容易忽视的知识点

标签:
Python

文/CinderellaM

文章主要记录了条件和循环中的一些自己忽视的知识点,和一些自己在应用过程中出现的错误,系统的对这部分知识进行梳理与补充

else语句

Python的缩进使用强制使代码正确对齐,让程序员决定else属于哪一个if,所以在Python中出现'悬挂else'的情况是不会出现的

'''即使没有else与最近的if配对,程序依然正确运行,通过强制对齐,else正确的与外层的if配对'''if a>0:    if b>0:        passelse:    pass

while-else语句

'''只要while循环正常结束,而不是被break打断,else子句就会执行'''while x>0:    if y>0:        break
    passelse:    pass

for-else语句

同while-else

条件表达式(三元操作符)

X if C else Y
对应C的三元操作符
C? X:Y

x=1y=5r=x if x>y else y
print r>>5

for语句

用于序列类型

序列的三种基本迭代方法

通过序列项迭代
'''性能好,速度快'''for eachName in nameList:       pass
通过序列索引迭代
'''接近C的使用方式'''for nameIndex in range(len(nameList)):       pass
使用项和索引迭代
'''两全其美的方法,既获得了索引,也获得了序列元素'''for i,eachLee in enumerate(nameList):        pass

用于迭代器类型

迭代器并不代表循环条目的集合。使用迭代器做for循环的代码与使用序列条目几乎完全相同

range()内建函数

range(start,end,step=1)
range(start,end)
range(end)

xrange()内建函数

与序列相关的内建函数

sorted()

reversed()

enumerate()

zip()

迭代器和iter()函数

迭代器规则

迭代的意思是重复做一些事很多次,就像在循环中做的那样,只要该对象实现了iter方法,就能进行迭代。该方法会返回一个迭代器(iterator),所谓的迭代器就是具有next方法的对象。在调用next()方法时,迭代器会返回它的下一个值。如果迭代器没有值可以返回,就会引发一个StopIteration异常,这并不代表错误发生,只是告诉外部调用者,迭代完成。

使用迭代器

序列

'''对一个对象调用iter()就可以得到它的迭代器,调用迭代器的next()方法可以获得它的下个项
   reversed()内建函数返回一个反序访问的迭代器
   enumerate()内建函数返回一个具有索引和元素的迭代器'''i=iter([1,2,3])
i.next()
r=reversed([1,2,3])
r.next()
e=enumerate([1,2,3])
e.next()

字典

字典的迭代器会遍历它的键,语句for eachKey in myDict.keys()可缩写为for eachKey in myDict

文件

文件对象生成的迭代器会自动调用readline()方法,语句for eachLine in myFile.readline() 可缩写为 for eachLine in myFile


作者:CinderellaM
链接:https://www.jianshu.com/p/ef836fd11c6b

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消