




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python教学培训讲义 2011年06月吴昊远 目录 4 Python中的面向对象 3 Python中的类和函数 1 Python入门及常用语法分析 上 2 Python入门及常用语法分析 下 5 用Python实现简单的聊天功能 6 用Eclipse调试python代码 选 Python的历史 问baiduorgooglePython的IDE搭建服务端 编译 解释器 开发工具eclipse ironPython vs2008 为什么要学PythonPython相对于其他语言的优缺点 Python的应用领域anywhere Python入门及常用语法分析 所有语言的入门程序 HelloWorld HelloWorld的来历BrianKernighan DennisRitchie两位作者的 TheCProgrammingLanguage 一书中第一个范例就是输出Helloworld 该书是最权威的C语言教科书 两位作者正是大名鼎鼎的C语言发明人 昵称 K R 我们的第一个示例print HelloBK Test print1 1print 1 1 Python入门及常用语法分析 扩展包导入ImportpackageNameFrompakcageNameimport注释方式 行 这里是注释内容段 这里是注释内容 转义符 如 print hello nworld printr hello nworld 运算符 Python的算术运算符除了 之外 还有求幂 和取整除 Python的jiben比较运算符 Python的赋值运算符 Python入门及常用语法分析 格式化字符串字符串 s整型数 d无符号整型数 u八进制 o十六进制 x X浮点数 f科学记数法 e E根据数值的不同自动选择 e或 f gExample print Thetotalis 0 2f 56 3598print Thetotalis 0 4f 56 3598print Thetotalis d 56 3598Obj raw input Print 你是 s Obj Python入门及常用语法分析 数据类型基本数据类型 字符串 整数 浮点数 布尔型 集合类型 列表 List 元组 Tuple 字典 Dictionary或Hash 列表 List List的定义 aList 23 或者bList 1 2 3 printbList 1 List常用操作 append del len list 0 5Tuple 元组 的定义aTuple 1 3 5 printaTuple Python入门及常用语法分析 列表对象支持的方法append x count x X在List中的个数extend L Index x insert i x pop x remove x reverse sort Example list append x 将元素x加入list列表list sort 对列表list进行排序元组可以用方括号括起下标做索引元组一旦创建就不能改变列表大部分操作同样适用于元组 Python入门及常用语法分析 Python中的控制结构 Python支持三种不同的控制结构 if for和while 不支持C语言中的switch语句 1 if语句的用法 ifEXPRESSION1 STATEMENT1elifEXPRESSION2 STATEMENT2else STATEMENT3for语句的用法 mylist forstatement forwordinmylist printwordelse 最终执行print Endlist Python入门及常用语法分析 while语句的用法 a 0whilea 5 a a 1printaelse print a svalueisfive Python循环中的控制语句break 终止当前循环continue 跳过本次循环pass 什么事都不错 Python入门及常用语法分析 Python中的字典 字典是python中唯一内置映射数据类型 通过指定的键从字典访问值 即 key value 模式字典的使用 a a aa b bb a c cc a has key a 判断字典中是否存在此值字典的常用方法 has key x keys values items clear copy update x get x y Python入门及常用语法分析 函数定义 deffunction name arg1 arg2 statement returnvalue 函数名 函数名必须以下划线或字母开头 可以包含任意字母 数字或下划线的组合 不能使用任何的标点符号 函数名是区分大小写的 函数名不能是保留字 Python入门及常用语法分析 Python中的类 简单例子 usr bin python encoding utf 8 classtest 定义一个test类desc 这是一个测试类 在类中定义一个属性descdef init self name1 对象构造函数 初始化类self name1 name1defshow self name2 在类中定义一个方法show print helloworld print name1 self name1print name2 name2调用obj test 这是传递给name1的值 生成test类的实例对象printobj desc 调用类中的desc属性obj show 这是传递给name2的值 调用类中的show 方法 Python入门及常用语法分析 类的首字母大写 没有特别原因不要在前面加 T 或者 C 什么的函数和变量尽量全小写 单词间下划线连接python命名规范 约定 类里面 单下划线 开始的成员变量叫做保护变量 意思是只有类对象和子类对象自己能访问到这些变量 而 双下划线 开始的是私有成员 意思是只有类对象自己能访问 连子类对象也不能访问到这个数据 Python入门及常用语法分析 面向对象编程classFoo def init self a b self a aself b bdefshow a self printself adefshow b self printself b init 函数 每次生成类的时候都会执行的 self指向类对象自身 记住 类函数 或者叫做方法 它的第一个参数 self 不要忘记写了foo obj Foo I mA I mB foo obj show a foo obj b Helloworld foo obj show b Python入门及常用语法分析 Exception异常捕获结构 Try ExceptExceptionname Except Else Finally 自定义异常 classMyError Exception passraise关键字可以抛出自定义的异常例 raiseMyErrorPs 一定注意先后顺序 要先定义异常类后才可以使用 而不能上来就用 Python入门及常用语法分析 Python的数据类型都有哪些 Python的控制语句有哪几种 Python中的异常如何捕获在循环语句中 continue 和break分别起什么作用 Python中的类和函数如何定义 如何调用 Python类中如何控制访问权限X y a b printx yx 1y 2x y y x y printx y 基础知识复习 new 方法每一个new styleclass都有一个名为 new 的静态方法 当你调用C args kwds 创建一个C实例时 python内部调用的是C new C args kwds new 方法的返回值x就是该类的实例 在确认x是C的实例以后 python调用C init x args kwds 来初始化这个实例 也就是说 对新类C来讲 语句x C 23 等同于x C new C 23 ifisinstance x C C init x 23 new方法拥有函数工厂的绝大部分弹性 根据实际需求 我们可以让new 返回一个已有的实例或者创建一个新的实例 下面举一个通过重载 new 方法实现独身对象的设计模式的例子 classSingleton object singletons def new cls args kwds ifnotcls singletons has key cls 若还没有任何实例cls singletonscls object new cls 生成一个实例returncls singletonscls 返回这个实例Singleton的所有子类 当然是没有重载 new方法的子类 都只可能有一个实例 如果该类的子类定义了一个init方法 那么它必须保证它的init 方法能够安全的对同一实例进行多次调用 静态方法 staticmethod 静态方法修饰符 表示下面的方法是一个静态方法defastatic print astaticmethod anInstance AClass AClass astatic prints astaticmethodanInstance astatic prints astaticmethod类方法 classmethod 类方法修饰符defaclassmet cls print aclassmethodfor cls name classADeriv ABase passbInstance ABase dInstance ADeriv ABase aclassmet prints aclassmethodforABasebInstance aclassmet prints aclassmethodforABaseADeriv aclassmet prints aclassmethodforADerivdInstance aclassmet prints aclassmethodforADeriv 前面提到的操作函数和语句块是传统的面向过程编程 而编写大型程序 通常采用面向对象编程 类和对象是面向对象编程的两个主要方面 类创建一个新类型 而对象是类的实例 Python没有什么值类型与引用类型之分 它把所有事物统统看作是类 面向对象实质上是一种思想 并不是一门技术 面向对象讲求一切皆对象面向对象的三大特性继承封装多态为什么要面向对象 灵活性 重用性 Python中的面向对象 继承关系可以被传递 如果c1是c2的子类 c2是c3的子类 那么c1也是c3的子类 如果a继承b 那么a具有b的一切属性和方法 Python支持多继承classA def init self passclassB def init self passclassC A B def init self passsex defSay self printself name self sex self ageSuper关键字 继承 Python中的多态并没有完全实现 Python中只是利用多元化来实现部分多态的特性classPerson def init self name self Name nameName name Sex man Age age defSay self message printself Name messageclassRole Person def init self name roleName Person init self name self RoleName roleNameRoleName roleName lightordarkdefSay self message printself RoleName self Name message 多态 o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论