python讲义01基础知识

上传人:工**** 文档编号:568806847 上传时间:2024-07-27 格式:PPT 页数:92 大小:2.97MB
返回 下载 相关 举报
python讲义01基础知识_第1页
第1页 / 共92页
python讲义01基础知识_第2页
第2页 / 共92页
python讲义01基础知识_第3页
第3页 / 共92页
python讲义01基础知识_第4页
第4页 / 共92页
python讲义01基础知识_第5页
第5页 / 共92页
点击查看更多>>
资源描述

《python讲义01基础知识》由会员分享,可在线阅读,更多相关《python讲义01基础知识(92页珍藏版)》请在金锄头文库上搜索。

1、Python课程教师信息:张端,计算机学院,赵傲,计算机学院,助教第第1 1章基础知识章基础知识主主 要要 内内 容容Python是一种怎样的语言如何选择Python版本Python安装与简单使用Python基础知识Python代码规范Python文件名Python脚本的“_name_”编写自己的包与模块Python快速入门31.0Python是一种怎样的语言计算机(计算机(Computer)的概念)的概念根据指令操作数据的机器根据指令操作数据的机器计算机功能:指对数据的操作,表现为数据计算、计算机功能:指对数据的操作,表现为数据计算、 输输入输出处理和结果存储等入输出处理和结果存储等必须告知

2、计算机如何操作,计算机才会完成计算必须告知计算机如何操作,计算机才会完成计算计算机程序:为了完成某项任务,解决某个问题由计算机计算机程序:为了完成某项任务,解决某个问题由计算机执行的一系列指令(步骤)执行的一系列指令(步骤)41.0Python是一种怎样的语言程序设计语言的历史程序设计语言的历史机器语言:二进制代码表示的一种机器指令的集合机器语言:二进制代码表示的一种机器指令的集合汇编语言:在机器语言上增加了人类可读的助记符汇编语言:在机器语言上增加了人类可读的助记符高级语言:向自然语言靠近的语言高级语言:向自然语言靠近的语言51.0Python是一种怎样的语言6Python由“龟叔”Guid

3、ovanRossum在1989创建1.0Python是一种怎样的语言Python的要求:1994年,年,Python 12000年,年,Python 22008年,年,Python 3(本课程使用)(本课程使用)更高级别的系列不兼容早期系列更高级别的系列不兼容早期系列2011年年1月,月,TIOBE将将Python评为编程语言排行榜评为编程语言排行榜2010年年度语言度语言2017年年7月,月,IEEE Spectrum编程语言排行榜中编程语言排行榜中Python直直接上升到了第接上升到了第1位位系列已经开始全面普及,成为一种必然的趋势系列已经开始全面普及,成为一种必然的趋势71.0Pytho

4、n是一种怎样的语言Python是一门跨平台、开源、免费的解释型高级动态编程语言解释型高级动态编程语言伪编译,Python源程序转换为字节码,Jythonpy2exe工具将Python程序转换为扩展名为“.exe”的可执行程序Python支持命令式编程函数式编程面向对象编程支持各领域的扩展库Python为“胶水”语言,与不同语言编写的程序无缝拼接优点:明确,简单,优雅,减轻构思性脑力劳动;缺点:慢,略提高记忆性脑力劳动在科学计算、大数据、人工智能等领域应用越来越广泛81.0Python是一种怎样的语言91.0Python是一种怎样的语言101.0Python是一种怎样的语言如何学习Python,

5、对过程的要求:根据Python的特点,注重记忆和理解系统学习和点滴学习并重,前半学期更注重后者PPT上红色部分代表第一次出现的、难点、重点课后必须将书本或者PPT看3遍,第一遍理解第二遍浓缩,PPT上的红色部分第三遍记忆独立完成作业和实验,熟练掌握重要示例至考前书本或者PPT阅读次数必须达到6遍以上111.1如何选择Python版本安装好Python以后,在“开始”菜单中启动“IDLE(PythonGUI)”即可启动Python解释器并可以看到当前安装的Python版本号。如果您喜欢的话,也可以启动“Python(commandline)”来开始美妙的Python之旅。在“IDLE(Pytho

6、nGUI)”和“Python(commandline)”两种界面中,都以三个大于号“”作为提示符,在提示符后面输入要执行的语句。121.1如何选择Python版本2.x:一边鄙视一边用:必然的趋势,本课程主要对象多版本共存与切换简便方法:更改系统环境变量path查看已安装版本的方法(在所启动的IDLE界面也可以直接看到):importsys131.1如何选择Python版本如安装多个不同的版本,例如同时安装Python2.7.8和Python3.4.2,并根据不同的开发需求在两个版本之间进行切换。只需要启动相应版本的IDLE即可。在命令提示符环境中运行Python程序时在调用Python主程序

