python基础学习笔记_第1页
python基础学习笔记_第2页
python基础学习笔记_第3页
python基础学习笔记_第4页
python基础学习笔记_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Python基础学习笔记 基于Python语言程序设计基础(第2版) 第一部分初识Python语言 第1章程序设计基本方法 计算机的概念 计算机是根据指令操作数据的设备,具备功能性和可编程性两个总本特性。 计算机技术发展阶段: 1. 第一阶段:1946-1981年,“计算机系统结构阶段”。 2. 2. 第二阶段:1982-2007年,“计算机网络和视窗阶段”。 3. 第三阶段:2008年至今,“复杂信息系统阶段”。 4. 第四阶段:月20年总某个时期开始,人工智能阶段”。 程序设计语言 程序设计语言概述 机器语言:直接使用二进制代码表达指令,可被计算机硬件直接识别和执行。不同 计算机结构的机器

2、指令不同。 汇编语言:使用助记符对应机器语言中的指令,可直接操作计算机硬件。不同计算 机结构的汇编指令不同。 机器语言和汇编语言都直接操作计算机硬件并基于此设计,统称低级语言”。 高级语言:用更接近自然语言的方式描述计算问题。代码只与编程语言有关,与计 算机结构无关。 编译和解释 高级语言按执行方式可分为采用编译执行的静态语言和采用解释执行的脚本语言。 编译是将源代码转换成目标代码的过程。 解释是将源代码逐条转换成目标代码同时逐条运行目标代码的过程。 计算机编程 我学习Python的原因: 1. 通过编程实现自动化,提高效率。 2. 3.通过编程了解一个新的广阔世界。 学习一门编程语言(重点在

3、于练习) 1. 掌握该语言的语法 2. 结合问题设计程序结构 3. 掌握解决问题的能力 语言概述 Python语言的发展 Python语言是一个语法简洁、跨平台、可扩展的开源通用脚本语言。 Python语言诞生于1990年,创世人为Guidoo 2000年10月,Python正式发布,2010年,Python系列发布最后一版()。 2008年12月,Python正式发布,解释器内部采用完全而向对象的方式实现,代 价是系列版本无法向下兼容系列的既有语法。 Python已经是遗产,Python是这个语言的现在和未来。 编写Hello程序 print (Hel Io V/or Id*) Python

4、语言的特点 语法简洁 可跨平台 应用广泛 支持中文 强制可读:通过强制缩进体现语句间的逻辑关系提高了程序的可读性 模式多样:语法层面同时支持面向过程和面向对象两种编程方式 粘性扩展:通过接口和函数集成其他语言编写的代码 开源理念 库类丰富 Python语言开发环境配置 Python解释器 IDLE开发环境 交互式启动 文件式启动 Python语言集成开发环境PyCharm 程序的基本编写方法 IPO程序编写方法 每个程序都有统一的运算模式:输入数据.处理数据和输出数据。这种朴素的运算模式形 成了基本的程序编写方法:IPO ( Input, Process, Output)方法。 IPO不仅是程

5、序设计的基本方法,也是描述计算问题的方式。 理解问题的计算部分 使用计算机解决问题的6个步骤: 1. 分析问题 2. 划分边界 3. 设计算法 4. 编写程序 5. - 6. 调试测试 7. 升级维护 第2章Python程序解析 Python程序语法元素分析 Python程序包括格式框架、注释、变量、表达式、分支语句、循环语句、函数等语法元 素。 程序的格式框架 Python语言釆用严格的“缩进”来表明程序的格式框架,缩进表达了所属关系 在代码编写中缩进可通过Tab键实现,也可用多个空格实现,建议采用4个空格方 式书写代码 注释 注释是辅助性文字,不被执行 单行注释:以#开头 #这是注释 多行

6、注释:以 (3个单引号)开头和结尾 这是注释 这也是注释 这还是注释 命名 命名是为变量关联标识符的过程,用于确保程序元素的唯一性 标识符由字母、数字、下划线(和汉字)等字符及其组合构成 标识符的首字符不能是数字,且中间不能出现空格 标识符对大小写敏感 保留字 保留字(Keyword)也被称为关键字,是被编程语言内部定义并保留使用的标识符 Python的标准库提供了一个keyword模块,可以输出当前版本的所有关键字: import keyword ls= Is len(ls) 33 Python 3有33个保留字 1. True 2. Fa I se 3. None 4. and 5. as

