python基础--异常,对象和迭代器
- 异常处理
- 面向对象
- 迭代器和生成器
python异常处理
- 下面代码触发了一个FileNotFoundError
>>> open("notexist.txt")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: 'notexist.txt'
- 抛出异常
>>> raise FileNotFoundError
- 异常类型
- 捕获异常使用try,except,finally,else
try:
open(r"c:\Users\kingsoft\Desktop\notexist.txt")
except FileNotFoundError as e:
print ("file not exist...")
except (name1,name2):
print ("io error is true...")
else:
print ("file exist..")
finally:
print ("always do...")
python面向对象
python是完全面向对象的,python中一切都是对象,包括变量,函数等。
- 定义一个对象
class MyException():
pass
- self 和init方法
class Person(): def __init__(self, name):
self.name = name def sayname(self):
print self.name m = Person("joe")
print(m.sayname())
- 区分类和类的实例
class Person():
def __init__(self, name):
self.name = name
Person.name = name
def sayname(self):
print("myname is :" + self.name)
print("myexceptionname is: " + Person.name)
def changeothername(self, name):
Person.name = name
def __del__(self):
print(self.name + "is gone")
m = Person("joe")
m.sayname()
print("m.name : " + m.name)
m.test="tt"
print(m.test)
j = Person("jason")
j.sayname()
j.changeothername(j.name)
m.sayname()
- 类的继承,多态和封装概念
生成器和迭代器
- _iter_方法返回迭代器,迭代器指有next方法的对象
class Fibs(object):
"""docstring for Fibs"""
def __init__(self, max):
self.max = max
self.a = 0
self.b = 1
def __next__(self):
fib = self.a
if fib > self.max:
raise StopIteration
self.a, self.b = self.b, self.a + self.b
return fib
#返回迭代器
def __iter__(self):
return self
fib = Fibs(1000)
for f in fib:
print(f, end= " ")
- 可迭代对象Iterable和迭代器Iterator
- 生成器,生成器通过yield语句快速生成迭代器,让函数变成一个生成器
#斐波那契数列
def getfibs(max):
a = 0
b = 1
while a < max:
a, b= b, a+b
value = a
yield value print(getfibs(1000))
for i in getfibs(1000):
print(i)
- 简单理解生成器
def gen():
yield "hello"
yield "how"
yield "are"
yield "you"
for i in gen():
print(i)
python基础--异常,对象和迭代器的更多相关文章
- python基础-异常(exception)处理
python基础-异常(exception)处理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 程序中难免出现错误,而错误分成两种,即语法错误和逻辑错误.语法错误根本过不了pyth ...
- Python可迭代对象、迭代器和生成器
Python可迭代对象.迭代器和生成器 python 函数 表达式 序列 count utf-8 云栖征文 python可迭代对象 python迭代器 python生成器 摘要: 8.1 可迭代对象( ...
- python基础——获取对象信息
python基础——获取对象信息 当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type( ...
- python基础15上_迭代器_生成器
# 迭代器和生成器 # 迭代器: # 双下方法 : 很少直接调用的方法.一般情况下,是通过其他语法触发的 # 可迭代的 —— 可迭代协议 含有__iter__的方法('__iter__' in dir ...
- Day12 Python基础之生成器、迭代器(高级函数)(十)
https://www.cnblogs.com/yuanchenqi/articles/5769491.html 1. 列表生成式 我现在有个需求,看列表[0, 1, 2, 3, 4, 5, 6, 7 ...
- Python基础(7)——迭代器&生成器
1.列表生成式 [i*2 for i in range(10)] [fun(i) for i in range(10)] 2.生成器 # Author Qian Chenglong #列表生成器 a= ...
- python 可迭代对象与迭代器
生成器函数的工作原理只要 Python 函数的定义体中有 yield 关键字, 该函数就是生成器函数. 调用生成器函数时, 会返回一个生成器对象. 也就是说, 生成器函数是生成器工厂. 调用生成器函数 ...
- Py修行路 python基础 (十一)迭代器 与 生成器
一.什么是迭代? 迭代通俗的讲就是一个遍历重复的过程. 维基百科中 迭代(Iteration) 的一个通用概念是:重复某个过程的行为,这个过程中的每次重复称为一次迭代.具体对应到Python编程中就是 ...
- Python -- 可迭代对象和迭代器
5.9 可迭代对象 可迭代对象: str , list , tuple , set , dict , range 1.在Python中,但凡内部有__iter__方法的对象,都是可迭代对象 2.查看对 ...
- (转)python基础学习-----生成器和迭代器
在Python中,很多对象都是可以通过for语句来直接遍历的,例如list.string.dict等等,这些对象都可以被称为可迭代对象.至于说哪些对象是可以被迭代访问的,就要了解一下迭代器相关的知识了 ...
随机推荐
- ASP.NET Core MVC 源码学习:MVC 启动流程详解
前言 在 上一篇 文章中,我们学习了 ASP.NET Core MVC 的路由模块,那么在本篇文章中,主要是对 ASP.NET Core MVC 启动流程的一个学习. ASP.NET Core 是新一 ...
- React中使用CSSTransitionGroup插件实现轮播图
动画效果,是一个页面上必不可少的功能,学习一个新的东西,当然就要学习,如何用新的东西,用它的方法去实现以前的东西啦.今天呢,我就在这里介绍一个试用react-addons-css-transition ...
- 数据库dbutils
common-dbutils.jarQueryRunnerupdate方法:* int update(String sql, Object... params) --> 可执行增.删.改语句* ...
- Omi新成员omi-router正式发布
原文链接-https://github.com/AlloyTeam/omi/blob/master/tutorial omi-router omi-router是Omi框架专属的router插件,文件 ...
- jemeter正则表达式
- Html5 Canvas笔记(3)-Canvas状态
p{ font-size: 15px; text-indent: 2em; } .alexrootdiv>div{ background: #eeeeee; border: 1px solid ...
- linux从入门到精通学习-NFS
NFS网络文件系统 功能 nfs[network file system] 网络文件系统 是FreBSD系统支持的一种系统,允许在网络 上与其它人共享使用文件或文件夹 采用C/S模式 端口号 在vim ...
- 关于laravel框架的跨域请求/jsonp请求的理解
最近刚接触laravel框架,首先要写一个跨域的单点登录.被跨域的问题卡了两三天,主要是因为对跨域这快不了解,就在刚才有点茅塞顿开的感觉,我做一下大概整理,主要给一些刚接触摸不着头脑的看,哪里写得不对 ...
- [原]使用MessageAnalyzer实时查看远端日志
1. 下载安装Message Analyzer 从Message Analyzer下载链接下载,安装过程从略. 说明:关于Message Analyzer的视频教程,可以在打开后的主界面上看到. 2. ...
- 数据可视化之MarkPoint
MarkPoint是什么效果?如上图,一闪一闪亮晶晶的效果,这是在Echarts中对应的效果.我最早看到的是腾讯的一个Flash的版本,显示当前QQ在线人数的全国分布效果,感觉效果很炫,当时也在想,怎 ...