版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Python基础学习笔记基于Python语言程序设计基础(第2版)第一部分初识Python语言第1章程序设计基本方法1.1计算机的概念?计算机是根据指令操作数据的设备,具备功能性和可编程性两个基本特性。?计算机技术发展阶段:1 .第一阶段:1946-1981年,计算机系统结构阶段2 .第二阶段:1982-2007年,计算机网络和视窗阶段3 .第三阶段:2008年至今,复杂信息系统阶段”。4 .第四阶段:月20年后某个时期开始,人工智能阶段”。1.2程序设计语言1.2.1 程序设计语言概述?机器语言:直接使用二进制代码表达指令,可被计算机硬件直接识别和执行。不同计算机结构的机器指令不同。?汇编语
2、言:使用助记符对应机器语言中的指令,可直接操作计算机硬件。不同计算机结构的汇编指令不同。低级语言机器语言和汇编语言都直接操作计算机硬件并基于此设计,统称?高级语言:用更接近自然语言的方式描述计算问题。代码只与编程语言有关,与计算机结构无关。1.2.2 编译和解释高级语言按执行方式可分为采用编译执行的静态语言和采用解释执行的脚本语言。?编译是将源代码转换成目标代码的过程。?解释是将源代码逐条转换成目标代码同时逐条运行目标代码的过程。1.2.3 计算机编程?我学习Python的原因:1 .通过编程实现自动化,提高效率。2 .通过编程了解一个新的广阔世界。?学习一门编程语言(重点在于练习)1 .掌握
3、该语言的语法2 .结合问题设计程序结构3 .掌握解决问题的能力1.3 Python语言概述1.3.1 Python语言的发展Python语言是一个语法简洁、跨平台、可扩展的开源通用脚本语言。?Python语言诞生于1990年,创世人为Guido。?2000年10月,Python2.0正式发布,2010年,Python2.x系列发布最后一版?2008年12月,Python3.0正式发布,解释器内部采用完全面向对象的方式实现,代价是3.x系列版本无法向下兼容2.x系列的既有语法。Python2.x已经是遗产,Python3.x是这个语言的现在和未来。1.3.2 编写Hello程序print(&qu
4、ot;HelloWorld")1.3.3 Python语言的特点?语法简洁?可跨平台?应用广泛?支持中文?强制可读:通过强制缩进体现语句间的逻辑关系提高了程序的可读性?模式多样:语法层面同时支持面向过程和面向对象两种编程方式?粘性扩展:通过接口和函数集成其他语言编写的代码?开源理念?库类丰富1.4 Python语言开发环境配置?Python解释器?IDLE开发环境?交互式启动?文件式启动?Python语言集成开发环境PyCharm1.5 程序的基本编写方法1.5.1 IPO程序编写方法每个程序都有统一的运算模式:输入数据、处理数据和输出数据。这种朴素的运算模式形成了基本的程序编写方法
5、:IPO(Input,Process,Output)方法。IPO不仅是程序设计的基本方法,也是描述计算问题的方式。1.5.2 理解问题的计算部分?使用计算机解决问题的6个步骤:1 .分析问题2 .划分边界3 .设计算法4 .编写程序5 .调试测试6 .升级维护第2章Python程序解析2.1Python程序语法元素分析Python程序包括格式框架、注释、变量、表达式、分支语句、循环语句、函数等语法元素。程序的格式框架?Python语言采用严格的缩进”来表明程序的格式框架,缩进表达了所属关系?在代码编写中缩进可通过Tab键实现,也可用多个空格实现,建议采用4个空格方式书写代码注释?注释是辅助性文
6、字,不被执行?单行注释:以#开头#这是注释?多行注释:以”'(3个单引号)开头和结尾'''这是注释这也是注释这还是注释'''命名?命名是为变量关联标识符的过程,用于确保程序元素的唯一性?标识符由字母、数字、下划线(和汉字)等字符及其组合构成?标识符的首字符不能是数字,且中间不能出现空格?标识符对大小写敏感保留字?保留字(Keyword)也被称为关键字,是被编程语言内部定义并保留使用的标识符?Python的标准库提供了一个keyword模块,可以输出当前版本的所有关键字:>>>importkeyword>>&g
7、t;ls=keyword.kwlist>>>ls>>>len(ls)33Python3有33个保留字1. True2. False3. None4. and5. as6. assert7. break8. class9. continue10. def11. del12. elif13. else14. except15. finally16. for17. from18. global19. if20. import21. in22. is23. lambda24. nonlocal25. not26. or27. pass28. raise29. ret
8、urn30. try31. while32. with33. yield字符串?字符串(string)类型在程序中表示文本?字符串是字符的序列,可以按照单个字符或字符片段进行索引?字符串包括两种序号体系:正向递增序号、反向递减序号?正向递增序号:0L-1?反向递减序号:-L-1?区间访问方式:N:M(不包含M),可以混合使用正向递增序号和反向递减序号?字符串比较本质上是字符串对应Unicode编码的比较赋值语句?Python语言中,”=!示赋值”,将右侧的计算结果赋给左侧变量?同步赋值语句:可同时给多个变量赋值<变量1>,<$量N>=<表达式1>,<表
9、达式N>分支语句?分支语句的作用是根据判断条件选择程序执行路径七条件1>:<语句块1>elif<条件2>:<语句块2>else:<语句块N>循环语句?循环语句的作用是根据判断条件确定一段程序是否再执行一次或多次while(<条件>):<语句块1><语句块2>foriinrange(<循环次数>):<语句块1>input()函数?使用input()函数从控制台获得用户输入?input()函数以字符串类型返回结果<>=input("提示性文字")&
10、gt;>>input("请输入:")eval()函数?eval(<字符串)函数的作用是问输入的字符串变成Python语句并执行x=eval(input("请输入:")Python语法允许在表达式内部标记之间增加空格,适当增加空格有助于提高代码可读性。但应注意,不能改变与缩进相关的空格数量、不能再变量名等命名中间增加空格print()函数?print()函数可以输出字符信息,也可以用字符的形式输出变量?输出字符信息时,可以直接将待输出内容传递给print()函数?输出变量值时,print()函数用槽格式和过format()方法将变量和字符
11、串结合到一起输出函数?函数可以理解为对一组表达特定功能表达式的封装,将特定功能代码编写在一个函数里,使程序模块化更好,便于阅读和复用?可通过保留字def自定义函数2.2 对象(库)的调用?<a>.<b>()表示调用一个对象<a>的方法<b>(),或调用一个函数库<a>中的函数<b>()面向对象编程是一种基于对象的编程范式。对象是事物的一种抽象,是一个实体,包含属性和方法两部分。属性是对象中的变量,方法是对象能完成的操作。?通过保留字import引用函数库1. import<库名>:程序调用库中所有函数,使用库中
12、函数格式如下<库名>.<函数名>(<函数参数>)importturtleturtle.fd(100)#控制画笔向当前行进方向前进1002. from<库名>import:from库名import函数名,函数名,函数名from库名import*,“*是通配符,表示所有函数?调用库中函数不再需要使用库名,格式如下函数名(函数参数)fromturtleimport*fd(100)2.3 turtle库语法元素分析tuetle库是一个图形绘制函数图绘图坐标体系?tuetle库绘制图形的基本框架是一个海龟在坐标系中爬行(前进、后退、左转、右转),其轨迹形成
13、了绘制图形。?初始位置位于坐标(0,0),行进方向为水平右方。?使用turtle.setup()函数设置主窗体的大小和位置。turtle.setup(width,height,startx,stary)?width,height分别表示窗口宽度和高度,值是整数表示像素值,值时小数表示与屏幕的比例?startx,stary分别表示窗口左侧和顶部与屏幕左侧和顶部的像素距离,如果值是none,窗口位于屏幕水平/垂直中央turtle.setup(0.8,0.8)画笔控制函数?turtle.penup():抬起画笔,之后移动画笔不绘制形状别名:turtle.pd()、turtle.down()?turt
14、le.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,值为负数表示向相反方向前进另名:tur
15、tle.forward(distance)?turtle.seth(to_angle):控制画笔绘制方向,(to_angle)参数是绝对方向角度值(turtle库的坐标体系以正东方向为绝对0度、正北方向为绝对90度)?turtle.circle(radius,extent=None):根据半径radius绘制extent角度的弧形radius值为正时,半径在画笔左侧,值为负时,半径在画笔右侧;extent为正时,画笔逆时针前进,extent为负时,画笔顺时针倒退,extent不设置参数或参数为None时,绘制整圆。第二部分深入Python语言第3章基本数据类型3.1数字类型?Python语言提
16、供整数、浮点数、复数3种数字类型整数类型?整数类型共有4种进制表示:十进制、二进制、八进制和十六进制?默认情况整数采用十进制,其他进制需要增加引导符号进制种类引导符号描述十进制无默认情况二进制0b或0B由字符0和1组成八进制0o或0O由字符0到7组成十六进制0x或0X由字符0至I9、a到f、A到F组成浮点数类型?浮点数类型与数学中实数的概念一致,表示带有小数的数值?Python语言要求所有浮点数必须带有小数部分(可以是0),一区分浮点数和证书类型?浮点数有2中表示方法:十进制表示和科学计数法表示科学计数法使用字母e或E作为幕的符号,以10为基数,含义如下:<a>e<b>
17、=a*10b,2?由于计算机内部采用二进制运算,浮点数进行超过15位数字计算会产生误差使用整数表达浮点数的方法是高精确度运算的基本方法之一。?对于高精度科学计算外的绝大部分运算而言,浮点数类型已足够可靠,一般认为浮点数类型没有范围限制,运算结果准确复数类型?复数类型表示数学中的复数复数可以看作是二元有序实数对(a,b),表示为a+bj,其中a是实数部分,简称实部,b是虚数部分,简称虚部。?Python语言中,复数的虚部通过后缀"j"或J"表示1.23 e-4+5.67e+89j?复数类型中实数部分和虚数部分的数值都是浮点数类型,对于实数z,可用乙real和乙ima
18、g分别获得它的实部和虚部(1.23e-4+5.67e+89j).real(1.23e-4+5.67e+89j).imag3.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次幕,即xAy?操作符运算的结果可能会改变数字类型,3种数字类型之间存在一种逐渐扩展的关系:整数一浮点数一复数?上述9个二元数学操作符都有与之对应的
19、增强赋值操作符x+=y等价于x=x+y?模运算()在编程中主要应用于具有周期规律的场景内置的数值运算函数(共6个)函数描述abs(x)x的绝对值divmod(x,y)(x/y,x%y),输出为二元组形式(也称为元组类型)pow(x,y,z)(x*y)%z,表示该参数可省略round(x,ndigits)对x四舍五入,保留ndigits位小数,round(x)返回四舍五入的整数值max(x1,x2,xn)x1,x2,x的最大值,n没有限定min(x1,x2,xn)x1,x2,x的最小值,n没有限定内置的数字类型转换函数(共3个)函数描述int(x)将x转换为整数,x可以是浮点数或字符串float
20、(x)将x转换为浮点数,x可以是整数或字符串complex(re,im)生成一个复数,实部为re,虚部为im,re可以是整数、浮点数或字符串,im可以是整数或浮点数但不能为字符串?int()函数将浮点数类型转换为整数时,小数部分会直接被舍弃?复数不能直接转换为其他数字类型,可通过.real和.imag将复数的实部和虚部分别转换3.3 字符串类型及其操作字符串类型的表示?字符串是字符的序列表示?单引号字符串:单引号表示可以使用“双引号"作为字符串的一部分?双引号字符串:”双引号表示可以使用单引号'作为字符串的一部分"?三引号字符串:”'三引号表示可以使用“双引
21、号"、单引号作为字符串的一部分也可以换行?Python字符串提供区间访问方式,采用N:M格式。表示从字符串中从N到M(不包含M)的字符串,可以混合使用正向递增序号和反向递减序号?反斜杠字符()在字符串中表示转义1. n表示换行2. 表示反斜杠3. '表示单引号4. "表示双引号5. t表示制表符(Tab)基本的字符串操作符(共5个)操作符描述x+y连接两个字符串x与yx*n或n*x复制n次字符串xxins如果x是s的子字符串,返回Ture,否则返回False操作符描述stri索引,返回第i个字符strN:M切片,返回索引第N到第M个字符内置的字符串处理函数(共6个)
22、函数描述len('x')返回字符串x的长度,也可返回其他组合数据类型元素个数str('x')返回任意类型x所对应的字符串形式chr(x)返回Unicode编码x对应的单字符ord('x')返回单子符表小的Unicode编码hex(x)返回整数x对应十六进制数的小写形式字符串oct(x)返回整数x对应八进制数的小写形式字符串内置的字符串处理方法(共43个,常用16个)?在Python解释器内部,所有数据类型都采用面向对象的方式实现,封装为一个类?字符串是一个类,具有类似<a>.<b>()形式的字符串处理函数,称为方法方法描述
23、str.lower()返回字符串str的副本,全部字符小写str.upper()返回字符串str的副本,全部字符大写str.islower()当str所有字符都是小写时,返回Ture,否则返回Falsestr.isprintable()当str所有字符都是可打印的,返回Ture,否则返回Falsestr.isnumeric()当str所有字符都是数字时,返回Ture,否则返回Falsestr.isspace()当str所有字符都是空格,返回Ture,否则返回Flasestr.endswith(suffix,start,end)strstart:end以suffix结尾返回Ture,否则返回Fl
24、asestr.srartswith(prefix,start,end)strstart:end以prefix开始返回Ture,否则返回Flasestr.split(sep=None,maxsplit=-1)返回一个列表,由str根据sep被分割的部分构成str.count(sub,start,end返回strstart:end中sub子用出现的次数str.replace(old,new,count)返回字符串str的副本,所有old子用被替换为new,如果count给出,则前count次old出现被哲换str.center(width,fillchar)字符串居中函数方法描述str.strip
25、(chars)返回子符串str的副本,在其左恻和右恻去掉chars中列出的字符str.zfill(width)返回子符串str副本,长度为width。不足部分在其左侧添加0str.format()返回字符串str的一种排版格式str.join(iterable)返回一个新子符串,由组合数据尖型lerable变重的每个元素组成,元素间用str分隔3.4字符串类型的格式化?字符串通过format()方法进行格式化处理字符串格式化用于解决字符串和变量同时输出时的格式安排format()方法的基本使用?字符串format()方法的基本使用格式:字模板符串.format(逗号分隔的参数)?模板字符串由一
26、系列槽组成,用来控制修改字符串中嵌入值出现的位置(槽用表示,如果中没有序号,则按照出现顺序替换)?如需输入,采用表示;表示"圆周率12是0".format("无理数",3.1415926,")format()方法的格式控制?format()方法模板字符用的槽除了包括参数序号,还可包括格式控制信息。槽内部样式:参数序号:格式控制标记?格式控制标记用于控制参数显示时的格式填充对齐宽度<,>V.精度V英型引导符号用于填充的单个字符AM齐、右对齐、A居中对齐槽的设定输出宽度数字的千位分隔符适用于整数和浮点数浮点数小数部分的精度或字符串的最大
27、输出长度整数类型b,c,d,o,x,X;浮点数类型e,E,f,%?填充指宽度内除了参数外的字符采用什么方式表示,默认为空格?对齐指参数在宽度内输出时的对齐方式?宽度,指当前槽的设定输出字符宽度,若实际参数长度比设定值大,则使用参数实际长度?,用于显示数字类型的千分位分隔符?.精度对于浮点数,表示小数部分输出的有效位数;对于字符串,表示输出的最大长度?类型表示输出整数好浮点数类型的格式规划。对于整数类型,1. b:整数的二进制;2. c:整数对应的Unicode字符;3. d:整数的十进制;4. o:整数的八进制5. x:整数的小写十六进制6. X:整数的大写十六进制对于浮点数类型,7. e:浮
28、点数对应的小写字母e的指数形式8. E:浮点数对应的大写字母E的指数形式9. f:浮点数的标准浮点形式10. %:浮点数的百分形式第4章程序的控制结构4.1 程序的基本结构程序流程图?起止框表示一个程序的开始和结束?判断框判断一个条件是否成立,并根据判断结果不同选择不同的执行路径?处理框表示一组处理过程?输入/输出框表示数据输入或结果输出?注释框增加程序的解释?流向线以带箭头的直线或曲线形式指示程序的执行路径?连接点将多个流程图连接到一起程序的基本结构?程序有3种基本结构组成:顺序结构、分支结构和循环结构?顺序结构:程序按照线性顺序依次执行?分支结构:程序根据条件判断结果而选择不同向前执行路径
29、的一种运行方式(分支结构包括单分支结构和二分支结构;p97)?循环结构:程序根据条件判断结果向后反复执行(根据触发条件不同,循环结构包括条件循环和遍历循环)4.2 程序的分支结构单分支机构:if语句if语句语法格式:if条件:语句块?语句块是if条件满足后执行的一个或多个语句序列?语句块中语句通过与if所在行形成缩进表达包含关系?if语句首先评估条件的结果值,若为Ture则执行语句块中的语句序列;若为False则跳过语句块中的语句?if语句中条件部分可以使用任何能够产生Ture或False的语句或函数形成判断条件最常见的方式是采用关系操作符关系操作符数学符号操作符含义<<小于>
30、;>二小于等于>=>大于等于=等于!=不等于?Python使用"="表示赋值语句,使用"="表示等于二分支结构:if-else语句if-else语句语法格式:if<条件>:<语句块1>else<条件>:<语句块2>?二分支语句用于区分条件的两种可能?if条件满足时执行语句块1?if条件不满足时执行语句块2二分支结构的简洁表达(适合通过判断返回特定值)<表达式1>if<条件>else<表达式2>?表达式1/2一般是数字类型或字符串类型的一个值多分支结构:i
31、f-elif-else语句if-elif-else语句语法格式:if<条件1>:<语句块1>elif<条件2>:<语句块2>.else:<语句块N>?Python依次评估寻找第一个结果为Ture的条件,执行该条件下的语句并跳过整个if-elif-else结构,执行后面的语句?如果没有任何条件成立,执行else下面的语句块?else语句是可选的4.3 程序的循环结构遍历循环:for语句for语句语法格式for循环变量in遍历结构:语句块?遍历循环可以理解为从遍历结构中中逐一提取元素,放在循环变量中,对于所提取的每个元素执行一次语句块循环
32、N次:foriinrang(N):语句块遍历文件的每一行:forlineinfi:语句块遍历字符串sforcins:< 语句块>遍历列表IsforiteminIs:< 语句块>遍历循环的扩展模式for<循环变量>in<遍历结构>:< 语句块1>else:< 语句块2>当for循环正常执行后,程序会继续执行else语句遍历循环:while语句while语句语法格式while<条件>:<语句块>?当条件判断为Ture时,循环体重复执行语句块中的语句;当条件为Flase时,循环终止,执行与while同级别
33、缩进的后续语句无限循环的扩展模式while<条件>:<语句块1>else:<语句块2>?当while循环正常执行后,程序会继续执行else语句中的内容,else语句只在循环正常执行后才执行循环保留字:break和continue?break用来跳出最内层for或while循环,脱离该循环后程序从循环代码后继续执行?continue用来结束当前当次循环,即跳出循环体中下面尚未执行的语句,但不跳出当前循环forsin"BIT":foriinrang(2):print(s,end="")ifs="I":b
34、reak>>>BBTT?break语句与continue语句的区别是,break语句结束整个循环过程,不再判断执行循环的条件是否成立;continue语句只结束本次循环,而不终止整个循环的执行for循环和while循环中都有一个else扩展用法。else语句仅在循环正常遍历了所有内容或由于条件不成立而结束循环的条件下执行。forsin"PYTHON":ifs="T":continueprint(s,end="")else:print("正常退出")>>>PYHON正常退出fors
35、in"PYTHON":ifs="T":breakprint(s,end="")else:print("正常退出")>>>PY4.4 random库的使用random库采用梅森旋转算法生成伪随机数序列,可用于除随机性要求更高的加解密算法外的大多数工程应用?Python内置的random库主要用于产生各种分布的伪随机数序列?random库提供9个常用函数函数描述seed(a=None)初始化随机数种子,默认值为当前系统时间random()生成一个0.0,1.0之间的随机小数randint(a,b)生成
36、一个a,b之间的整数getrandbits(k)生成一个k比特长度的随机整数randrange(start,stop,step)生成一个start,stop之间以step为步数的随机整数uniform(a,b)生成一个a,b之间的随机小数choice(seq)从序列类型,例如列表中随机返回一个元素shuffle(seq)将序列类型中的元素随机排列,返回打乱后的序歹1sample(pok,k)从pop类型中随机选取k个元素,以列表类型返回?生成随机数之前可通过seed()函数指定随机数种子,随机数种子一般是一个整数,只要种子相同,每次生成的随机数序列也相同4.5 程序的异常处理Python通过t
37、ry、except等保留字提供异常处理功能异常处理:try-except语句?Python使用try-except语句实现异常处理try:<语句块1>except<异常类型>:<语句块2>异常的高级用法?try-except语句可以支持多个except语句try:< 语句块1>except<异常类型1>:< 语句块2>.except<异常类型N>:< 语句块N+1>except<异常类型N+!>:< 语句块N+2>?异常语句还可以与else和finally保留字配合使用try
38、:<语句块1>:except<异常类型1>:<语句块2>else:<语句块3>finally:<语句块4>第5章函数和代码复用5.1函数的基本使用函数的定义?函数是一段具有特定功能的、可重用的语句组?使用函数主要有两个目的:降低编程难度和代码重用?Python使用def保留字定义一个函数def<函数名>(<参数列表>):<函数体>return<返回值列表>?函数名可以是任何有效的Python标识符?参数列表是调用该函数是传递给它的值,可以有零个(保留圆括号)、一个或多个(用逗号分隔)?函
39、数体是函数每次被调用是执行的代码?当需要返回值时使用保留字return和返回值刘表,否则函数可以没有return语句,在函数体结束时将控制权返回给调用者函数调用和执行的一般形式函数名(参数列表)函数的调用过程1 .调用程序在调用处暂停执行2 .在调用时将实参复制给形参3 .执行函数体语句4 .函数调用结束给出返回值,程序回到调用前的暂停处继续执行lambda函数?lambda函数又称匿名函数,将函数名作为函数结果返回函数名=lambda参数列表:表达式lambda函数与正常函数一样,等价于下面表达式:def函数名(参数列表):return表达式?lambda函数用于定义简单的、能够在一行内表示
40、的函数,返回一个函数类型f=lambdaq,w,e,r:q+w+e+rf(1,2,3,4)10?lambda函数用于需要函数对象的场景5.2函数的参数传递函数可定义可选参数,使用参数的位置或名称传递参数值,根据函数中变量的不同作用域有不同的函数返回值方式可选参数和可变数量参数?函数定义时部分参数可直接为存在默认值的参数指定默认值,当函数被调用时如果没有传入对应的参数值则使用函数定义时的的默认值替代?默认参数必须指向不变对象?函数调用时需要按顺序输入参数,可选参数必须定义在非可选参数后dfer(str,times=2):print(str*times)r("T")TTr(&q
41、uot;T")?函数定义时可设计可变数量参数,通过在参数前加星号(*)实现?带有星号的可变参数只能出现在参数列表最后,调用时这些参数被单指元组类型传递到函数中defvfunc(a,*b)print(type(b)forninb:a+=nreturnavfunc(1,2,3,4,5)<class'tuple'>15#1+2=3;3+3=6;6+4=10;10+5=15参数的位置和名称传递?函数定义时实参默认采用按照位置顺序的方式传递给函数,这种方式在参数很多的情况下可读性较差?Python提供了按照形参名称输入实参的方式,调用函数时指定参数名称,参数之间的顺
42、序可任意调整函数的返回值?return语句用来退出函数并将程序返回到函数被调用的位置继续执行?return语句可同时将0个、1个或多个函数运算后的结果返回给函数被调用的位置?函数可以没有return,此时函数不返回值?函数也可以用return返回多个值,多个值以元组类型保存deffunc(a,b):returnb,as=func("t",2)print(s,type(s)(2,'t')<class'tuple'>5.4datetime库的使用Python时间处理的标准函数库datetime提供里一批显示日期和时间的格式化方法。da
43、tetime库概述datetime库可以从系统中获得时间,并以用户选择的格式输出?datetime库以格林威治时间为基础,每天由3600*24秒精准定义datetime库以类的方式提供多种日期和时间1. datetime.date:日期表示类,坑人表示年、月、日等。2. datetime.time:时间表示类,可表示小时、分钟、秒、毫秒等。3. datetime.datetime:日期和时间表示类,功能覆盖date和time类。4. datetime.timedelta:与时间间隔有关的类。5. datetime.tzinfo:与时区有关的信息表示类。datetime库解析(datetime类
44、)?datetime.datetime类的使用方式是首先创建一个datetime对象,然后通过对象的方法和属性显示时间创建datetime对象的3种方法:1. datetime.now():返回一个datetime类型,表示当前日期和时间,精确到毫秒>>>fromdatetimeimportdatetime>>>now=datetime.now()>>>nowdatetime.datetime(2018,5,13,16,49,38,627464)2. datetime.utcnow():返回一个datetime类型,表示当前日期和时间的UT
45、C(世界标准时间)表示,精确到毫秒>>>fromdatetimeimportdatetime>>>utcnow=datetime.now()>>>utcnowdatetime.datetime(2018,5,13,8,53,59,788612)3. 直接使用datetime()构造一个日期和时间对象:datetime(Y,M,D,hour=0,minute=0,second=0,microsecond=0)>>>some=datetime(2018,5,13,17,0,0,0)>>>somedatetim
46、e.datetime(2018,5,13,17,0)-创建datetime对象后,可利用该对象的属性显示时间(以上述“some为例)?datetime类的常用属性属性描述some.min固定返回datetime的最小时间对象,datetime(1,1,1,0,0)some.max固定返回datetime的最大时间对象,datetime(9999,12,31,23,59,59,999999)some.year返回some包含的年份some.month返回some包含的月份some.day返回some包含的日期some.hour返回some包含的小时some.minute返回some包含的分钟属性
47、描述some.second返回some包含的秒钟some.microsecond返回some包含的毫秒?datetime类的常用时间格式化方法属性描述some.isofomat()采用ISO8601标准显示时间some.isoweekday()根据日期计算星期some.strftime()根据格式化字符串format进行格式显示的方法?strftime()方法用于输出特定格式时间格式化字符串对象取值范围%Y年00019999%m月112%B月名JanuaryDecember%b月名缩写JanDec格式化字符串对象取值范围%d日期0131%A星期MondaySunday%a星期缩写MonSum%
48、H小时(24h制)0023%I小时(12h制)0112%p上、下午AM/PM%M分钟0059%S秒0059>>>some=datetime(2018,5,13,17,0,0,0)>>>some.strftime("%Y年%mM%d日,H时-%S秒")'2018年05月13日,17时00分00秒>>>print('今天是0:%Y年0:%m月0:%d日.format(some)今天是2018年05月13日5.5代码复用和模块化设计?当代编程语言从代码层面采用函数和对象两种抽象方式,分别对应面向过程和面向对象两
49、种编程思想?函数是程序的一种基本抽象方式,它将一系列代码组织起来通过命名提供其他程序使用,任何其他代码只有输入参数即可调用函数,更新函数功能时,所有被调用处的功能都被更新。?对象是程序的一中高级抽象方式,它将程序代码组织为更高级的类。对象包括表征对象特征的属性和代表对象操作的方法。?模块化设计值通过函数或对象的封装功能将程序划分成主程序、子程序和子程序间关系的表达。?模块化设计的两个基本要求:1 .紧耦合:尽可能合理划分功能块,功能块内部耦合紧密2 .松耦合:模块间关系尽可能简单,功能块之间耦合度低3 .6函数的递归递归的定义:函数定义中调用函数自身的方式称为递归?数学经典递归案例一一阶乘n!
50、=n(n-1)(n-2)n!=1(n=0)n!=n(n-1)!(otherwise)?递归的两个关键特征1 .存在一个或多个基例,基例不需要再次递归,是确定的表达式2 .所有递归链要以一个或多个基例结尾递归的使用方法deffact(n):ifn=0:return1else:returnn*fact(n-1)num=eval(input('请输入一个整数:)print(fact(abs(int(num)?使用递归一定要注意基例的构建,否则递归无法返回3 .7科赫曲线绘制科赫曲线属于分形几何分支,它的绘制过程体现了递归思想fromturtleimport*defkoch(size,n):i
51、fn=0:fd(size)else:foranglein0,60,-120,60:left(angle)koch(size/3,n-1)#递归defmain(size,level):setup(600,600)#设置主窗体大小speed(0)#设置画笔速度,(110)hideturtle()#隐藏turtle箭头penup()goto(-150,50)pendown()pensize(1)#设置画笔尺寸koch(size,level)right(120)koch(size,level)right(120)koch(size,level)main(300,3)4 .8Python内置函数Pyth
52、on提供68个内置函数?abs()?all()?any()?asci()?bin()?bool()?chr()?complex。?dict()?divmod()?eval()?float()?hash()?hex()?id()?input()?int()?len()?list()?max()?min()?oct()?open()?ord()?pow()?print()?range()?reversed。?round()?set()?sorted()?str()?tuple()?type()?zip()?bytes()?delattr()?bytearray()?callable。?classm
53、ethod()?compile。?dir()?exec()?enumerate。?filter()?format()?frozenset()?getattr()?globals()?hasattr()?help()?isinstance()?issubclass()?iter()?locals()?map()?memoryview()?next()?object()?properyty()?repr()?setattr()?slice()?staticmethod()?sum()?super()?vars()?_import()_第6章组合数据类型6.1组合数据类型概述组合数据类型为多个类型或
54、不同类型数据提供单一表示,使数据操作更有序、更容易。组合数据类型分为序列类型、集合类型和映射类型3类。序列类型序列类型是一维元素向量,元素间存在先后关系,通过序号访问,元素之间不排他。1 .字符串(str)可以看做是单一字符的有序组合,属于序列类型?字符串被看做基本数据类型2 .元组(tuple)是包含零个或多个数据项的不可变序列类型?一个元组可作另一个元组的元素,可采用多级索引获取信息>>>X=('a','b','c')#等同X='a','b','c'>>>Y=
55、(1,2,3,X)>>>Y32#多级索引'c'?Python中元组采用逗号和圆括号(可选)表示3 .列表(list)是包含零个或多个对象引用的有序数列?列表的长度和内容都是可变的?列表用中括号()表示,也可通过list()函数将元组或字符串转化成列表?列表必须通过显式赋值才能生成,简单将一个列表赋值给另一个列表不会生成新的列表对象序列类型的通用操作符和函数操件符或国数描述xins如果x是s的兀素,返回True,否则返回Flasexnotins如果x不是s的兀素,返回True,否则返回Flases+t连接s和ts*n或n*s将序列s复制n次si索引,返回序列s的第i个元素si:j分片,返回包含序列s第i到第j(不含)个元素的子序列si:j:k步骤分片,返回包含序列s第i到第j(含)个元素以k为步长的子序歹1len(s)序列s的元素个数(长度)min(s)序列s中的最小元素max(s)序列s中的取大兀系s.index(x,i,j)序列s中从i开始到j位置第一次出现元素x的位置操作符或函数描述s.count(x)序列s中出现x的总次数集合类型集合类型是一个元素集合,元素之间无序,相同
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年年度护士工作总结(2篇)
- 高中物理2027届高三教案-电磁感应新情境与多磁场区域探究
- 2026年哈尔滨投资集团有限责任公司人员招聘考试参考题库及详细答案解析
- 2025四川省安全生产月知识培训考试试题及答案
- 八年级物理教学设计:速度的测量实验探究与作业精讲
- 2026年中国商用飞机有限责任公司人员招聘笔试备考题库及详细答案解析
- 2026年大化集团有限责任公司人员招聘考试备考试题及详细答案解析
- 小学五年级班队课教学设计:居家习惯养成与成长致敬主题班会
- 2026初级会计考试试题及答案
- 2026国家电网-电气专业(官方)-多选题参考试题库历年考点答案详解
- 服装设计师作品组绩效衡量表
- 河南省部分高中2026-2027学年高二上学期9月联考数学试卷(含答案)
- 2025“外研社国才杯”“理解当代中国”外语能力综合能力赛项(英语组)模拟样卷
- 2026年河北高考历史真题(试卷+解析)
- 2026秋统编版(新教材)七年级道德与法治上册易错知识点梳理+分课填空自测练习题及答案
- 人教版2026-2027学年高中物理必修第三册第9章-13章期中测试卷(含解析)
- 儿童绘本故事《蚂蚁搬家》
- 军体拳第一套全套图文教程
- DB50-T 1672-2024 动物诊疗机构实验室建设与管理指南
- 氧气充装事故应急处理操作规程符合TSG07-2019《许可规则》
- 甄嬛传电子版剧本第01-10集
评论
0/150
提交评论