7、 6. assert 7. break 8. 9. c I ass 10. cont i nue 11. def 12. de I 13. e I i f 14. e I se 15. except 16. final I y 17. ,变量N二表达式1, 分支语句 分支语句的作用是根据判断条件选择程序执行路径 if条件1: 语句块1 el if: 语句块2 else: 语句块N 循环语句 循环语句的作用是根据判断条件确定一段程序是否再执行一次致多次 while ( 语句块2 for i in range 循环次数): 语句块1 input ()函数 使用input ()函数从控制台获得用户输

8、入 input ()函数以字符串类型返回结果 =input (H提示性文字”) input(M 请输入:“) eva I ()函数 eval (字符串)函数的作用是间输入的字符串变成Python语句并执行 x二eval (input(M请输入:*) Python语法允许在表达式内部标记之间增加空格,适当增加空格有助于提高代码可读 性。但应注意,不能改变与缩进相关的空格数量、不能再变量名等命名中间增加空格。 print()函数 print ()函数可以输出字符信息,也可以用字符的形式输出变量 输出字符信息时,可以直接将待输出内容传递给print 0函数 输出变量值时,print 0函数用槽格式和

9、过formatO方法将变量和字符串结合到一 起输出 函数 函数可以理解为对一组表达特定功能表达式的封装,将特定功能代码编写在一个函 数里,使程序模块化更好,便于阅读和复用 可通过保留字def自定义函数 对象(库)的调用 . ()表示调用一个对象a的方法 0,或调用一个函数库a中的函数 () 面向对象编程是一种基于对象的编程范式。对象是事物的一种抽象,是一个实体,包含属 性和方法两部分。属性是对象中的变量,方法是对象能完成的操作。 通过保留字import引用函数库 1. import库名:程序调用库中所有函数,使用库中函数格式如下 库名函数名(函数参数) import turtle (100)

10、#控制画笔向当前行进方向前进100 2. from库名import : from库名import函数名,函数名,函数名 from库名import “ * 是通配符,表示所有函数 调用库中函数不再需要使用库名,格式如下 函数名(函数参数) from turtle import * fd(100) turtle库语法元素分析 tuet le库是一个图形绘制函数图 绘图坐标体系 tuetle库绘制图形的基本框架是一个海龟在坐标系中爬行(前进、后退、左转、 右转),其轨迹形成了绘制图形。 初始位置位于坐标(0,0),行进方向为水平右方。 使用()函数设置主窗体的大小和位置。 (width, he i

11、ght, startx, stary) width, height分别表示窗口宽度和高度,值是整数表示像素值,值吋小数表示与 屏幕的比例 startx, stary分别表示窗口左侧和顶部与屏幕左侧和顶部的像素距离,如果值是 none,窗口位于屏幕水平/垂直中央 画笔控制函数 ():抬起画笔,之后移动画笔不绘制形状 别名:0、0 (width):设置画笔宽度,width无参数政为None时返回当前画笔宽度 别名:0 0:设置画笔颜色,无参数输入时返回当前画笔颜色。 (colorstr ing)参数表示颜色的字符串;(r, g, b)参数表示颜色对应的RGB值 颜色颜色字符串GRB十六进制 颜色

12、颜色字轩串 GRB 十六进制 黑色 b 1 ack 0,0,0 #FFFFFF 白色 wh i te 255,255, 255 #000000 灰色 $ grey 190,190,190 #BEBEBE 形状绘制函数 (distance):控制画笔向当前行进方向前进distance,值为负数表示向相反方向 前进 别名:(d i stance) (to_angle):控制画笔绘制方向,(to angle)参数是绝对方向角度值(turtle 库的坐标体系以正东方向为绝对0度、正北方向为绝对90度) (radius, extent=None):根据半径radius绘制extent角度的弧形 radi

13、us值为正时,半径在画笔左侧,值为负吋,半径在画笔右侧; extent为正时,画笔逆时针前进,extent为负时,画笔顺时针倒退,extent不设 置参数或参数为None时,绘制整圆。 第二部分深入Python语言 第3章基本数据类型 数字类型 Python语言提供整数.浮点数.复数3种数字类型 整数类型 整数类型共有4种进制表示:十进制、二进制、八进制和十六进制 默认情况整数采用十进制,其他进制需要增加引导符号 进制种类 引导符号 描述 十进制 无 默认情况 二进制 Ob 或 0B 由字符0和1组成 八进制 0o 或 00 由字符0到7组成 十六进制 Ox 或 0X 由字符0到9、a到f、A

