《python基础培训1.ppt》由会员分享,可在线阅读,更多相关《python基础培训1.ppt(78页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、培训内容培训内容 python概述概述 python基础基础 python对象对象 条件和循环条件和循环 函数函数 模块模块 面向对象编程面向对象编程 文件相关文件相关 异常异常 实验实验什么是什么是Python Python 优雅而健壮的编程语言优雅而健壮的编程语言 注重如何解决问题注重如何解决问题Python的特点 高级高级 面向对象面向对象 可移植性可移植性 可扩展性可扩展性 可嵌入性可嵌入性 健壮性健壮性 解释性解释性 易学易读易用易学易读易用为什么是为什么是python 简单易学,功能丰富简单易学,功能丰富 与与c、c+、java相比相比 与其他的脚本语言相比与其他的脚本语言相比 p
2、erl:对符号语法的过度使用:对符号语法的过度使用 javascript:通常嵌入到:通常嵌入到html网页,依赖浏览网页,依赖浏览器器下载和安装下载和安装 下载:下载:http:/www.python.org/ 安装安装 环境变量:环境变量:Path=C:Program FilesPython24Hello World 第一个第一个Python程序程序 print “Hello World!” 命令行命令行 编辑器编辑器Python的语法特色的语法特色 注释注释 (#) 继续继续 () 多个语句构成的代码组多个语句构成的代码组 (:) 缩进分隔缩进分隔 模块模块 help培训内容培训内容 p
3、ython概述概述 python基础基础 python对象对象 条件和循环条件和循环 函数函数 模块模块 面向对象编程面向对象编程 文件相关文件相关 异常异常 实验实验Python的基础的基础变量变量 变量的赋值变量的赋值 astring = “hello” 增量赋值:增量赋值:x += 1 (python2.0开始开始)、 多重赋值:多重赋值:x = y = z = 1 多元赋值:多元赋值:x, y, z = 1, 2, “hello” ( x, y, z) = (1, 2, “hello”) 提高可读性提高可读性Python的基础的基础标识符标识符 第一个字符必须是字母或下划线第一个字符必
4、须是字母或下划线_ 其他字符可以是字母、数字或下划线其他字符可以是字母、数字或下划线 大小写敏感大小写敏感 关键字:关键字:Python的基础的基础无处不在的引用无处不在的引用 变量的定义:在第一次赋值时自动声明变量的定义:在第一次赋值时自动声明 Python是一种动态类型的语言是一种动态类型的语言 无处不在的引用:无处不在的引用: Python中的每个值中的每个值(而不是变量而不是变量)都有一个唯一的都有一个唯一的标识标识 任何变量名之间的赋值都是引用的赋值任何变量名之间的赋值都是引用的赋值 x = 3 y = x z = y培训内容培训内容 python概述概述 python基础基础 py
5、thon对象对象 条件和循环条件和循环 函数函数 模块模块 面向对象编程面向对象编程 文件相关文件相关 异常异常 实验实验Python的对象的对象 任何类型的值都是一个对象任何类型的值都是一个对象 Python对象的三个特性对象的三个特性 身份:用身份:用id()查看查看 类型:用类型:用type()查看查看 值值Python数据类型数据类型概述概述 标准类型标准类型 数字数字 Integer 整型整型 Boolean 布尔型布尔型 Long integer 长整型长整型 Floating point real number 浮点型浮点型 Complex number 复数型复数型 Strin
6、g 字符串字符串 List 列表列表 Tuple 元组元组 Dictionary 字典字典Python数据类型数据类型概述(续)概述(续) 其他的内建类型其他的内建类型 Type 类型类型 Null对象对象 文件文件 Set 集合集合 函数函数 模块模块 类类Python数据类型数据类型标准类型操作符标准类型操作符 对象值的比较对象值的比较 对象身份比较对象身份比较 x=y=3.3 x=3.3;y=3.3 x=3.3;y=2+1.3 x is y 布尔类型操作符布尔类型操作符Python数据类型数据类型标准类型内建函数标准类型内建函数 type() cmp() obj1obj2 返回正数返回正
7、数 Obj1=obj2 返回返回0 str()和和repr()以及以及 操作符操作符 以字符串的方式获得对象的类型、内容、数值等属性以字符串的方式获得对象的类型、内容、数值等属性 eval()Python数据类型数据类型可变对象和不可变对象可变对象和不可变对象 不可变对象:对象创建之后,其值不能更新不可变对象:对象创建之后,其值不能更新 可变对象:对象创建之后,其值可以更新可变对象:对象创建之后,其值可以更新培训内容培训内容 python概述概述 python基础基础 python对象对象 条件和循环条件和循环 函数函数 模块模块 面向对象编程面向对象编程 文件相关文件相关 异常异常 实验实验
8、数字类型数字类型序列类型序列类型字符串字符串列表列表元组元组映射类型映射类型字典字典Python数据类型数据类型数字数字 整型:整型:32位机器上,标准整型的取值范围是位机器上,标准整型的取值范围是-231231-1 布尔型:只有两个值的整型布尔型:只有两个值的整型(0和和1),python2.3开开始支持布尔型始支持布尔型 长整型:标准整型的超级,能表达的数值仅与机长整型:标准整型的超级,能表达的数值仅与机器支持的内存大小有关系。器支持的内存大小有关系。23434333L 双精度浮点型:占双精度浮点型:占8个字节个字节(64位位),其中,其中53位表示位表示底,底,11位表示指数,一位表示符
9、号。位表示指数,一位表示符号。-77.,2.3434433,9.78e-23,float(12) 复数:复数:a=4.56+8j; a.real表示实部,表示实部,a.imag表示表示虚部虚部数字类型的操作符数字类型的操作符 支持不同的数字支持不同的数字类型相加类型相加强制强制类型转换类型转换数字类型的操作符数字类型的操作符(续续)算数操作符算数操作符功能功能expr1*expr2幂运算幂运算+expr结果符号不变结果符号不变-expr对结果符号去负对结果符号去负expr1 * expr2表达式表达式1乘以表达式乘以表达式2expr1 / expr2表达式表达式1除以表达式除以表达式2(传统除
10、或真正除)(传统除或真正除)expr1 / expr2表达式表达式1地板除以表达式地板除以表达式2(python2.2加入加入)expr1 % expr2表达式表达式1对表达式对表达式2取余(模除)取余(模除)expr1 + expr2加加expr1 - expr2减减数字类型的操作符数字类型的操作符(续续) 位操作符(只适用于整型)位操作符(只适用于整型)位操作符位操作符功能功能num单目运算,对数的每一位取反单目运算,对数的每一位取反num1 num2num1左移左移num2位位num1 & num2num1与与num2按位与按位与num1 num2num1异或异或num2num1 | n
11、um2num1与与num2按位或按位或数字类型的内建函数数字类型的内建函数 转换函数:将其他类型的数字转换为相应类型转换函数:将其他类型的数字转换为相应类型 int()、long()、float()、complex() bool() python2.2开始开始 功能函数:功能函数: abs(num) 绝对值绝对值 coerce(num1,num2) 将将num1和和num2转换为同一类转换为同一类型,然后以一个元组的形式返回型,然后以一个元组的形式返回 divmod(num1,num2) 获得商和余数的元组获得商和余数的元组 pow(num1,num2,mod=1) 指数运算指数运算 roun
12、d(flt,ndig=1) 对浮点型进行四舍五入运算对浮点型进行四舍五入运算数字类型的相关模块数字类型的相关模块模块模块介绍介绍decimal十进制浮点运算类(十进制浮点运算类(Decimal)math/cmath标准标准C库数学运算函数。常规数学运算在库数学运算函数。常规数学运算在math模块,复数运算在模块,复数运算在cmath模块模块random多种位随机数生成器多种位随机数生成器序列类型序列类型字符串、列表、元组字符串、列表、元组 序列:成员有序排列,可以通过下标访问其成员序列:成员有序排列,可以通过下标访问其成员 字符串:字符串:hello “hello” hello 列表:列表:2
13、,4,python 2.4, 6.8, python, 1, 3, “hello world” 元组元组:(3.3, 6, “computer”) (4, (“hello”, 9), 1.1, 5.7, 8) 序列有相同的访问方式:序列有相同的访问方式:培训内容培训内容 python概述概述 python基础基础 python对象对象 条件和循环条件和循环 函数函数 模块模块 面向对象编程面向对象编程 文件相关文件相关 异常异常 实验实验数字类型数字类型序列类型序列类型字符串字符串列表列表元组元组映射类型映射类型字典字典序列类型的操作符序列类型的操作符 成员关系操作符:成员关系操作符:in,
14、not in 连接操作符:连接操作符:+ 重复操作符:重复操作符:* 切片操作:切片操作: : : 0indexperson = name, savings, 100.00 hubby = person: # slice copy wifey = list(person) # fac func copy id(x) for x in person, hubby, wifey 浅拷贝浅拷贝 深拷贝深拷贝 copy.deepcopy Import copy hubby = person: # slice copy wifey = copy.deepcopy(person) copy模块:模块:co
15、py()浅拷贝,浅拷贝,deepcopy()深拷贝深拷贝序列类型小结序列类型小结 操作符操作符 in, not in, +, *, , :, : 内建函数内建函数 list, str, unicode, tuple, enumerate, len, max, min, reversed, zip, sorted raw_input, char, ord sum 模块模块 string, copy, re培训内容培训内容 python概述概述 python基础基础 python对象对象 条件和循环条件和循环 函数函数 模块模块 面向对象编程面向对象编程 文件相关文件相关 异常异常 实验实验数字类
16、型数字类型序列类型序列类型字符串字符串列表列表元组元组映射类型映射类型字典字典映射类型映射类型字典字典 key1:value1, key2:value2, key3:value3, 创建字典和赋值创建字典和赋值 dict1= 创建一个空字典创建一个空字典 dict2=name:joe,age:30 dict()方法方法 访问字典中的值访问字典中的值 通过键访问相应的值通过键访问相应的值 dict2name 访问字典的键访问字典的键 dict2.keys(),返回一个列表,返回一个列表 访问字典的值访问字典的值 dict2.values(), 返回一个列表返回一个列表 遍历一个字典遍历一个字典
17、执行中字典的键不能被改变执行中字典的键不能被改变 删除字典元素和字典删除字典元素和字典 del dict2name del dict2字典类型的操作符字典类型的操作符 标准类型操作符标准类型操作符 映射类型操作符映射类型操作符 字典键查找操作符字典键查找操作符 (键键)成员关系操作符成员关系操作符 in, not in字典类型的内建函数字典类型的内建函数 type() str() 比较函数比较函数 cmp()字典类型的内建函数字典类型的内建函数 dict(container):创建字典的工厂函数。如果提创建字典的工厂函数。如果提供了容器类,就用其中的条目填充字典,否则创供了容器类,就用其中的条
18、目填充字典,否则创建一个空字典建一个空字典 len(): 返回键值对的数目返回键值对的数目 hash(): 判断某个对象是否可以作为字典的键判断某个对象是否可以作为字典的键 不可变类型是可哈希的不可变类型是可哈希的字典类型的内建函数字典类型的内建函数(续续)方法名字方法名字操作操作dict.clear()删除字典中的所有元素删除字典中的所有元素dict.copy()返回一个字典的副本(浅拷贝)返回一个字典的副本(浅拷贝)dict.fromkeys(seq, val=None)创建并返回一个新的字典,以创建并返回一个新的字典,以seq中的元素为键,中的元素为键,val为值为值dict.get(k
19、ey, d=none)返回键返回键key对应的值,若该键不存在,返回对应的值,若该键不存在,返回ddict.items()返回一个包含字典中键、值对元组的列表返回一个包含字典中键、值对元组的列表dict.iteritems()返回一个包含字典中键、值对元组的列表的迭代子返回一个包含字典中键、值对元组的列表的迭代子dict.iterkeys()返回键列表的迭代子返回键列表的迭代子dict.itervalues()返回值列表的迭代子返回值列表的迭代子dict.keys()返回字典中键的列表返回字典中键的列表dict.values()返回字典中值的列表返回字典中值的列表dict.pop(key,de
20、fault)与与get相似,但是将键值对弹出相似,但是将键值对弹出dict.setdefault()与与类型,若键不存在,则使用默认值类型,若键不存在,则使用默认值dict.update(dict2)将将dict2的键值对添加到字典的键值对添加到字典dict培训内容培训内容 python概述概述 python基础基础 python对象对象 条件和循环条件和循环 函数函数 模块模块 面向对象编程面向对象编程 文件相关文件相关 异常异常 实验实验条件表达式条件表达式 if语句语句 If expression: expr_true_suit else语句语句 if expression: expr_
21、true_suit else: expr_false_suit elif语句语句(即即else-if) if expression: expr_true_suit elif: expr_true_suit else: none_of_the_above_suit 三元操作符三元操作符 x if xy else y循环表达式循环表达式 while语句语句 while expression: suit_to_repeat for语句语句 For iter_var in iterable: suit_to _repeat 通过序列项迭代通过序列项迭代 通过序列索引迭代(通过序列索引迭代(range(
22、)) 使用项和索引迭代使用项和索引迭代 (enumerate() 与序列相关的内建函数:与序列相关的内建函数:sorted、reversed、enumerate、zip循环表达式循环表达式 break语句 continue语句 pass语句 while-else语句或for-else语句迭代器和迭代器和iter()函数函数 迭代器:有一个迭代器:有一个next()方法的对象方法的对象 StopIteration异常异常 reversed() 返回一个反向迭代器返回一个反向迭代器 enumerate() 使用迭代器使用迭代器 iter() next() for循环循环培训内容培训内容 pytho
23、n概述概述 python基础基础 python对象对象 条件和循环条件和循环 函数函数 模块模块 面向对象编程面向对象编程 文件相关文件相关 异常异常 实验实验函数函数 创建函数创建函数 def function_name(): 函数的参数函数的参数 函数的返回值函数的返回值 调用函数调用函数 局部变量局部变量 global语句语句 文档字符串文档字符串培训内容培训内容 python概述概述 python基础基础 python对象对象 条件和循环条件和循环 函数函数 模块模块 面向对象编程面向对象编程 文件相关文件相关 异常异常 实验实验模块模块 什么是模块什么是模块实现代码重用实现代码重用
24、导入模块导入模块 import from import 导入指定模块的属性导入指定模块的属性 sys模块介绍模块介绍 包含了与包含了与python解释器和它的环境有关的函数解释器和它的环境有关的函数 exit、argv、path time模块介绍模块介绍 time.time() 获取当前时间获取当前时间(整数形式整数形式) time.localtime() 当前时间的当前时间的struct_time形式形式 time.ctime() 当前时间的字符串形式当前时间的字符串形式 Time.mktime() 由由struct_time得到当前的秒数得到当前的秒数模块模块(续续) os模块介绍模块介绍
25、 包含普遍的操作系统功能包含普遍的操作系统功能 os.name 指示正在使用的平台指示正在使用的平台 os.getcwd() 获得当前获得当前python脚本的工作目录脚本的工作目录 os.getenv() 读取环境变量读取环境变量 os.listdir() 返回指定目录下的所有文件和目录名返回指定目录下的所有文件和目录名 os.remove() 删除一个文件删除一个文件 os.system() 用来运行用来运行shell命令命令 os.sep 根据当前操作系统,给出目录分隔符根据当前操作系统,给出目录分隔符 os.path.isfile() 检验给出的路径是不是文件检验给出的路径是不是文件
26、os.path.isdir() 检验给出的路径是不是目录检验给出的路径是不是目录模块模块(续续) 模块的名字模块的名字 _name_ if _name_ = _main_: 创建自己的模块创建自己的模块 dir() 列出模块定义的标识符列出模块定义的标识符培训内容培训内容 python概述概述 python基础基础 python对象对象 条件和循环条件和循环 函数函数 模块模块 面向对象编程面向对象编程 文件相关文件相关 异常异常 实验实验面向对象编程面向对象编程 类:一种数据结构,封装了属性和方法类:一种数据结构,封装了属性和方法 类的定义类的定义 class ClassName(objec
27、t): class documentation string #文档字符串 class_suite #类体 _init_函数:类的构造器函数:类的构造器 实例化实例化 第一步:创建实例对象第一步:创建实例对象 第二步:检查是否实现了第二步:检查是否实现了_init_方法方法面向对象编程面向对象编程 self:相当于:相当于this指针指针 绑定绑定 方法仅仅是类内部定义的函数方法仅仅是类内部定义的函数 方法只有在其所属类拥有实例时,才能被调用方法只有在其所属类拥有实例时,才能被调用 类的属性与实例的属性类的属性与实例的属性 类的属性:仅与被定义的类绑定类的属性:仅与被定义的类绑定(包括数据属性
28、包括数据属性和方法属性和方法属性) 实例属性:独立于其他的类或实例,仅拥有数实例属性:独立于其他的类或实例,仅拥有数据属性据属性面向对象编程面向对象编程 成员的访问类型成员的访问类型 公有,私有?公有,私有? _XXX 不允许不允许from myModule import *导入导入 _XXX 类的私有成员类的私有成员 _XXX_ 系统定义的名字系统定义的名字 继承继承 实现代码的重用实现代码的重用 _init_方法中调用基类的该方法,并传递方法中调用基类的该方法,并传递self参数参数 子类会覆盖父类同名的函数子类会覆盖父类同名的函数 多重继承多重继承典型的典型的python文件结构文件结构
29、培训内容培训内容 python概述概述 python基础基础 python对象对象 条件和循环条件和循环 函数函数 模块模块 面向对象编程面向对象编程 文件相关文件相关 异常异常 实验实验文件相关文件相关 打开文件打开文件 open(name,mode)、file(name,mode) 打开文件失败时会产生一个打开文件失败时会产生一个IOError异常异常文件模式文件模式操作操作r以读方式打开以读方式打开w以写方式打开(必要时清空)以写方式打开(必要时清空)a以追加模式打开(从以追加模式打开(从EOF开始,必要时创建新文件)开始,必要时创建新文件)r+以读写模式打开以读写模式打开w+以读写模式
30、打开(参见以读写模式打开(参见w)a+以读写模式打开(参见以读写模式打开(参见a)rb以二进制读模式打开以二进制读模式打开wb以二进制写模式打开(参见以二进制写模式打开(参见w)ab以二进制追加模式打开(参见以二进制追加模式打开(参见a)rb+以二进制读写模式打开(参见以二进制读写模式打开(参见r+)wb+以二进制读写模式打开(参见以二进制读写模式打开(参见w+)ab+以二进制读写模式打开(参见以二进制读写模式打开(参见a+)文件相关文件相关 写文件写文件 write(str) 向文件写入字符串向文件写入字符串 writelines(seq) 列表或元组为参数,将其写入文件列表或元组为参数,将
31、其写入文件 读文件读文件 read() 读取内容到字符串读取内容到字符串 readline() 读取打开文件的一行读取打开文件的一行 readlines() 读取所有行,并作为列表返回读取所有行,并作为列表返回 文件内移动文件内移动 seek(off,whence=0) 在文件中移动文件指针,从在文件中移动文件指针,从whence偏移偏移off指针(指针(whence=0文件开始,文件开始,1代表当前位置,代表当前位置,2代表文件末尾)代表文件末尾) tell() 返回在文件中的位置返回在文件中的位置 os模块模块培训内容培训内容 python概述概述 python基础基础 python对象对
32、象 条件和循环条件和循环 函数函数 模块模块 面向对象编程面向对象编程 文件相关文件相关 异常异常 实验实验异常异常 异常:程序出现了错误而在正常控制流意外采取异常:程序出现了错误而在正常控制流意外采取的行为的行为 python中常见的异常中常见的异常 NameError: 尝试访问一个未申明的变量尝试访问一个未申明的变量 ZeroDivisionError: 除数为除数为0 SyntaxError: python解释器语法错误解释器语法错误 IndexError: 请求的索引超出序列范围请求的索引超出序列范围 KeyError: 请求一个不存在的字典关键字请求一个不存在的字典关键字 IOEr
33、ror: 输入输入/输出错误输出错误 AttributeError: 尝试访问未知的对象属尝试访问未知的对象属检测和处理异常检测和处理异常 try-except语句语句 带有多个带有多个except的的try语句:语句:检测和处理异常检测和处理异常 处理多个异常的处理多个异常的except语句语句 捕获所有异常捕获所有异常检测和处理异常检测和处理异常 else子句:在子句:在try的范围内没有检测到异常时,执的范围内没有检测到异常时,执行行else字句字句 finally字句:无论异常是否发生,是否捕捉到异字句:无论异常是否发生,是否捕捉到异常,都会执行的代码常,都会执行的代码 try-finally子句:目的不是捕获异常,而是用来维子句:目的不是捕获异常,而是用来维持一致的行为持一致的行为培训内容培训内容 python概述概述 python基础基础 python对象对象 条件和循环条件和循环 函数函数 模块模块 面向对象编程面向对象编程 文件相关文件相关 异常异常 实验实验
限制150内