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等等,这些对象都可以被称为可迭代对象.至于说哪些对象是可以被迭代访问的,就要了解一下迭代器相关的知识了 ...
随机推荐
- (转)Zabbix Agent-Windows平台配置指导
原地址:http://blog.itpub.net/26739940/viewspace-1169538/ zabbix是一个CS结构的监控系统,支持ping,snmp等很多的监控,但是大部分 ...
- javascript . 05 json的组成、for...in 遍历对象、简单数据类型与复杂数据类型的传值与传址、内置对象
对象字面量 JSON var obj = { aaa :999}; var json={"aaa":999,"bbb":888}; "kay&quo ...
- 解决VIM编辑器中文乱码
追加如下内容到/etc/vimr (或者不同的用户家目录下的.vimrc文件中) set encoding=utf8filetype plugin indent onsyntax on" s ...
- Tcl与Design Compiler (七)——环境、设计规则和面积约束
本文属于原创手打(有参考文献),如果有错,欢迎留言更正:此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner 本文的主要内容是讲解( ...
- React Native 可以走多远?
对于大多数APP开发者来说,能够同时开发出Android APP和IOS APP是不是很牛逼,可是它也不是天方夜谭,自从有了一个叫React Native的东西的出现,这一切就变得可以实现了. 那么到 ...
- 3.XML的格式化显示
使用CSS/XSLT格式化XML,可以使XML具有更加多彩的显示效果. 3.1 使用CSS格式化显示XML 使用CSS格式化XML只需要在XML中加上: <?xml-stylesheet typ ...
- android开发之-软件设置保存-快速学会使用SharedPreferences篇-实测
我们在设计软件的时候,需要记录软件设置的基本信息,那么怎么来保存他们呢?我们可以使用SharedPreferences. SharedPreferences是一个xml文件,用来存储软件的常规设置 ...
- Activity的切换动画
Activity在切换或者退出的时候可以自定义动画的,比如AlphaAnimation.TranslateAnimation.ScaleAnimation等自定义的动画.我们在Activity启动的时 ...
- List分组 用于客服对话分组场景
工作用可能会用到会话分组: Message是消息实体对象,里面有toId和fromId 指明接收方ID和发送方Id,通过组合形式"12-22-" 为map的key public M ...
- mysql数据库开启日志
旧版 #开启慢查询 slow_query_log # (超过2秒的SQL语法记录起来,设短一点来记录除错也是一种方法.) long_query_time = 2 log-slow-queries=D: ...