14、到F组成 浮点数类型 浮点数类型与数学中实数的概念一致,表示带有小数的数值 Python语言要求所有浮点数必须带有小数部分(可以是0), 区分浮点数和证书 类型 浮点数有2中表示方法:十进制表示和科学计数法表示 科学计数法使用字母e或E作为幕的符号,以10为基数,含狡如下: e=a*10b2 由于计算机内部采用二进制运算,浮点数进行超过15位数字计算会产生误差 使用整数表达浮点数的方法是高精确度运算的基本方法之一。 对于高精度科学计算外的绝大部分运算而言,浮点数类型已圧够可靠,一般认为浮 点数类型没有范围限制,运算结果准确 复数类型 复数类型表示数学中的复数 复数可以看作是二元有序实数对(a,

15、b),表示为a+bj,其中a是实数部分,简称实部,b是 虚数部分,简称虚部。 Python语言中,复数的虚部通过E缀j或J”表示 +89j 复数类型中实数部分和虚数部分的数值都是浮点数类型,对于实数乙 可用和分别 获得它的实部和虚部 数字类型的操作 Python解释器为数字类型提供数值运算操作符.数值运算函数、类型转换函数等 操作方法 内置的数值运算操作符(共9个) x/y 操作符 描述 x与y之和 x与y之差 x与y之积 x与y之商 eal和imag将复数的实部和虚部分别转换 字符串类型及其操作 字符串类型的表示 字符串是字符的序列表示 单引号字符串:单引号表示可以使用双引号作为字符串的一部

16、分 双引号字符串:双引号表示可以使用单引号作为字符串的一部分 三引号字符串:三引号表示可以使用双引号“、单引号作为字符串的一部分 也可以换行 Python字符串提供区间访问方式,采用N:M格式。表示从字符串中从N到M (不 包含M)的字符串,可以混合使用正向递增序号和反向递减序号 反斜杠字符()在字符串中表示转义 1. n表示换行 2. ? 3. 表示反斜杠 4. 表示单引号 5. 表示双引号 6. t表示制表符(Tab) 基本的字符串操作符(共5个) 操作符描述 x+y 连接两个字符串X与y x*n或n*x复制n次字符串x x i n s如果x是s的子字符串,返回Ture,否则返回Fa I

17、se stri索引,返回第i个字符 ? str N:M 切片,返回索引第N到第M个字符 内置的字符串处理函数(共6个) 函数描述 len(x) 返回字符串x的长度,也可返回其他组合数据类型元素个数 strCx) 返回任意类型x所对应的字符串形式 返回Unicode编码x对应的单字符 chr (x) ord C x*) 返回单字符表示的Unicode编码 函数 描述 hex (x) 返回整数X对应十六进制数的小写形式字符串 oct (x) 返回整数X对应八进制数的小写形式字符串 内置的字符串处理方法(共43个,常用16个) 在Python解释器内部,所有数据类型都采用而向对象的方式实现,封装为一

18、个类 字符串是一个类,具有类似. ()形式的字符串处理函数,称为方法 方法 描述 0 返回字符串str的副本,全部字符小写 0 1 返回字符串str的副本,全部字符大写 0 当str所有字符都是小写时,返回Ture,否则返回False 0 当str所有字符都是可打印的,返回Ture,否则返回 Fa 1 se 0 当str所有字符都是数字时,返回Ture,否则返回False 0 当str所有字符都是空格,返回Ture,否则返回Flase 方法 描述 (suff ix, start, end) str start: end以 suff i x 结尾返回 Ture,否则返回 F1 ase (pref

19、 ix, start, end) str start: end以 pref i x 开始返回 Ture,否则返回 F1 ase (sep二None, maxsp1it二T) 返回一个列表,由str根据sep被分割的部分构成 (sub, start 匚 end 返回str start:end中sub子串出现的次数 (old, new, count) 返回字符串str的副本,所有old子串被替换为new,如果 count给出,则前count次old出现被替换 (width, f i 1 Ichar) 字符串居中函数 (chars) 返回字符串str的副本,在其左侧和右侧去掉chars中列 出的字符

20、 (width) 返回字符串str副本,长度为widtho不足部分在其左侧添 加0 0 返回字符串str的一种排版格式 (iterable) 返回一个新字符串,由组合数据类型iterable变量的每个 元素组成,元素间用str分隔 字符串类型的格式化 字符串通过format ()方法进行格式化处理 字符串格式化用于解决字符串和变量同时输出时的格式安排 format ()方法的基本使用 字符串format ()方法的基本使用格式:字模板符串.format 逗号分隔的参数) 模板字符串由一系列槽组成,用来控制修改字符串中嵌入值出现的位置(槽用表 示,如果中没有序号,则按照出现顺序替换) 如需输入,