7、时指定其完整路径修改系统Path变量来实现不同版本之间的切换141.2Python安装与简单使用1.打开Python官网,如下图选择151.2Python安装与简单使用2.下载exe后缀的可执行文件,根据自己系统选择32位或64位161.2Python安装与简单使用3.执行下载的安装文件,选择Customizeinstallation171.2Python安装与简单使用4.选择Next181.2Python安装与简单使用5.修改安装地址,选择Install191.2Python安装与简单使用6.验证是否环境变量是否设置,按win+R,输入cmd,键入python,出席python版本号说明环境

8、变量设置成功。201.2Python安装与简单使用7.否则在控制面板-系统-高级系统设置-环境变量设置-系统变量中的Path项加上Python安装目录。211.2Python安装与简单使用安装好以后,默认以IDLE为开发环境,当然也可以安装使用其他的开发环境,例如PythonWin。以IDLE为例,使用交互式编程模式,IDLE提示符“”回车,看执行结果,执行出错否抛出异常。3+58importmathmath.sqrt(9)3*(2+6)242/0Traceback(mostrecentcalllast):File,line1,in2/0ZeroDivisionError:integerdiv

9、isionormodulobyzero221.2Python安装与简单使用231.2Python安装与简单使用第一个程序HelloWorld第一种方式:shell方式或者交互方式在IDLE界面中提示符之后键入代码输入代码print(HelloWorld)#代码HelloWorld#输出#1.函数print(Helloworld)在显示器上打印()中的内容#2.Helloworld为字符串,引号不能少#3.引号和括号(),必须是英文符号241.2Python安装与简单使用第一个程序HelloWorld第二种方式:文件方式在IDLE界面中使用菜单“File”=“NewFile”创建一个程序文件输入

10、代码并保存为文件,务必要保证扩展名为“.py”,如果是GUI程序可以保存为“.pyw”文件。菜单“Run”=“CheckModule”来检查程序中是否存在语法错误菜单“Run”=“RunModule”运行程序,程序运行结果将直接显示在IDLE交互界面上。执行上述两项操作时系统会要求先保存文件:print(Helloworld)251.2Python安装与简单使用261.2Python安装与简单使用271.2Python安装与简单使用关于执行的补充:也可以通过在资源管理器中双击扩展名为“.py”或“.pyc”的Python程序文件直接运行;可命令提示符环境中运行Python程序文件,按win+R

