python教程/学习笔记(10)
求时间间隔也是可以的: >>> x='2015-11-1 10:52:47' >>> y='2015-11-1 11:52:47' >>> import datetime
>>> x=datetime.datetime.strptime(str(x),'%Y-%m-%d %H:%M:%S') >>> y=datetime.datetime.strptime(str(y),'%Y-%m-%d %H:%M:%S') >>> y-x
datetime.timedelta(0, 3600)
(y-x).days 结果为0 (y-x).seconds 结果为3600
注意,时间间隔只可以求天数和秒数 七.异常处理
7.1.用try 语句检测异常
7.2.用with open ff as即可便于异常处理
八.面向对象编程
8.1.面向对象编程oop 8.1.1.问题空间,定义:
问题空间是问题解决者对一个问题所达到的全部认识状态,它是由问题解决者利用问题所包含的信息和已贮存的信息主动地构成的。 一个问题一般有下面三个方面来定义:
·初始状态——一开始时的不完全的信息或令人不满意的状况; ·目标状态——你希望获得的信息或状态;
·操作——为了从初始状态迈向目标状态,你可能采取的步骤。 这三个部分加在一起定义了问题空间(problem space)。
对象,定义:属性(是什么)和方法(能做什么)。 8.1.2.面向对象,定义:
传统的程序设计主张将程序看作一系列函数的集合,或者直接就是一系列对电脑下达的指令。 面向对象程序设计中的每一个对象都应该能够接受数据、处理数据并将数据传达给其它对象,因此它们都可以被看作一个小型的“机器”,即对象。
对象指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。
8.2.生成器:
把含有yield语句的函数称作生成器
8.2.1.定义、执行与调用yield这个词在汉语中有“生产、出产”之意,在python中,它作为一个关键词(你在变量、函数、类的名称中就不能用这个了),是生成器的标志。 >>> def g(): ... yield 0 ... yield 1 ... yield 2 >>> g
>>> ge = g()#ge = g():除了返回生成器之外,什么也没有操作
>>> ge.next()#直到这时候,生成器才开始执行,遇到了第一个yield语句,将值返回,并暂停执行(有的称之为挂起)。 0
>>> ge.next()#从上次暂停的位置开始,继续向下执行,遇到yield语句,将值返回,又暂停。 1
>>>ge.next() 2
>>> ge.next()#从上面的挂起位置开始,但是后面没有可执行的了,于是next()发出异常。 Traceback (most recent call last): File \StopIteration
8.2.2.生成器用法: 周天元(一个大列表,想对对每一项并且一项一项地使用,直接复制太占用内存,用生成器) >>> list1=[[1,2],[3,4]] >>> def list2(): for line in list1: tmp=line[:] tmp.append(0) yield tmp raise StopIteration#StopIteration类判断循环是否执行到尾部,如果循环到尾部,则抛出该异常。python会自动引发异常,也可以通过raise显示地引发异常。一旦执行了raise语句,raise后面的语句将不能执行。 >>> for ii in list2(): print ii
[1, 2, 0] [3, 4, 0] >>> list2
[[1, 2, 0], [3, 4, 0]] >>>
8.2.2.yield与return的区别
函数遇到return时,将值返回,结束函数。 遇到yield时,返回值并且暂停(挂起),下一次
8.3.类class
定义:类是由某种特定的元数据所组成的内聚的包。它描述了一些对象的行为规则,而这些对象就被称为该类的实例。类有接口和结构。接口描述了如何通过方法与类及其实例互操作,而结构描述了一个实例中数据如何划分为多个属性。类是与某个层的对象的最具体的类型。类还可以有运行时表示形式(元对象),它为操作与类相关的元数据提供了运行时支持。 类的出现,为面向对象编程的三个最重要的特性(封装性,继承性,多态性),提供了实现的手段。
类是对某一群具有同样属性和方法的对象的抽象。
8.3.1.一些类的基础知识
>>> class BB(object): # 定义类 ... pass
>>> bb = BB() # 将这个类实例化 >>>bb.__class__ # 查看对象类型
<__main__.BB object at 0xb71efe6c> 8.3.2.定义类 定义方法一:
>>> class BB(object): ... pass 定义方法二:
>>> __metaclass__ = type >>> class CC: ... pass ...
>>> cc = CC() >>> cc.__class__
8.3.3.创建类(不用交互式,改用编辑界面) # coding=utf-8
__metaclass__ = type # 这意味着下面是新式类
class Person: # 声明创建一个名为\的类。类的首字母一般大写,若不止一个单词,则每个单词都大写,例如Class HotPerson,这叫“驼峰命名法”。 def __init__(self, name):# 这是函数,类中的函数叫做“方法”,这也是前文所谓“对象的方法。每个函数必须包括self参数,并且作为默认的第一个参数。 selfname = name def getName(self): return selfname
…… 此处隐藏:785字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