21、采用表示; 表示 ”圆周率1 2是0 ”format (”无理数”M) format ()方法的格式控制 format ()方法模板字符串的槽除了包括参数序号,还可包括格式控制信息。槽内部 样式:参数序号: 格式控制标记 格式控制标记用于控制参数显示时的格式 填充 对齐 宽 度 精度 类型 引 导 符 号 用于填 充的单 个字符 左对 齐、右对 齐、八居中 对齐 槽的 设定 输出 宽度 数字的千 位分隔符 适用于整 数和浮点 数 浮点数小数 部分的精度 或字符串的 最大输出长 度 整数类型 b, c,d,o, x,X;浮点 数类型e, E, f,% 填充指宽度内除了参数外的字符采用什么方式表示

22、,默认为空格 对齐指参数在宽度内输出时的对齐方式 宽度指当前槽的设定输出字符宽度,若实际参数长度比设定值大,则使用参数实 际长度 ,用于显示数字类型的千分位分隔符 .对于浮点数,表示小数部分输出的有效位数;对于字符串,表示输出的最 大长度 类型表示输出整数好浮点数类型的格式规划。 对于整数类型, 1. b:整数的二进制; 2. c:整数对应的Unicode字符; 3. d:整数的十进制: 4. o:整数的八进制 5. 5. X:整数的小写十六进制 6. X:整数的大写十六进制 7. 对于浮点数类型, 8. e:浮点数对应的小写字母e的指数形式 9. E:浮点数对应的大写字母E的指数形式 10.

23、 f:浮点数的标准浮点形式 11. %:浮点数的百分形式 第4章程序的控制结构 程序的基本结构 ) 程序流程图 起止框表示一个程序的开始和结束 判断框判断一个条件是否成立,并根据判断结果不同选择不同的执行路径 处理框表示一组处理过程 输入/输出框表示数据输入或结果输出 注释框增加程序的解释 流向线以带箭头的直线或曲线形式指示程序的执行路径 连接点将多个流程图连接到一起 程序的基本结构 程序有3种基本结构组成:顺序结构、分支结构和循环结构 顺序结构:程序按照线性顺序依次执行 分支结构:程序根据条件判断结果而选择不同向前执行路径的一种运行方式(分支 结构包括单分支结构和二分支结构;p97) 循环结

