版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python基础学习笔记
基于《Python语言程序设计基础(第2版)》
第一部分初识Python语言
第1章程序设计基本方法
1.1计算机的概念
•计算机是依据指令操作数据的设备,具备功能性和可编程性两个基本特性。
・计算机技术发展阶段:
1.第一阶段:1946-1981年,“计算机系统结构阶段”。
2.其次阶段:1982-2007年,“计算机网络和视窗阶段”。
3.第三阶段:2008年至今,“困难信息系统阶段”。
4.第四阶段:月2。年后某个时期起先,“人工智能阶段”。
1.2程序设计语言
程序设计语言概述
・机器语言:干脆运用二进制代码表达指令,可被计算机硬件干脆识别和执行。
不同计算机结构的机器指令不同。
・汇编语言:运用助记符对应机器语言中的指令,可干脆操作计算机硬件。不同
计算机结构的汇编指令不同。
机器语言和汇编语言都干脆操作计算机硬件并基于此设计,统称“低级语言”c
•高级语言:用更接近自然语言的方式描述计算问题。代码只与编程语言有关,
与计算机结构无关。
编译和说明
高级语言按执行方式可分为采纳编译执行的静态语言和采纳说明执行的脚本语言。
•编译是将源代码转换成目标代码的过程。
•说明是将源代码逐条转换成目标代码同时逐条运行目标代码的过程。
计算机编程
•我学习Python的缘由:
1.通过编程实现自动化,提高效率。
2.通过编程了解一个新的广袤世界。
•学习一门编程语言(重点在于练习)
1.驾驭该语言的语法
2.结合问题设计程序结构
3.驾驭解决问题的实力
1.3Python语言概述
1.3.1Python语言的发展
Python语言是一个语法简洁、跨平台、可扩展的开源通用脚本语言。
・Python语言诞生于1990年,创世人为Guidoo
・2000年10月,Python2.0正式发布,2010年,Python2.x系列发布最终
一版(2.7)o
・2008年12月,Python3.0正式发布,说明器内部采纳完全面对对象的方式
实现,代价是3.x系列版本无法向下兼容2.x系列的既有语法。
Python2.x已经是遗产,Python3.x是这个语言的现在和将来。
编写HeUo程序
L3.3Python语言的特点
•语法简洁
•可跨平台
•应用广泛
・支持中文
・强制可读:通过强制缩进体现语句间的逻辑关系提高了程序的可读性
模式多样:语法层面同时支持面对过程和面对对象两种编程方式
•粘性扩展:通过接口和函数集成其他语言编写的代码
•开源理念
•库类丰富
1.4Python语言开发环境配置
•Python说明器
・IDLE开发环境
•交互式启动
•文件式启动
•Python语言集成开发环境---PyCharm
1.5程序的基本编写方法
1.5.1IPO程序编写方法
每个程序都有统一的运算模式:输入数据、处理数据和输出数据。这种朴实的运算
模式形成了基本的程序编写方法:IPO(Input,Process,Output)方法。
IPO不仅是程序设计的基本方法,也是描述计算问题的方式。
理解问题的计算部分
命名
•命名是为变量关联标识符的过程,用于确保程序元素的唯一性
•标识符由字母、数字、下划线(和汉字)等字符与其组合构成
•标识符的首字符不能是数字,且中间不能出现空格
•标识符对大小写敏感
保留字
♦保留字(Keyword)也被称为关键字,是被编程语言内部定义并保留运用的标
识符
♦Python的标准库供应了一个keyword模块,可以输出当前版本的全部关键字:
Python3有33个保留字
1.True
2.False
3.None
4.and
5.as
6.assert
7.break
8.class
9.continue
10.def
1l.del
12.elif
13.else
14.except
15.finally
16.for
17.from
18.global
19.if
20.import
21.in
22.is
23.lambda
24.nonlocal
25.not
26.or
27.pass
28.raise
29.return
30.try
31.while
32.with
33.yield
字符串
•字符串(string)类型在程序中表示文本
•字符串是字符的序列,可以依据单个字符或字符片段进行索引
•字符串包括两种序号体系:正向递增序号、反向递减序号
•正向递增序号:O~L-1
・反向递减序号:-L-1
•区间访问方式:[N:M](不包含M),可以混合运用正向递增序号和反向递减
序号
字符串比较本质上是字符串对应Unicode编码的比较
赋值语句
・Python语言中,表示"赋值”,将右侧的计算结果赋给左侧变量
•同步赋值语句:可同时给多个变量赋值
v变量1>,…,v变量N>=<表达式1>,…产表达式N>
分支语句
•分支语句的作用是依据推断条件选择程序执行路径
ifv条件1>:
v语句块1>
elik条件2>:
v语句块2>
else:
<语句块N>
循环语句
•循环语句的作用是依据推断条件确定一段程序是否再执行一次或多次
while(v条件>):
v语句块1>
v语句块2>
foriinrange(〈循环次数〉):
v语句块1>
input。函数
•运用input。函数从限制台获得用户输入
•input。函数以字符串类型返回结果
<>=input(”提示性文字”)
eval()函数
•eval(v字符串〉)函数的作用是间输入的字符串变成Python语句并执行
Python语法允许在表达式内部标记之间增加空格,适当增加空格有助于提高代码
可读性。但应留意,不能变更与缩进相关的空格数量、不能再变量名等命名中间增
加空格。
print。函数
•print。函数可以输出字符信息,也可以用字符的形式输出变量
•输出字符信息时,可以干脆将待输出内容传递给print。函数
•输出变量值时,print。函数用槽格式和过format。方法将变量和字符串结合到
一起输出
函数
・函数可以理解为对一组表达特定功能表达式的封装,将特定功能代码编写在一
个函数里,使程序模块化更好,便于阅读和复用
•可通过保留字def自定义函数
2.2对象(库)的调用
•<a>.vb>()表示调用一个对象<a>的方法<b>(),或调用一个函数库<a>中的函数
<b>()
面对对象编程是一种基干对象的编程范式。对象是事物的一种抽象,是一个实体,
包含属性和方法两部分。属性是对象中的变量,方法是对象能完成的操作。
•通过保留字import引用函数库
1.importv库名>:程序调用库中全部函数,运用库中函数格式如下
V库名〉.〈函数名〉(V函数参数》)
2.fromv库名〉import:
fromv库名〉importv函数名,函数名,…,函数名〉
fromv库名,import*,“*”是通配符,表示全部函数
•调用库中函数不再须要运用库名,格式如下
〈函数名〉(〈函数参数〉)
2.3turtle库语法元素分析
tuetle库是一个图形绘制函数图
绘图坐标体系
•tuetle库绘制图形的基本框架是一个海龟在坐标系中爬行(前进、后退、左转、
右转),其轨迹形成了绘制图形。
•初始位置位于坐标(0,0),行进方向为水平右方。
・运用turtle.setup。函数设置主窗体的大小和位置。
turtle.setup(width,height,startx,stary)
•width,height分别表示窗口宽度和高度,值是整数表示像素值,值时小数表示
与屏幕的比例
・startx,stary分别表示窗口左侧和顶部与屏幕左侧和顶部的像素距离,假如值
是none,窗口位于屏幕水平/垂直中心
画笔限制函数
•turtle.penupO:抬起画笔,之后移动画笔不绘制形态
另!)名:turtle.pd()>turtle.down。
•turtle.pensize(width):设置画笔宽度,width无参数或为None时返回当前
画笔宽度
别名:turtle.width。
・turtle.pencolor():设置画笔颜色,无参数输入时返回当前画笔颜色。
(colorstring)参数表示颜色的字符串;(r,g,b)参数表示颜色对应的RGB值
颜色颜色字符串GRB十六进制
黑色black0,0,0#FFFFFF
白色white255,255,255#000000
灰色grey190,190,190#BEBEBE
形态绘制函数
・turtle.fd(distance):限制画笔向当前行进方向前进distance,值为负数表示
向相反方向前进
另!|名:turtle.forward(distance)
•turtle.seth(to.angle):限制画笔绘制方向,(to_angle)参数是肯定方向角度
值(turtle库的坐标体系以正东方向为肯定。度、正北方向为肯定9。度)
•turtle.circle(radius,extent=None):依据半径radius绘制extent角度的弧
形
radius值为正时,半径在画笔左侧,值为负时,半径在画笔右侧;
extent为正时,画笔逆时针前进,extent为负时,画笔顺时针倒退,extent不
设置参数或参数为None时,绘制整圆。
其次部分深化Python语言
第3章基本数据类型
3.1数字类型
•Python语言供应整数、浮点数、复数3种数字类型
整数类型
•整数类型共有4种进制表示:十进制、二进制、八进制和十六进制
•默认状况整数采纳十进制,其他进制须要增加引导符号
进制种类引导符号描述
十进制无默认状况
二进制0b或0R由字符。和1组成
八进制0o或00由字符0到7组成
十六进制Ox或0X由字符。到9、a到f、A到F组成
浮点数类型
•浮点数类型与数学中实数的概念一样,表示带有小数的数值
•Python语言要求全部浮点数必需带有小数部分(可以是0),一区分浮点数和
证书类型
•浮点数有2中表示方法:十进制表示和科学计数法表示
科学计数法运用字母e或E作为第的符号,以10为基数,含义如下:
•由于计算机内部采纳二进制运算,浮点数进行超过15位数字计算会产生误差
运用整数表达浮点数的方法是高精确度运算的基本方法之一。
•对于高精度科学计算外的绝大部分运算而言,浮点数类型已足够牢靠,一般认
为浮点数类型没有范围限制,运算结果精确
复数类型
•复数类型表示数学中的复数
复数可以看作是二元有序实数对(a,b),表示为a+bj,其中a是实数部分,简称实部,
b是虚数部分,简称虚部。
•Python语言中,复数的虚部通过后缀T或“J”表示
•复数类型中实数部分和虚数部分的数值都是浮点数类型,对于实数z,可用
z.real和z.imag分别获得它的实部和虚部
3.2数字类型的操作
♦Python说明器为数字类型供应数值运算操作符、数值运算函数、类型转换函数
等操作方法
内置的数值运算操作符(共9个)
操作符描述
x+yx与y之和
x-yx与y之差
x*yx与y之积
x/yx与y之商
x//yx与y之整数商,即不大于x与y之商的最大整数
x%yx与y之商的余数,也称为模运算
-XX的负值
+xX本身
x**yx的y次塞,即x^y
・操作符运算的结果可能会变更数字类型,3种数字类型之间存在一种渐渐扩展
的关系:整数一浮点数一复数
•上述9个二元数学操作符都有与之对应的增加赋值操作符
x+=y等价于x=x+y
♦模运算(%)在编程中主要应用于具有周期规律的场景
内置的数值运算函数(共6个)
函数描述
abs(x)x的肯定值
divmod(x,y)(x〃y,x%y),输出为二元组形式(也称为元组类型)
pow(x,y[,z])(x**y)%z,[…]表示该参数可省略
对x四舍五入,保留ndigits位小数,round(x)返回四舍
round(x[,ndigits])
五人的整数值
max(xl,x2,…,xn)xl,x2,…,xn的最大值,n没有限定
min(xl,x2,…,xn)xl,x2,…,xn的最小值,n没有限定
内置的数字类型转换函数(共3个)
函数描述
int(x)将x转换为整数,x可以是浮点数或字符串
float(x)将x转换为浮点数,x可以是整数或字符串
函数描述
生成一个复数,实部为re,虚部为im,re可以是整数、浮
compexireijmj)点数或字符串,im可以是整数或浮点数但不能为字符串
•int()函数将浮点数类型转换为整数时,小数部分会干脆被舍弃
复数不能干脆转换为其他数字类型,可通过.real和.imag将复数的实部和虚部
分别转换
3.3字符串类型与其操作
字符串类型的表示
•字符串是字符的序列表示
•单引号字符串:’单引号表示可以运用“双升号”作为字符串的一部分’
•双引号字符申:”双引号表示可以运用‘单引号'作为字符串的一部分”
•三引号字符串:"三引号表示可以运用“双引号”、’单引号作为字符串的一部分
也可以换行
191
•Python字符串供应区间访问方式,采纳[N:M]格式。表示从字符串中从N到M
(不包含M)的字符串,可以混合运用正向递增序号和反向递减序号
•反斜杠字符(\)在字符串中表示转义
1.\n表示换行
2.\\表示反斜杠
3.''表示单引号
4.\”表示双引号
5.\t表示制表符(Tab)
基本的字符串操作符(共5个)
操作符描述
x+y连接两个字符串x与y
x*n或n*x复制n次字符串x
xins假如x是s的子字符串,返回Ture,否则返回False
str[i]索引,返回第i个字符
str[N:M]切片,返回索引第N到第M个字符
内置的字符串处理函数(共6个)
函数描述
len(x')返回字符串x的长度,也可返其他组合数据类型元素个数
str('x')返回随意类型x所对应的字符串形式
chr(x)返回Unicode编码x对应的单字符
ord('x')返回单字符表示的Unicode编码
hex(x)返回整数x对应十六进制数的小写形式字符串
oct(x)返回整数x对应八进制数的小写形式字符串
内置的字符串处理方法(共43个,常用16个)
•在Python说明器内部,全部数据类型都采纳面对对象的方式实现,封装为一
个类
•字符串是一个类,具有类似<a>.vb>()形式的字符串处理函数,称为方法
方法描述
str.lower()返回字符串str的副本,全部字符小写
str.upperQ返PI字符串str的副本,全部字符大写
当str全部字符都是小写时,返回
str.islower()
Ture,否则返回False
当str全部字符都是可打印的,返回
str.isprintableO
Ture,否则返回False
当str全部字符都是数字时,返回
str.isnumeric()
Ture,否则返回False
当str全部字符都是空格,返回Ture,
str.isspacef)
否则返回Flase
str[start:end]以suffix结尾返回
str.endswith(suffix[,start[,end]])
Ture,否则返回Flase
str.srartswith(prefix[,start[,end]])
str[start:end]以prefix起先返回
方法描述
Ture,否则返回Flase
返回一个列表,由str依据sep被分割
str.split(sep=None,maxsplit=-1)
的部分构成
返回str[start:end]中sub子串出现的次
str.count(sub[,start[,end]]
数
返回字符串str的副本,全部old子串被
str.replace(old,new[,count])替换为new,假如count给出,则前
count次old出现被替换
str.centerfwidth[,fillchar])字符串居中函数
返回字符串str的副本,在其左侧和右侧
str.strip([chars])
去掉chars中列出的字符
返回字符串str副本,长度为width。不
str.zfill(width)
足部分在其左侧添加。
str.formatQ返回字符串str的一种排版格式
返回一个新字符串,由组合数据类型
str.join(iterable)iterable变量的每个元素组成,元素间用
str分隔
3.4字符串类型的格式化
•字符串通过format。方法进行格式化处理
字符串格式化用于解决字符串和变量同时输出时的格式支配
format。方法的基本运用
•字符串format。方法的基本运用格式:<字模板符串〉.format(<逗号分隔的参
数》)
•模板字符串由一系列槽组成,用来限制修改字符串中嵌入值出现的位置(槽用{}
表示,假如{}中没有序号,则依据出现依次替换)
•如需输入仇采纳{{表示{;}}表示}
format。方法的格式限制
•fsmat()方法模板字符串的槽除了包括参数序号,还可包括格式限制信息。槽内
部样式:k参数序号〉:〈格式限制标记〉}
•格式限制标记用于限制参数显示时的格式
〈填(宽
■
■V对齐〉V.精度〉V类型,
充〉度〉
浮点数小
用于数字的千
引〈左对槽的数部分的
填充位分隔符整数类型
导齐、>右设定精度或字
的单适用于整b,c,d,o,x,X;浮点
符对齐、A输出符串的最
个字数和浮点数类型e,E,f,%
号居中对齐宽度大输出长
符数
度
•v填充〉指宽度内除了参数外的字符采纳什么方式表示,默认为空格
•V对齐〉指参数在宽度内输出时的对齐方式
■〈宽度〉指当前槽的设定输出字符宽度,若实际参数长度比设定值大,则运用参
数实际长度
•〈,>用于显示数字类型的千分位分隔符
■〈.精度〉对于浮点数,表示小数部分输出的有效位数;对于字符串,表示输出的
最大长度
•V类型》表示输出整数好浮点数类型的格式规划。
对于整数类型,
1.b:整数的二进制;
2.c:整数对应的Unicode字符;
3.d:整数的十进制;
4.o:整数的八进制
5.x:整数的小写十六进制
6.X:整数的大写十六进制
对于浮点数类型,
7.e:浮点数对应的小写字母e的指数形式
8.E:浮点数对应的大写字母E的指数形式
9.f:浮点数的标准浮点形式
10.%:浮点数的百分形式
第4章程序的限制结构
4.1程序的基本结构
程序流程图
•起止框表示一个程序的起先和结束
•推断框推断一个条件是否成立,并依据推断结果不同选择不同的执行路径
•处理框表示一组处理过程
•输入/输出框表示数据输入或结果输出
•注释框增加程序的说明
•流向线以带箭头的直线或曲线形式指示程序的执行路径
•连接点将多个流程图连接到一起
程序的基本结构
■程序有3种基本结构组成:依次结构、分支结构和循环结构
•依次结构:程序依据线性依次依次执行
•分支结构:程序依据条件推断结果而选择不同向前执行路径的一种运行方式
(分支结构包括单分支结构和二分支结构;P97)
•循环结构:程序依据条件推断结果向后反复执行(依据触发条件不同,循环结
构包括条件循环和遍历循环)
4.2程序的分支结构
单分支机构:正语句
if语句语法格式:
语句块是if条件满意后执行的一个或多个语句序列
•语句块中语句通过与if所在行形成缩进表达包含关系
♦if语句首先评估条件的结果值,若为Ture则执行语句块中的语句序列;若为
False则跳过语句块中的语句
•if语句中条件部分可以运用任何能够产生Ture或False的语句或函数
形成推断条件最常见的方式是采纳关系操作符
关系操作符数学符号操作符含义
<<小于
>>大于
<=小于等于
>=大于等于
===等于
!=不等于
・Python运用『”表示赋值语句,运用”=="表示等于
二分支结构:if-else语句
if-else语句语法格式:
♦二分支语句用于区分条件的两种可能
•if条件满意时执行语句块1
•if条件不满意时执行语句块2
二分支结构的简洁表达(适合通过推断返回特定值)
•表达式1/2一般是数字类型或字符串类型的一个值
多分支结构:if-elif-else语句
if-elif-else语句语法格式:
・Python依次评估找寻第一个结果为Ture的条件,执行该条件下的语句并跳过
整个if-elif-else结构,执行后面的语句
•假如没有任何条件成立,执行else下面的语句块
・else语句是可选的
4.3程序的循环结构
遍历循环:for语句
for语句语法格式
・遍历循环可以理解为从遍历结构中中逐一提取元素,放在循环变量中,对于所
提取的每个元素执行一次语句块
循环N次:
遍历文件的每一行:
遍历字符串s
遍历列表1s
遍历循环的扩展模式
当for循环正常执行后,程序会接着执行else语句
遍历循环:while语句
while语句语法格式
•当条件推断为Ture时,循环体重复执行语句块中的语句;当条件为Flase时,
循环终止,执行与while同级别缩进的后续语句
无限循环的扩展模式
♦当while循环正常执行后,程序会接着执行else语句中的内容,else语句只在
循环正常执行后才执行
循环保留字:break和continue
•break用来跳出最内层for或while循环,脱离该循环后程序从循环代码后接
着执行
•continue用来结束当前当次循环,即跳出循环体中下面尚未执行的语句,但不
跳出当前循环
•break语句与continue语句的区分是,break语句结束整个循环过程,不再推
断执行循环的条件是否成立;continue语句只结束本次循环,而不终止整个循
环的执行
for循环和while循环中都有一个else扩展用法。else语句仅在循环正常遍历了
全部内容或由于条件不成立而结束循环的条件下执行。
4.4random库的运用
random库采纳梅森旋转算法生成伪随机数序列,可用于除随机性要求更高的加
解密算法外的大多数工程应用
-Python内置的random库主要用于产生各种分布的伪随机数序列
•random库供应9个常用函数
函数描述
seed(a=None)初始化随机数种子,默认值为当前系统时间
randomQ生成一个[0.0,L0]之间的随机小数
randint(a,b)生成一个[a,b]之间的整数
getrandbits(k)生成一个k比特长度的随机整数
生成一个[start,stop]之间以step为步数的随
randrange(start,stop[,step])
机整数
uniform(a,b)生成一个[a,b]之间的随机小数
choice(seq)从序列类型,例如列表中随机返回一个元素
将序列类型中的元素随机排列,返回打乱后的
shuffle(seq)
序列
从pop类型中随机选取k个元素,以列表类型
sample(pok,k)
返回
•生成随机数之前可通过seed。函数指定随机数种子,随机数种子一般是一个整
数,只要种子相同,每次生成的随机数序列也相同
4.5程序的异样处理
Python通过try、except等保留字供应异样处理功能
异样处理:try-except语句
・Python运用try-except语句实现异样处理
异样的高级用法
・try-except语句可以支持多个except语句
♦异样语句还可以与else和finally保留字协作运用
第5章函数和代码复用
5.1函数的基本运用
函数的定义
函数是一段具有特定功能的、可重用的语句组
・运用函数主要有两个目的:降低编程难度和代码重用
•Python运用def保留字定义一个函数
・函数名可以是任何有效的Python标识符
•参数列表是调用该函数是传递给它的值,可以有零个(保留圆括号)、一个或
多个(用逗号分隔)
•函数体是函数每次被调用是执行的代码
•当须要返回值时运用保留字return和返回值刘表,否则函数可以没有return
语句,在函数体结束时将限制权返回给调用者
函数调用和执行的一般形式
函数的调用过程
1.调用程序在调用处暂停执行
2.在调用时将实参复制给形参
3.执行函数体语句
4.函数调用结束给出返回值,程序回到调用前的暂停处接着执行
lambda函数
♦lambda函数又称匿名函数,将函数名作为函数结果返回
lambda函数与正常函数一样,等价于下面表达式:
•lambda函数用于定义简洁的、能够在一行内表示的函数,返回一个函数类型
♦lambda函数用于须要函数对象的场景
5.2函数的参数传递
函数可定义可选参数,运用参数的位置或名称传递参数值,依据函数中变量的不同
作用域有不同的函数返回值方式
可选参数和可变数量参数
・函数定义时部分参数可干脆为存在默认值的参数指定默认值,当函数被调用时
假如没有传入对应的参数值则运用函数定义时的的默认值替代
•默认参数必需指向不变对象
・函数调用时须要按依次输入参数,可选参数必需定义在非可选参数后
♦函数定义时可设计可变数量参数,通过在参数前加星号(*)实现
•带有星号的可变参数只能出现在参数列表最终,调用时这些参数被单指元组类
型传递到函数中
参数的位置和名称传递
♦函数定义时实参默认采纳依据位置依次的方式传递给函数,这种方式在参数许
多的状况下可读性较差
•Python供应了依据形参名称输入实参的方式,调用函数时指定参数名称,参数
之间的依次可随意调整
函数的返回值
•return语句用来退出函数并将程序返回到函数被调用的位置接着执行
・return语句可同时将。个、1个或多个函数运算后的结果返回给函数被调用的
位置
•函数可以没有retum,此时函数不返回值
•函数也可以用return返回多个值,多个值以元组类型保存
5.4datetime库的运用
Python时间处理的标准函数库datetime供应里一批显示日期和时间的格式化方
法。
datetime库概述
datetime库可以从系统中获得时间,并以用户选择的格式输出
・datetime库以格林威治时间为基础,每天由3600*24秒精准定义
datetime库以类的方式供应多种口期和时间
1.datetime.date;口期表示类,坑人表示年、月、口等。
2.datetime.time:时辰表示类,可表示小时、分钟、秒、毫秒等。
3.datetime.datetime:日期和时辰表示类,功能覆盖date和time类。
4.datetime.timedelta:与时间间隔有关的类。
5.datetime.tzinfo:与时区有关的信息表示类。
datetime库解析(datetime类)
•datetime.datetime类的运用方式是首先创建一个datetime对象,然后通过对
象的方法和属性显示时间
创建datetime对象的3种方法:
1.datetime.nowf):返回一个datetime类型,表示当前日期和时间,精确到毫
秒
2.datetime.utcnowf):返回一个datetime类型,表示当前日期和时间的UTC
(世界标准时间)表示,精确到毫秒
3.干脆运用datetime。构造一个口期和时间对象:
datetime(Y,M,D,hour=0,minute=0,second=0,microsecond=0)
-创建datetime对象后,可利用该对象的属性显示时间
(以上述“some”为例)
・datetime类的常用属性
属性描述
固定返回datetime的最小时间对象,
some.min
datetime(l,l,1,0,0)
固定返回datetime的最大时间对象,
some.max
datetime(9999,12,31,23,59,59,999999)
some.year返回some包含的年份
some.month返回some包含的月份
some.day返回some包含的日期
some.hour返回some包含的小时
some.minute返回some包含的分钟
属性描述
some.second返回some包含的秒钟
some.microsecond返回some包含的毫秒
・datetime类的常用时间格式化方法
属性描述
some.isofomatf)采纳ISO8601标准显示时间
some.isoweekdayO依据日期计算星期
some.strftime()依据格式化字符串format进行格式显示的方法
•strftime。方法用于输出特定格式时间
格式化字符串对象取值范围
%Y年0001~9999
%m月1~12
%B月名January-December
格式化字符串对象取值范围
%b月名缩写Jan-Dec
%d日期01-31
%A星期Monday-Sunday
%a星期缩写Mon-Sum
%H小时(24h制)00-23
%I小时(12h制)01-12
%p上、下午AM/PM
%M分钟00-59
%S秒00-59
5.5代码复用和模块化设计
•当代编程语言从代码层面采纳函数和对象两种抽象方式,分别对应面对过程和
面对对象两种编程思想
函数是程序的一种基本抽象方式,它将一系列代码组织起来通过命名供应其他
程序运用,任何其他代码只有输入参数即可调用函数,更新函数功能时,全部
被调用处的功能都被更新。
•对象是程序的一中高级抽象方式,它将程序代码组织为更高级的类。对象包括
表征对象特征的属性和代表对象操作的方法。
・模块化设计值通过函数或对象的封装功能将程序划分成主程序、子程序和子程
序间关系的表达。
•模块化设计的两个基本要求:
1.紧耦合:尽可能合理划分功能块,功能块内部耦合紧密
2.松耦合:模块间关系尽可能简洁,功能块之间耦合度低
5.6函数的递归
递归的定义:函数定义中调用函数自身的方式称为递归
•数学经典递归案例——阶乘
n!=n(n-l)(n-2)...(l)
n!=l(A=Q
n!=n(n-l)!(otherwise
•递归的两个关键特征
1.存在一个或多个基例,基例不须要再次递归,是确定的表达式
2.全部递归链要以一个或多个基例结尾
递归的运用方法
・运用递归肯定要留意基例的构建,否则递归无法返回
5.7科赫曲线绘制
科赫曲线属于分形几何分支,它的绘制过程体现了递归思想
5.8Python内置函数
Python供应68个内置函数
•abs()
•all()
•any()
•asci()
•bin()
•bool()
•chr()
•complexf)
・dict()
・divmod()
•eval()
•float()
•hash()
•hex()
•id()
・input()
•int()
・len()
•list。
•max()
・min()
•oct()
•open()
・ord()
・pow()
・print()
•rangeQ
•reversedf)
•round()
•set()
•sorted()
•str()
•tuple()
•type()
•zip。
•bytesf)
•delattrf)
・bytearrayO
・callable()
•classmethod()
•compiled
•dir()
•exec()
•enumerated
・filter()
•formatf)
•frozensetf)
•getattrf)
・globalsQ
•hasattr()
•help()
・isinstanceQ
・issubclass()
•iter()
•localsQ
•map()
•memoryview()
•next()
•objectf)
•properytyO
•repr()
•setattr()
・slice()
・staticmethod()
•sum()
•superf)
・vars()
・_import()_
第6章组合数据类型
6.1组合数据类型概述
组合数据类型为多个类型或不同类型数据供应单一表示,使数据操作更有序、更简
洁。组合数据类型分为序列类型、集合类型和映射类型3类。
序列类型
序列类型是一维元素向量,元素间存在先后关系,通过序号访问,元素之间不排他。
1.字符串(str)可以看做是单一字符的有序组合,属于序列类型
•字符串被看做基本数据类型
2.元组(tuple)是包含零个或多个数据项的不行变序列类型
•一个元组可作另一个元组的元素,可采纳多级索引获得信息
•Python中元组采纳逗号和圆括号(可选)表示
3.列表(list)是包含零个或多个对象引用的有序数列
♦列表的长度和内容都是可变的
•列表用中括号(U)表示,也可通过list。函数将元组或字符串转化成列表
•列表必需通过显式赋值才能生成,简洁将一个列表赋值给另一个列表不会生成
新的列表对象
序列类型的通用操作符和函数
操作符或函数描述
.假如x是s的元素,返回
xins
True,否则返PIFlase
..假如x不是s的元素,返回
xnotins一,一
True,否则返回Flase
s+t连接s和t
操作符或函数描述
s*n或n*s将序列s复制n次
索引,返回序列s的第i个元
s[i]
素
分片,返回包含序列s第i到
s[i:j]
第j(不含)个元素的子序列
s[i:j:k]步骤分片,返回包含序列s第i到第j
(含)个元素以k为步长的子序列
len(s)序列s的元素个数(长度)
min(s)序列S中的最小元素
max(s)序列S中的最大兀素
序列S中从i起先到j位置第一
s.index(x[,i[,j]])
次出现元素X的位置
s.count(x)序列S中出现X的总次数
集合类型
集合类型是一个元素集合,元素之间无序,相同元素在集合中唯一存在。
•集合的元素类型只能是固定数据类型(能够进行哈希运算的类型都可以作为集
合元素)
哈希运算可以将随意长度的二进制值映射为较短的固定长度的二进制值,哈希值是
对数据的一种有损且紧凑的表示形式,是数据在另一个数据维度的体现。
•集合是无序组合,没有索引和位置的概念,不能分片
•集合不包含重复元素,可运用集合类型过滤重复元素
•集合中元素可以动态增加或删除
•集合用大括号({})表示(干脆运用大括号生成一个空的字典而不是集合)
•生成空集合须要运用函数set()
集合类型的操作符(1。个)
操作
描述
符
S-T差集:返回一个集合,包括在集合S中但不在集合T中的元素
s-=T更新集合S,包括在集合S中但不在集合T中的元素
S&T交集:返回一个新集合,包括同时在集合S和T中的元素
S&=T更新集合S,包括同时在集合S和T中的元素
补集:返回一个新集合,包括集合S和T中的元素,但不包括同时在
SAT
其中的元素
S=AT更新集合S,包括集合S和T中的元素,但不包括同时在其中的元素
操作
描述
符
S|T并集:返回一个新集合,包括集合s和T中的全部元素
S=|T更新集合S,包括集合S和T中的全部元索
S<=T推断S是否是T的真子集
S>=T推断S是否是T的真超集
集合类型的操作函数或方法(1。个)
操作函数或方
描述
法
S.add.(x)假如数据项x不在集合S中,将x增加到S
S.clear()移除S中的仝部数据项
S.copy返回集合S的一个副本
随机返回集合S中的一个元素,若S为空,产生KeyError
S.popQ
异样
S.discard(x)假如x在集合S中,则移除x;若不在也不报错
操作函数或方址工
法描述
S.remove(x)假如x在集合S中,则移除x;否则产生KeyError异样
S.isdisjoint(T)假如集合S与T没有相同元素,则返回True
len(S)返回集合S的元素个数
xinS假如x是S的元素,返回True,否则返回False
xnotinS假如x不是S的元素,返回True,否则返回False
映射类型
映射类型是“键-值”数据项的组合,每个元素是一个键值对,表示为(key,value)。
列表类型的操作
列表类型特有的函数或方法(14个)
函数或方法描述
ls[i]=x替换列表1S第i个数据为X
ls[i:j]=lt用列表It替换列表1S中第i到第j(不含)项的数据
用列表It替换列表1S中第i到第j(不含)项以k为步
ls[i:j:k]=lt
数的数据
函数或方法描述
删除列表Is中第i到第j(不含)项的数据,等价于
dells[i:j]
ls[i:j]=[]
dells[i:j:k]删除列表Is中第i到第j(不含)项以k为步数的数据
ls+=lt或
将列表It的元素增加到列表1s中
Is.extend(It)
ls*=n更新1s列表,使其元素重复n次
Is.append(x)在列表1s最终增加一个元素X
Is.clearQ删除列表1s中的全部元素
ls.copy()生成一个新列表,复制1s中的全部元素
ls.insert(i,x)在列表Is的第i个位置增加元素X
Is.pop(i)将列表1s中的元素取出并删除该元素
Is.remove(x)将列表1s中出现的第一个x元素删除
Is.reversef)将列表1s中的元素反转
6.3实例:基本统计值计算
frommathimport*
defgetNum。:#获得输入
nums=[]
iNumStr=input。请输入数字(干脆输入回车退出):’)
whileiNumStr!=n:
nums.append(eval(iNumStr))
iNumStr=input(请输入数字(干脆输入回车退出):()
returnnums
defmean(numbers):#计算平均值
s=0.0
fornuminnumbers:
s=s+num
returns/len(numbers)
defdev(numbers,mean):#计算方差
sdev=0.0
fornuminnumbers:
sdev=sdev+(num-mean)**2
returnsqrt(sdev/(len(numbers)-1))
defmedian(numbers):#计算中位数
♦列表是一个动态长度的数据结构,可以跟需求增减元素
•列表的一系列方法或操作符为计算供应了简洁的元素运算手段
•列表供应了对每个元素的简洁访问方式与全部元素的遍历方式
6.4字典类型和操作
字典是包含零个或多个健值对的集合,没有长度限制,可以依据减值索引内容
字典类型的概念
•编程术语中,依据一个信息查找另一个信息的方式构成了“键值对”,它表示
索引用的键和对应的值构成的成对关系
•通过随意键信息查找一组数据中值信息的过程叫映射
•Python语言中通过字典实现映射,字典通过大括号((})建立,键和值通过冒号(:)
连接,不同键值对通过逗号(,)隔开
♦字典是集合的持续,各个元素没有依次之分
•字典通过索引符号查找与特定键相对应的值
•字典中对某个键值的修改可以通过中括号的访问和赋值实现
字典类型的操作
•运用大括号创建字典并指定初始值
•运用中括号增加新的元素
•键和值可以是任何数据类型?
•采纳固定数据类型的键数据作为索引
字典类型的函数和方法
函数和方法描述
<d>.keys()返回全部的键信息
<d>.values()返回全部的值信息
<d>>items()返回全部的键值对
函数和方法描述
<d>.get(<key>,<defaulf>)键存在则返回相应值,否则返回默认值
键存在则返回相应值,同时删除键值对,否则返
<d>.pop(<key>,<defaulf>)
回默认值
随机从字典中取出一个键值对,以元组
<d>.popitem()
(key,value)形式返回
<d>.clear()删除全部的键值对
del<d>[<key>]删除字典中某一个键值对
<key>in<d>假如键在字典中则返回Ture,否则返回False
6.5jieba库的运用
jieba库概述
•提取英文文本中的单词,可运用字符串处理的split。方法
•jieba库是Python中一个第三方中文分词函数库
•jieba库的分词原理是利用一个中文词库,将待分词的内容与分词词库进行比对,
通过图结构和动态规划方法找到最也许率的词组
•jieba库支持3种分词模式:精确模式、全模式、搜寻引擎模式
1.精确模式:将句子最精确地切开,适合文本分析
2.全模式:把句子中全部可以成词的词语都扫描出来,速度快,但不能消退歧义
3.搜寻引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用
于搜寻引擎分词
jieba库解析
•jieba库主要供应分词功能,可以协助自定义分词词典
jieba库常用的分词函数
I函数I描述I
I■■■I■■■I
Ijieba.cut(s)|精确模式,返回一个可迭代的数据类型I
|jieba.cut(s,cut_all=Ture)|全模式,输出文本s中全部可能的单词|
|jieba.cut_for_search(s)|搜寻引擎模式,适合搜寻引擎建立索引的分词结果|
|jieba.lcut(s)|精确模式,返回一个列表类型,建议运用I
|jicba.lcut(s,cut_all_=Turc)|全模式,返回一个列表类型,建议运用|
|jieba.lcut_for_search(s)|搜寻引擎模式,返回一个列表类型,建议运用I
Ijieba.add_word(w)响分词词典中增加新词w|
•jieba.lcut。函数返回精确模式,输出的分词能够完整且不多余地组成原始文本
•jieba.lcut(,True)函数返回全模式,输出原始文本中可能产生的全部问题,冗余
性最大
•jieba.lcut_for_search()函数返回搜寻引擎模式,该模式首先执行精确模式,然
后再对其中的长词进一步分切得出结果
•无识别的分词,可通过jieba.add_word()函数向分词库中添加
6.6文本词频统计
词频统计只是累加问题,即对文档中每个词设计一个计数器,词语每出现一次,相
关计数器加1.。假如以词语为键,计数器为值,构成〈单词〉:〈出现次数〉的键值对,
采纳字典数据结构统计词语出现的频次,将很
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中七年级英语全册教学设计方案
- 档案管理信息化建设方案详解
- 高校创新创业扶持政策方案
- 小学英语阅读教学提升方案
- 幼儿园室外活动安全管理实施方案
- 服装厂生产效率提升方案报告
- 门式脚手架施工进度计划方案
- 现浇桥梁施工组织方案
- 路灯施工技术指导方案
- 隧道静态爆破加固施工方案
- 门窗质量保证措施
- 浙江省2025年初中学业水平考试浙真组合·钱塘甬真卷(含答案)
- 钻井工程施工进度计划安排及其保证措施
- (高清版)DB34∕T 5225-2025 风景名胜区拟建项目对景观及生态影响评价技术规范
- 社区矫正面试试题及答案
- 《察今》(课件)-【中职专用】高二语文(高教版2023拓展模块下册)
- GB/T 30425-2025高压直流输电换流阀水冷却设备
- 混凝土试块标准养护及制作方案
- GB/T 45355-2025无压埋地排污、排水用聚乙烯(PE)管道系统
- 地图用户界面设计-深度研究
- 木质纤维复合材料-深度研究
评论
0/150
提交评论