11、,键入cmd,回车,转至y所在目录,键入;281.2Python安装与简单使用在实际开发中,如果您能够熟练使用在实际开发中,如果您能够熟练使用集成开发环境集成开发环境IDLEIDLE提供的一些快捷键,将会大幅度提供的一些快捷键,将会大幅度提高您的编写速度和开发效率。在提高您的编写速度和开发效率。在IDLEIDLE环境下,除了环境下,除了撤销(撤销(Ctrl+ZCtrl+Z)、全选(全选(Ctrl+ACtrl+A)、复制(复制(Ctrl+CCtrl+C)、粘贴(粘贴(Ctrl+VCtrl+V)、剪切(、剪切(Ctrl+XCtrl+X)等常规快捷键之外,其他比较常用的)等常规快捷键之外,其他比较常

12、用的快捷键如下表所示。快捷键如下表所示。291.2Python安装与简单使用其他常用集成开发环境其他常用集成开发环境IDLE:Anaconda(https:/ PyCharm301.2Python安装与简单使用Anaconda中的中的Spyder311.2Python安装与简单使用作业回顾Python历史,课外阅读Python简史在机房或者手机、本地电脑上安装Python环境,手机上请在应用市场找到并安装QPython3APP上机编写第一个示例程序HelloWorld,尝试将print函数拼写错误等,查看输出结果32*使用pip管理第三方包Python3安装包默认包含pip,或在下载文件安装方

13、法:win+R,cmd=用法示例pipinstallNumPy#安装Numpy包piplist#列出已安装包pipinstall-upgradeSomePackage#升级SomePackage包pipuninstallSomePackage#卸载SomePackage包331.4Python基础知识对象模型基本数据类型变量运算符与表达式内置函数341.4.1Python的对象模型概念引入:值和类型值(Value):程序操作的最基本的东西,字母,或者数字类型(Type):数据从不同角度看有不同的含义使用type()查看类型type(2)#整数type(20.0)#浮点数type(HelloWo

14、rld!)#字符串351.4.1Python的对象模型对象是python语言中最基本的概念,在python中处理的均为对象。内置对象可供编程者使用,内置对象可直接使用,如数字、字符串、列表、del等;非内置对象需要导入模块才能使用,如正弦函数sin(x),随机数产生函数random()等。361.4.1Python的对象模型常用内置对象371.4.2Python变量在Python中有:常量(LiteralConstants):值不发生改变的元素,这里的值用的就是字面意义上的值或者内容。例:5、这是一串文本、Thisisastring“变量(Variable):就是某个值的标签381.4.2Py

15、thon变量391.4.2Python变量在Python中,不需要事先声明变量名及其类型(方便,函数声明等场合也会有麻烦),直接赋值即可创建各种类型的对象变量。例如语句x=3创建了整型变量x,并赋值为3,3是常量,x是变量x=Helloworld.创建了字符串变量x,并赋值为Helloworld.。这一点适用于Python任意类型的对象。注意:Python解释器会根据赋值或运算来自动推断变量类型。Python仍属于强类型编程语言401.4.2Python变量使用变量时需要程序员确定所进行的运算是否合适,避免出现异常。同一个运算符对于不同类型数据操作的含义和计算结果也是不一样的。Python还是

16、一种动态类型语言,变量的类型是可以随时变化的。x=3print(type(x)#type()返回变量类型x=Helloworld.print(type(x)x=1,2,3print(type(x)isinstance(3,int)#isinstance()用来测试对象是否为指定类型Trueisinstance(Helloworld,str)True411.4.2Python变量变量出现在赋值符或复合赋值运算符(例如+=、*=等等)左边表示创建变量或修改变量的值,在右边表示引用变量的值。这一点同样适用于使用下标来访问列表、字典等可变序列以及其他自定义对象中元素的情况。x=3#创建整型变量prin

17、t(x*2)9x+=6#修改变量值,效果上相当于x=x+6print(x)#读取变量值并输出显示9x=1,2,3#创建列表对象print(x)1,2,3x1=5#修改列表元素值print(x)#输出显示整个列表1,5,3print(x2)#输出显示列表指定元素3421.4.2Python变量字符串和元组属于不可变序列,不能通过下标来修改其中的元素值。x=(1,2,3)print(x)(1,2,3)x1=5#不能修改元组,出错。Traceback(mostrecentcalllast):File,line1,inx1=5TypeError:tupleobjectdoesnotsupportite

18、massignment431.4.2Python变量允许多个变量指向同一个值:x=3id(x)#获取x的内存地址1786684560y=xid(y)1786684560为其中一个变量修改值以后,此变量内存地址将会变化:x+=6id(x)1786684752y3id(y)1786684560441.4.2Python变量Python采用的是基于值的内存管理方式:如多个变量赋值相同,该值在内存中只有一份,多个变量指向同一块内存地址:x=3id(x)10417624y=3id(y)10417624y=5id(y)10417600id(x)10417624对于没有任何变量指向的值,Python自动将其

19、删除,程序员一般情况下不需要太多考虑内存管理的问题。显式使用del命令删除不需要的值或显式关闭不再需要访问的资源,仍是一个好的习惯。451.4.2Python变量变量名定义基本规则:变量名必须以字母或下划线开头,但以下划线开头的变量在Python中有特殊含义;变量名中不能有空格以及标点符号(括号、引号、逗号、斜线、反斜线、冒号、句号、问号等等);不能使用关键字作变量名,可以导入keyword模块后使用print(keyword.kwlist)查看所有Python关键字;importkeywordand,as,assert,break,class,continue,def,del,elif,el

20、se,except,exec,finally,for,from,global,if,import,in,is,lambda,not,or,pass,print,raise,return,try,while,with,yieldand=3SyntaxError:invalidsyntax不建议使用系统内置对象名称,如模块名、类型名或函数名以及已导入的模块名及其成员名作变量名,这将会改变其类型和含义,可以通过dir(_builtins_)查看所有内置模块、类型和函数;变量名对英文字母的大小写敏感,例如student和Student是不同的变量。461.4.3数字数字是python中最常用的对象,属

21、于不可变对象。可以表示任意大小的数字。a=99999999999999999999999999999999a*a9999999999999999999999999999999800000000000000000000000000000001La*3999999999999999999999999999999970000000000000000000000000000000299999999999999999999999999999999L471.4.3数字整数:十进制整数如,0、-1、9、123十六进制整数,需要16个数字0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f来表示整数

22、,必须以0x开头,如0x10、0xfa、0xabcdef八进制整数,只需要8个数字0、1、2、3、4、5、6、7来表示整数,必须以0o开头,如0o35、0o11二进制整数、只需要2个数字0、1来表示整数,必须以0b开头如,0b101、0b100481.4.3数字浮点数又称小数,、1.2e2、1.这里e改为E,效果完全相同;浮点数与整数5不同2.一个浮点数a由两个数m和x来表示:a=mbx。3.m是定点小数,x是定点整数,m(即尾数)是形如d.ddd.ddd的p位数4.python中浮点数精度有限491.4.3数字复数:a=3+4jb=5+6jc=a+bc(8+10j)c.real#查看复数实部

23、c.imag#查看复数虚部a.conjugate()#返回共轭复数(3-4j)a*b#复数乘法(-9+38j)a/b#复数除法(0.6393442622950819+0.03278688524590165j)501.4.4字符串用单引号、双引号或三引号括起来的符号系列称为字符串单引号、双引号、三单引号、三双引号可以互相嵌套,用来表示复杂字符串。abc、123、中国、Python字符串属于不可变序列空串表示为或或或三引号或表示的字符串可以换行,支持排版较为复杂的字符串;三引号还可以在程序中表示较长的注释。511.4.4字符串1.字符串合并a=abc+123#生成新对象2.字符串格式化,即把对象按

24、格式要求转换为字符串。%7.3f%a3.667%d:%c%(65,65)65:AMynameis%s,andmyageis%d%(DongFuguo,38)MynameisDongFuguo,andmyageis383.转义字符n:换行符t:制表符r:回车:单引号”:双引号:一个ddd:3位八进制数对应的字符xhh:2位十六进制数对应的字符字符串界定符(引号)前面加字母r表示原始字符串,其中的特殊字符不进行转义,但字符串的最后一个字符不能是。521.4.5操作符和表达式531.4.5操作符和表达式P(无论任何类型都会保持小数部分)。例如:3/5#除法#除法的结果为浮点数,例10/2结果为3/5

25、013/101-13/10#结果向下取整,也称“地板除”-2541.4.5操作符和表达式运算符是“%”。字符串格式化用法对整数和浮点数计算余数。因精度影响,浮点数计算结果可能略有误差。3.1%26%20556.0%2较复杂运算举例:1.4.5操作符和表达式Python中很多运算符有多重含义,具体含义取决于操作数的类型。例如“*”运算符:563*2#整数相乘62.0*3#浮点数与整数相乘(3+4j)*2#复数与整数相乘(6+8j)(3+4j)*(3-4j)#复数与复数相乘(25+0j)1*5#字符串重复11111a*10#字符串重复aaaaaaaaaa1,2,3*3#列表重复1,2,3,1,2,

26、3,1,2,3(1,2,3)*3#元组重复(1,2,3,1,2,3,1,2,3)3*a#字符串重复aaa列表:例如8,7,5,3或ad,bnc,列表内容可改变,元组:例如(8,7,5,3)或(ad,bnc),元组内容不可改变1.4.5操作符和表达式在Python中的合法表达式:1单个任何类型的对象或常数;2使用运算符连接的变量和常量以及函数调用的任意组合。a=1,2,3b=4,5,6c=a+bc1,2,3,4,5,6d=map(str,c)d1,2,3,4,5,6importmathmap(math.sin,c)Hello+worldHelloworldwelcome*3welcomewelc

27、omewelcome(welcome,*3).rstrip(,)+!welcome,welcome,welcome!571.4.5操作符和表达式在Python中逗号“,”并不是运算符,而只是一个普通分隔符:ainb,a(False,a)ain(b,a)Truex=3,5x(3,5)3=3,5(True,5)x=3+5,7x(8,7)581.4.6常用内置函数内置函数:内置函数不需要导入任何模块即可使用执行下面的命令可以列出所有内置函数dir(_builtins_)591.4.6常用内置函数601.4.6常用内置函数611.4.6常用内置函数621.4.6常用内置函数ord()用来返回单个字符的

28、序数或ASCII码chr()用来返回介于0到255之间的某序数对应的字符str()用来返回任意类型参数转换为字符串63ord(a)97ord(A)65chr(65)Achr(67)Cchr(ord(A)+1)Bstr(1)1str(1234)1234str(1,2,3)1,2,3str(1,2,3)(1,2,3)str(1,2,3)1,2,31.4.6常用内置函数id(obj)用来返回obj对象内存地址type(obj)用来对象obj对象类型Isinstance(obj,class)用来判断obj对象是否是class类型len(obj)用来返回对象obj元素个数range()此函数在下章详细介

29、绍,本章只要求掌握最简单的用法64a=5id(a)1848574544type(a)isinstance(a,str)Falseisinstance(a,int)Trueb=range(6)#返回0开始到6之前整数的序列list(b)0,1,2,3,4,5len(b)6len(abc)31.4.6常用内置函数abs():取模(绝对值)pow(x,y):x的y次方,等价于x*yround(x,小数位数):标准圆整,不给出小数位数返回整数,功能非常接近于四舍五入65abs(-5)5abs(1+1j)pow(2,3)8pow(2,-3)round(5.923)6round(-5.923)-6roun

30、d(21.5,-1)round(1.55,1)round(2.55,1)round(2.550000001,1)1.4.6常用内置函数max()、min()、sum()这三个内置函数分别用于计算列表、元组或其他可迭代对象中所有元素最大值、最小值以及所有元素之和,sum()只支持数值型元素的序列或可迭代对象,max()和min()则要求序列或可迭代对象中的元素之间可比较大小。例如下面的示例代码,首先使用,然后分别计算该列表的最大值、最小值和所有元素之和。importrandoma=foriinrange(10):a=a+(1,100)a26,31,21,22,20,86,53,8,96,54pr

31、int(min(a),max(a),sum(a),sum(a)/len(a)66random是Python库,importrandom作用是引入该库,引入后才能使用该库中的对象。random.randint()随机生一个整数int类型,并指定这个整数的上限和下限值,上下限的值均可取。random.random()函数是这个模块中最常用的方法了,它会生成一个随机的浮点数,范围在之间random.random()1.4.6常用内置函数int()、float()、complex()、str()这4个内置函数将其他类型强制转换为整数、浮点数、复数和字符串,如果不能转换这出错。67int(2.1)#向下

32、取整2int(2.9)2int(86)86int(86.9)#错误float(80)float(80)str(2)2str(2.1)2.1complex(3.5)(3.5+0j)1.4.6常用内置函数两个帮助编程的内置函数:dir()函数可以查看指定模块中包含的所有成员或者指定对象类型所支持的操作help()函数则返回指定模块或函数的说明文档。681.4.7对象的删除在Python中具有自动内存管理功能或者垃圾回收机制,Python解释器会跟踪所有的值,一旦发现某个值不再有任何变量指向,将会自动删除该值。显式释放自己申请的资源是程序员的好习惯之一,也是程序员素养的重要体现之一。在Python中

33、,del命令来显式删除对象并解除与值之间的指向关系。删除对象时,如果其指向的值还有别的变量指向则不删除该值。如果删除对象后该值不再有其他变量指向,则删除该值。691.4.7对象的删除x=1,2,3,4,5,6y=3z=yprint(y)3dely#删除对象print(y)Traceback(mostrecentcalllast):File,line1,inprint(y)NameError:nameyisnotdefinedprint(z)3delz70print(z)Traceback(mostrecentcalllast):File,line1,inprint(z)NameError:na

34、mezisnotdefineddelx1#删除列表中指定元素print(x)1,3,4,5,6delx#删除整个列表print(x)Traceback(mostrecentcalllast):File,line1,inprint(x)NameError:namexisnotdefined1.4.7对象的删除del命令无法删除元组或字符串中的指定元素,而只可以删除整个元组或字符串,因为这两者均属于不可变序列。x=(1,2,3)delx1#错误Traceback(mostrecentcalllast):File,line1,indelx1TypeError:tupleobjectdoesntsup

35、portitemdeletiondelx#可删除print(x)Traceback(mostrecentcalllast):File,line1,inprint(x)NameError:namexisnotdefined711.4.8基本输入输出用Python中输入:通过input()函数来实现的,该函数返回输入的字符串,imput()的一般格式为:x=input(提示:)输出:使用print()函数print(xxx,xxx,xxx)中的“,”将打成空格721.4.8基本输入输出在Python3.x中,不论用户输入数据时使用什么界定符,input()函数的返回结果都是字符串,需要将其转换为相

36、应的类型再处理。73x=input(Pleaseinput:)Pleaseinput:3print(type(x)x=input(Pleaseinput:)Pleaseinput:1print(type(x)x=int(input(Pleaseinput:)print(type(x)x=input(Pleaseinput:)Pleaseinput:1,2,3print(type(x)#?如何转换1.4.8基本输入输出print()函数基本输出的几个参数:设置sep参数,作为数据间隔符:print(1,2,3,sep=:)1:2:3设置file参数,将重定向到文件:fp=open(rD:myte

37、st.txt,a+)#打开文件,a追加模式,+读写模式print(Hello,world!,file=fp)fp.close()设置end参数,实现输出内容之后不换行:foriinrange(10):print(i,end=)0123456789741.4.9模块的使用在Python中,一个.py文件就称之为一个模块(Module)使用模块有什么好处?提高了代码的可维护性可引用其他模块,减轻工作量,包括Python内置模块和第三方模块避免函数名和变量名冲突不同的人编写的模块名相同怎么办?解决方法:引入包,包中含模块和下级包(子包),包相当与文件夹或目录。只要顶层的包名不与别人冲突,那所有模块都

38、不会与别人冲突751.4.9模块的使用Python默认安装仅包含部分基本或核心模块,但用户可以安装的扩展模块,pip是管理模块的重要工具。在Python启动时,仅加载了很少的一部分模块,在需要时由程序员显式地加载(可能需要先安装)其他模块。可以使用importsys;sys.modules.items()显示所有预加载模块的相关信息。761.4.9模块的使用import 模块名import mathmath.sin(0.5) #求的正弦import randomx=random.random( ) #获得0,1) 内的随机小数y=random.random( )n=random.randint

39、(1,100) #获得1,100上的随机整数可以使用dir()函数查看任意模块中所有的对象列表(如importmath;dir(math),如果调用不带参数的dir()函数,则返回当前脚本的所有名字列表。可以使用help函数查看任意模块或函数的使用帮助。771.4.9模块的使用from模块名import对象名as别名,可以减少查询次数,提高执行速度frommathimport*#谨慎使用frommathimportsinsin(3)frommathimportsinasf#别名f(3)781.4.9模块的使用数学库(math)的使用,库中常用数学常数和函数791.4.9模块的使用数学库示例数学

40、库示例#导入数学库importmath#查看圆周率常数#求x的y次方pow(x,y)math.pow(math.pi,2)#边长为和,两边夹角为37度的三角形面积计算8.3*10.58*math.sin(37.0/180*3.1416)/2frommathimportsqrt#引入数学库中的sqrt函数sqrt(16)frommathimport*#引入数学库中所有的函数sqrt(16)801.4.9模块的使用在中重新导入需要使用imp模块的reload函数,例如当对xyz模块进行了修改后:fromimpimportreloadreload(xyz)Python首先在当前目录中查找需要导入的模

41、块文件,如果没有找到则从sys模块的path变量所指定的目录中查找。可以使用sys模块的path变量查看python导入模块时搜索模块的路径,也可以向其中append自定义的目录以扩展搜索路径。importsyssys.path.append(/Users/michael/my_py_scripts)在导入模块时,会优先导入相应的pyc文件,如果相应的pyc文件与py文件时间不相符,则导入py文件并重新编译该模块。811.5Python代码规范(1)缩进类定义、函数定义、选择结构、循环结构,行尾的冒号表示缩进的开始python程序是依靠代码块的缩进来体现代码之间的逻辑关系的,缩进结束就表示一个

42、代码块结束了。同一个级别的代码块的缩进量必须相同。一般而言,以4个空格为基本缩进单位,可以通过下面的方法进行代码块的缩进和反缩进:FortmatIndentRegion/DedentRegion821.5Python代码规范(2)注释一个好的、可读性强的程序一般包含30%以上的注释。常用的注释方式主要有两种:单行注释:以#开始,表示本行#之后的内容为注释多行注释:包含在一对三引号.或.之间且不属于任何语句的内容将被解释器认为是注释在IDLE开发环境中,可以通过下面的操作快速注释(Alt+3)/解除注释(Alt+4)大段内容:FormatCommentOutRegion/UncommentReg

43、ion831.5Python代码规范(3)每个import只导入一个模块(4)如果一行语句太长,可以在行尾加上来换行分成多行,之后不能有任何其他符号,包括空格和注释。a=1+2+3+4+5+6+7+8+9+10a55(5)必要的空格与空行运算符两侧、函数参数之间、逗号两侧建议使用空格分开。不同功能的代码块之间、不同的函数定义之间建议增加一个空行以增加可读性。(6)适当使用异常处理结构进行容错,后面将详细讲解。(7)软件应具有较强的可测试性,测试与开发齐头并进。841.6Python文件名.py:Python源文件,由Python解释器负责解释执行。.pyw:Python源文件,常用于图形界面程

44、序文件。.pyc:Python字节码文件,源文件经过编译而来,用于隐藏Python源代码和提高载入和运行速度。对于Python模块,第一次被导入时将被编译成字节码的形式,并在以后再次导入时优先使用“.pyc”文件,以提高模块的加载和运行速度。对于非模块文件,直接执行时并不生成“.pyc”文件,但可以使用py_compile模块的compile()函数进行编译以提高加载和运行速度。另外,Python还提供了compileall模块,其中包含compile_dir()、compile_file()和compile_path()等方法,用来支持批量Python源程序文件的编译。.pyo:优化的Pyt

45、hon字节码文件,同样无法使用文本编辑器直接查看其内容。可以使用“pythonO-mpy_compilefile.py”或“pythonOO-mpy_compilefile.py”进行优化编译。.pyd:一般是由其他语言编写并编译的二进制文件,常用于实现某些软件工具的Python编程接口插件或Python动态链接库。85*Python脚本的“_name_”每个.py脚本为一个模块,此模块有两种运行方式:第一种,模块本身直接运行第二种,被其他模块调用运行为区别这两种情况,在运行时解释器设置“_name_”属性:第一种,“_name_”属性被设为“_main_”第二种,“_name_”属性被设为模

46、块名,不带路径和扩展名例如,假设文件中只包含下面一行代码:print(_name_)在IDLE中直接运行该模块时,或者在命令行提示符环境中运行该程序文件时,运行结果如下:_main_而将该文件作为模块导入时得到如下执行结果:importnametestnametest86*Python脚本的“_name_”利用该属性可控制Python程序的运行方式。如有模块hello.py:if_name_=_main_:sayHello()else:saygoodbye()defsayHello():str=helloprint(str);defsaygoodbye():str=goodbyeprint(s

47、tr);#程序直接执行时将会得到提示“hello”;被调用的话,提示goodbye。87*编写自己的包与模块包可以看做多个模块和子包的上级,对应一个目录或文件夹。在包的每个目录中都必须包含一个文件,该文件可以是一个空文件,仅用于表示该目录是一个包。文件的主要用途是设置_all_变量以及所包含的包初始化所需的代码。其中_all_变量中定义的对象可以在使用fromimport*时全部正确导入。881.9Python快速入门例:用户输入一个三位自然数,计算并输出其百位、十位和个位上的数字。x=input(请输入一个三位数:)a=x/100b=x/10%10c=x%10print(a,b,c)891.

48、9Python快速入门例:用户输入年份,判断是否为闰年。判断闰年的规则为:能被4整除且不能被100整除的为闰年(如2004年是,1900年不是)能被400整除的是闰年(如2000年是,1900年不是)y=int(input(请输入年份:)if(y%4=0andy%100!=0)or(y%400=0):print(y,是闰年)else:print(y,不是闰年)901.9Python快速入门例:已知三角形的两边长及其夹角,求第三边长。importmathx=input(输入两边长及夹角(度):)a,b,sita=x#序列解包c=math.sqrt(a*2+b*2-2*a*b*math.cos(sita*math.pi/180)print(c=,c)911.9Python快速入门例:任意输入三个英文单词,按字典顺序输出。s=input(x,y,z=)x,y,z=s.split(,)ifxy:x,y=y,xifxz:x,z=z,xifyz:y,z=z,yprint(x,y,z)92

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号