24、构:程序根据条件判断结果向E反复执行(根据触发条件不同,循环结构包 括条件循环和遍历循环) 程序的分支结构 单分支机构:if语句 汗语句语法格式: if 条件: 语句块 语句块是if条件满足后执行的一个或多个语句序列 语句块中语句通过与if所在行形成缩进表达包含关系 if语句首先评估条件的结果值,若为Ture则执行语句块中的语句序列;若为 False则跳过语句块中的语句 if语句中条件部分可以使用任何能够产生Ture或Fa I se的语句或函数 形成判断条件最常见的方式是采用关系操作符 关系操作符 ( 数学符号 操作轩含义 大于 = a 大于等于 二二 二 等于 1 二 不等于 Python使

25、用“二“表示赋值语句,使用性二“表示等于 二分支结构:if-else语句 if-eIse语句语法格式: if 条件: 语句块1 else 条件: 语句块2 二分支语句用于区分条件的两种可能 if条件满足时执行语句块1 if条件不满足时执行语句块2 二分支结构的简洁表达(适合通过判断返回特定值) 麦达式1 if 条件else表达式2 表达式1/2 一般是数字类型或字符串类型的一个值 多分支结构:if-el i f-e I se语句 if-el if-eIse语句语法格式: if 条件1: 语句块1 elif条件 2: 语句块2 else: 语句块N Python依次评估寻找第一个结果为Ture的

26、条件,执行该条件下的语句并跳过整个 if-el if-e I se结构,执行后面的语句 如果没有任何条件成立,执行else下面的语句块 e I se语句是可选的 程序的循环结构 遍历循环:for语句 for语句语法格式 for 循环变董in 遍历结构: 语句块 遍历循环可以理解为从遍历结构中中逐一提取元素,放在循环变量中,对于所提取 的每个元素执行一次语句块 循环N次: for i in rang(N): 语句块 遍历文件的每一行: for Iine in fi: 语句块 遍历字符串S for c in s: 语句块 遍历列表Is for item in Is: 语句块 遍历循环的扩展模式 f

27、or 彼环变量in 遍历结构: 语句块1 else: 语句块2 当for彳盾环正常执彳亍后,程序会继续执行e I se语句 遍历循环:while语句 while语句语法格式 while 条件: 语句块 当条件判断为Ture时,循环体重复执行语句块中的语句;当条件为Flase时,循 环终止,执行与whi le同级别缩进的后续语句 无限循环的扩展模式 wh i I e BBTT break语句与cont inue语句的区别是,break语句结束整个循环过程,不再判断执 行循环的条件是否成立;continue语句只结束本次循环,而不终止整个循环的执行 for循环和while循环中都有一个e I se

28、扩展用法。e I se语句仅在循环正常遍历了所有内 容或由于条件不成立而结束循环的条件下执行。 for s in * PYTHON : if s =”T”: continue print(s,end二”) else: print(”正常退出”) PYHON正常退出 for s in ”PYTHON”: if s =“T”: break print (s,end二”) else: printC*正常退出”) PY random库的使用 random库采用梅森璇转算法生成伪随机数序列,可用于除随机性要求更高的加解密算法 外的大多数工程应用 Python内置的random库主要用于产生各种分布的伪随

29、机数序列 random库提供9个常用函数 函数 描述 seed (a二None) 初始化随机数种子,默认值为当前系统时间 random () 生成一个,之间的随机小数 rand in t (a, b) 生成一个a, b之间的整数 getrandbits (k) 生成一个k比特长度的随机整数 randrange (start, stop , st ep) 生成一个start, stop之间以step为步数的随机整 数 uni form (a, b) 生成一个a, b之间的随机小数 choice (seq) 从序列类型,例如列表中随机返回一个元素 i shuff1e (seq) 将序列类型中的元素

30、随机排列,返回打乱E的序列 sample(pok, k) 从pop类型中随机选取k个元素,以列表类型返回 生成随机数之前可通过seed 0函数指定随机数种子,随机数种子一般是一个整 数,只要种子相同,每次生成的随机数序列也相同 程序的异常处理 Python通过try、except等保留字提供异常处理功能 异常处理:try-except语句 Python使用try-except语句实现异常处理 try: 语句块1 except 异常类型: 语句块2 异常的高级用法 try-except语句可以支持多个except语句 try: 语句块1 except 异常类型1: 语句块2 except 异常奨

31、型N: 语句块N+1 except : 语句块N+2 异常语句还可以与else和final ly保留字配合使用 try: 语句块1: except 异常类型1: 语句块2 else: 语句块3 finally: 语句块4 第5章函数和代码复用 函数的基本使用 函数的定义 函数是一段具有特定功能的、可重用的语句组 使用函数主要有两个目的:降低编程难度和代码重用 Python使用def保留字定狡一个函数 def函数名(参数列表): 函数体 return返回值列表 函数名可以是任何有效的Python标识符 参数列表是调用该函数是传递给它的值,可以有零个(保留圆括号)、一个或多个 (用逗号分隔) 函数

32、体是函数每次被调用是执行的代码 当需要返回值时使用保留字return和返回值刘表,否则函数可以没有return语 句,在函数体结束时将控制权返回给调用者 函数调用和执行的一般形式 函数名 ( 参数列表) 函数的调用过程 1. 调用程序在调用处暂停执行 2. 在调用时将实参复制给形参 3. 执行函数体语句 4. 函数调用结束给出返回值,程序回到调用前的暂停处继续执行 I ambda函数 Iambda函数又称匿名函数,将函数名作为函数结果返回 函数名=lambda参数列表 : 表达式 Iambda函数与正常函数一样,等价于下而表达式: def函数名(参数列表): return表达式 I ambda

33、函数用于定狡简单的、能够在一行内表示的函数,返回一个函数类型 f=Iambda q, w,e,r:q+w+e+r f(1,2,3,4) 10 Iambda函数用于需要函数对象的场景 函数的参数传递 函数可定义可选参数,使用参数的位置或名称传递参数值,根据函数中变量的不同作用域 有不同的函数返回值方式 可选参数和可变数量参数 函数定义时部分参数可直接为存在默认值的参数指定默认值,当函数被调用时如果 没有传入对应的参数值则使用函数定狡时的的默认值替代 默认参数必须指向不变对象 函数调用时需要按顺序输入参数,可选参数必须定义在非可选参数后 dfe r (str,times二2): print (st

34、r*times) r(T) TT r(T) TTTT 函数定义时可设计可变数量参数,通过在参数前加星号(*)实现 带有星号的可变参数只能出现在参数列表最调用时这些参数被单指元组类型传 递到函数中 def vfunc (a,*b) print (type (b) for n in b: a+=n return a vfunc (1,2, 3,4.5) class tuple 15 #1+2二3;3+3二6;6+4二10;10+5二15 参数的位置和名称传递 函数定狡时实参默认采用按照位置顺序的方式传递给函数,这种方式在参数很多的 情况下可读性较差 Python提供了按照形参名称输入实参的方式,调

35、用函数吋指定参数名称,参数之 间的顺序可任意调整 函数的返回值 return语句用来退出函数并将程序返回到函数被调用的位置继续执行 return语句可同时将0个、1个或多个函数运算后的结果返回给函数被调用的位置 函数可以没有return,此时函数不返回值 函数也可以用return返回多个值,多个值以元组类型保存 def func (a, b): return b, a s二func (壮”,2) print (s, type(s) (2, *t*) datet i me库的使用 Python时间处理的标准函数库datetime提供里一批显示日期和时间的格式化方法。 datet i me库概述

36、datetime库可以从系统中获得吋间,并以用户选择的格式输出 datetime库以格林威治时间为基础,每天由3600*24秒精准定爻 datetime库以类的方式提供多种日期和时间 1. 2. :日期表示类,坑人表示年、月、日等。 3. :时间表示类,可表示小时、分钟、秒、毫秒等。 4. :日期和时间表示类,功能覆盖date和time类。 5. :与时间间隔有关的类。 6. :与时区有关的信息表示类。 datetime 库解析(datetime 类) 类的使用方式是首先创建一个datetime对象,然后通过对象的方法和属性显示时 间 创建datet ime对象的3种方法: 1.0 :返回一个

37、datetime类型,表示当前日期和时间,精确到毫秒 from datetime import datetime now 二() now (2018, 5, 13, 16, 49, 38, 627464) 2.0:返回一个datetime类型,表示当前日期和时间的UTC (世界标准时间)表 示,精确到毫秒 from datetime import datetime utcnow=() utcnow (201 Uli*: txt二(ch, ”#将文本中特殊字符替换为空格 return txt hamletTxt = getText () words = 0 counts= for word in

38、 words: countsword二(word, 0)+1 for word in excludes: del (countsword) items=l ist () (key=lambda x:x1,reverse=True) pr int(items) for i in range(20): word,count二 itemsi pr int (* (0:5 *. format (word, count) 三国演义人物出场统计 中文文章需要分词才能进行词频统计,需要用到jieba库。 import j ieba excludes二”将军”,”却说“,“荆州”,”二人不可”,”不能如此”,

39、”商议“厂如何”,”主公 ”军士”广左右”军马”,”引兵1次EI ”,“大喜”天下”,”于是”东吴”广今日 ”不敢”,”魏兵”陛下”人马”不知”,”都督”一人”汉中” #与人名无关的词汇库集合 txt=open (HD: pythonfenci 三国涼义.txt, r ”,encoding= * utf-8*). read () words= (txt)#j ieba 库分词 counts= for word in words: if len(word)=1:#排除单个字符的分词结果 continue elif word二二”孔明“ or word二二”孔明曰J#同一人物不同名字的处理 rwo

40、rd=w诸葛亮” elif word二二”关公 or word二二“云长 rword=,t 关羽” elif word二二”玄徳” or word二二”玄徳曰”: rword=H 刘备” el if word二二孟德or word=M丞相: rword=,ff 操” elif word= ”子龙” or word二二”赵子龙”: r word二赵云 else: rword=word countsrword = (rword, 0) + 1 for word in excludes: del (countsword) items=l ist () (key=Iambda x:x1, revers

41、e二True) for i in range(10): word, count = iternsi print (0:5H. format(word, count) Python之禅 The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit Simple is better than complex Complex is better than comp Ii cated. Flat is better than nested Sparse is better

42、 than dense. Readability counts Special cases arerVt special enough to break the rules Although practicality beats purity Errors should never pass si lent Iy. Unless exp Iicitly silenced In the face of ambiguity, refuse the temptation to guess. There should be one and preferably only one obvious way

43、 to do it. Although that way may not be obvious at first unless you* re Dutch Now is better than never. Although never is often better than *r ight* now. If the i mp I erne ntation i s hard to If the imp I ementation is easy to Namespaces are one honking great s = Gur Mra bs Clguba, ol Gvz explain,

44、its a bad idea explain, it may be a good idea idea let/s do more of those! Crgref Ornhgvshy vf orggre guna htyl Rkcyvpvg vf orggre guna vzcyvpvg Fvzcyr vf orggre guna pbzcyrk Pbzcyrk vf orggre guna pbzcyvpngrq. Syng vf orggre guna arfgrq. Fcnefr vf orggre guna qrafr ErnqnovyvgI pbhagf Fcrpvny pnfrf

45、nera*g fcrpvny rabhtu gb oernx gur ehyrf. Nygubhtu cenpgvpnyvgl orngf chevgI. Reebef fubhyq ar i re cnff fvyragyl Hayrff rkcyvpvgyI fvyraprq. Va gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff. Gurer fubhyq or bar naq cersrenoyl bay I bar 一一boivbhf jnl gb qb vg. Nygubhtu gung jnl znl abg or bo

46、ivbhf ng svefg hayrff Ibher Qhgpu. Ab j vf orggre guna ar ire Nygubhtu ar ire vf bsgra orggre guna *evtug* ab j Vs gur vzcyrzragngvba vf uneq gb rkcynva, vg*f n onq vqrn Vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn Anzrfcnprf ner bar ubaxvat terng vqrn yrgf qb zber bs gubfr! d = )

47、 for c in (65, 97) :#chr (65) chr (97)为 az、AZ for i in range(26): dchr(i+c) = chr(i+13) % 26 + c)#将彼环编号增加了 13,直接好处是原文和密丈之间的相互 转换可以使用同一个程序 print ( * join(c, c) for c in s) 第7章文件和数据格式化 文件的使用 Python能够以文本和二进制两种方式处理 文件概述 文件是一个储存在辅助存储器上的数据序列,可以包含任何数据內容 文件包括文本文件和二进制文件两种类型 文本文件一般由单一特定编码的字符组成,可被看作是存储在礁盘上的长字符

48、串 二进制文件直接由比特0和比特1组成,由于没有统一字符编码,职能当做字节流 无论是创建为文本文件还是二进制文件,都可以用文本文件方式”和二进制文 件方式”打开,但打开后操作方式不同。 采用文本方式读入文件,文件经过编码形成字符串,打印出有含义的字符 釆用二进制方式打开文件,文件被解析为字节流 文件的打开关闭 Python通过解释器内置的openO函数打开一个文件,并实现该文件与一个程序变 量的关联 变量名=open (丈件名 , 打开模式) 文件名可以是文件的实际名字,也可以是包含完整路径的名字 打开模式用于控制使用何种方式打开文件,openO提供7种基本的打开模式 文件的打开模式 文件的打

49、开模 式 含义 ,r 只读模式,如果文件不存在,返回异常Fi leNotFoundError,默认值 w 覆盖写模式,文件不存在则创建,存在则完全覆盖 ,x, 创建写模式,文件不存在则创建,存在则返回异常 FileExi stsError 文件的打开模 式 含义 ,a 追加写模式,文件不存在则创建,存在则在文件最后追加内容 ,b 二进制文件模式 吐 文本文件模式,默认值 与r/w/x/a -同使用,在原功能基础上增加同吋读写功能 打开模式使用字符串方式表示 文件使用结束后要用close 0方法关闭,释放文件的使用授权 变量名.closeO 文件的读写 当文件以文本文件方式打开时,读写按照字符串

50、方式,采用当前计算机使用的编码 或指定编码 当文件以二进制文件方式打开时,读写按照字节流方式 文件內容读取方法 操作方法 含义 . readal 1 () 读入整个文件内容,返回一个字符串或字节流 . read (s i ze=T) 从文件中读入整个文件内容,如果给出参数,读入前 size长度的字符串或字节流 read 1i ne(s i ze=-1) 从文件中读入一行内容,如果给出参数,读入该行前 size长度的字符串或字节流 read Ii nes(h i nt二一 1) 从文件中读入所有行,以没行为元素形成一个列表,如 果给出参数,读入hint行 备注:返回字符串或字节流取决于文件打开模

51、式 #逐行读入内容到内存有利于优化程序执行速度 fname= input (*请输入要打开的文本文件) foopen(fname, * r*) for I ine in fo:#处理一彳亍数据 pr int (Iine) 文件内容写入方法 方法 含义 . wr i te (s) 向文件写入一个字符串或字节流 wr itelines (1 ines) 将一个元素全为字符串的列表写入文件 . seek (offset) 改变当前文件操作指针的位置,offset的值:0文件 开头;1 当前位置:2文件结尾 一二维数据的格式化和处理 数据组织的维度 一维数据由对等关系的有序致无序数据构成,采用线性方式

52、组织,对应数学中的数 组和集合等概念 无论采用任何方式分隔和表示,一维数据都具有线性特点 二维数据也称表格数据,由关联关系数据构成,采用表格方式组织,对应数学中的 矩阵 高维数据由键值对类型的数据构成,采用对象方式组织,属于整合度更好的数据组 织方式 高维数据相比一维和二维数据能表达更加灵活和复杂的数据关系 对于数据处理,需要考虑存储格式以及表示和读写两个问题 一二维数据的存储格式 一维数据是最简单的数据组织类型,常用空格、逗号以及其他符号或符号组合分隔 二维数据由多条一维数据构成,可以看做是一维数据的组合形式 逗号分隔数值的存储格式叫做CSV (Comma-Separated Va I ue

53、s,逗号分隔值)格 式,它是一种通用的、相对简单的文件格式,尤其应用在程序之间转務表格数据 CSV格式应用基本规则 1. 纯文本格式,通过单一编码表示字符 2. 以行为单位,开头不留空行,行之间没有空行 3. 每行表示一个一维数据,多行表示二维数据 4. 以逗号(英文,半角)分隔每列数据,数据列为空也要保留逗号 5. 对于表格数据,可以包含或不包含列名,包含时列名放置在文件第一行 一二维数据的表示和读写 CSV文件的每一行是一维数据,可以使用Python中的列表类型表示 整个CSV文件是一个二维数据,由表示每一行的列表类型作为元素,组成一个二维 列表 列1,列2,列3,列4,列5 1,1,1,

54、1,1 2, 2, 2, 2, 2 3, 3, 3, 3, 3 4, 4, 4, 4, 4 5, 5, 5, 5, 5 导入CSV格式数据到列表 fo=open(* *, * r *) ls= for line in fo: line=Cn*, ) C, *)# 以splitC, *)方法从CSV丈件中获得内容时,每行最后一个元素后面包含了 一个换行符 (fn*),应去掉。 pr int (Is) 0 列 r, 1 列 列 列 4,列 51 *1 V, T, T, T, 2,*2*, 2J, 3,3, 3S 3,V,M*, 4 *5*, *5访.5 逐行处理CSV格式数据 fo=open(*

55、*, * r *) ls= for line in fo: line 二 Cn;) ls=(/) ins=* * for s in Is: ins+=* t*. format (s) pr int (ins) 列1 列2 列3 列4 列5 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 44 4 4 4 55 5 5 5 一维数据写入CSV文件 对于Python列表变量保存一维数据结果,可以用字符串的joinO方法组成逗号分 隔形式在通过文件的write0方法存储到CSV文件中 fo=open(* *, a*) ls=*6 C,join(ls) + ,n,) 0 fr二open(* *, * r*,encoding二UTF-8) fw二open(1, w1, encodi ng二 * UTF-81) ls= for line in fr: #将CSV文件中的二维数据读入到列表变量 line=Cn*, *) C/) for i in range(len(Is) :#遍历列表变量 if i=0: #跳过第一行列名 continue for j in range(len(lsi): lsi j=str (int (lsi j)*2) for row in Is: #将列表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论