2024年-Python基础知识学习课件_第1页
2024年-Python基础知识学习课件_第2页
2024年-Python基础知识学习课件_第3页
2024年-Python基础知识学习课件_第4页
2024年-Python基础知识学习课件_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

第1章基础知识15/13/2024课程概要主要内容:基础知识数据结构字符串与正则表达式函数面向对象程序设计文件和异常处理GUI编程数据库编程多媒体编程教材:董付国,《Python程序设计》,清华大学出版社MagnusLieHetland,《Python基础教程》,人民邮电出版社MarkLutz,《Python学习手册》,机械工业出版社25/13/20241.1Python是一种怎样的语言Python是一种面向对象、解释型计算机程序设计语言,由GuidovanRossum于1989年发明,第一个公开发行版发行于1991年。Python命名是因为他是一个叫MontyPython的喜剧团体的爱好者。35/13/20241.1Python是一种怎样的语言跨平台和兼容性非常好,可运行在多种计算机平台和操作系统中,如各位unix,windows,MacOS,OS/2等等自动内存回收。这个特点使得程序员在编程的时候,可以不考虑程序运行中的内存管理,而专注于自己的逻辑处理。面向对象特性(object_orientedProgramming)。45/13/20241.1Python是一种怎样的语言强大的动态数据类型支持,不同数据类型相加会引发一个异常。强大的类库支持,使编写文件处理、正则表达式,网络连接等程序变得相当容易。Python的交互命令行模块能方便地进行小代码调试和学习。Python易于扩展,可以通过C或C++编写的模块进行功能扩展。系统编程,提供大量系统接口API,能方便进行系统维护和管理。图形处理,有PIL、Tkinter等图形库支持,能方便进行图形处理。数学处理,NumPy扩展提供大量与许多标准数学库的接口。文本处理,Python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用Python进行XML程序的开发。数据库编程,程序员可通过遵循PythonDB-API(数据库应用程序编程接口)规范的模块与MicrosoftSQLServer、Oracle、Sybase、DB2、Mysql等数据库通信。Python自带有一个Gadfly模块,提供了一个完整的SQL环境。55/13/20246作为Web应用的开发语言,支持最新的XML技术。近年来随着游戏产业的兴起,Python开始越来越多的涉足游戏领域。Pygame是Python开发游戏的一个库,关于Pygame具体可参考网站。1.1Python是一种怎样的语言5/13/20241.2Python编辑与运行环境下载和安装Pythonhttp://www.P运行Python

GUI:1.命令提示符下C:\Python27>helloworld.py2.默认编程环境IDLE(IntegratedDevelopmentEnvironment)>>>importhelloworld

注:紫色的符号是一些方法,橘红色一般是关键字,绿色是文本,红色是注释部分,剩下的就是黑色了3.Python(commandline)>>>importhelloworld

其他可选开发环境:wxPython、Jython、Cython75/13/20241.2Python编辑与运行环境查看已安装版本的方法(在所启动的IDLE界面也可以直接看到):>>>importsys>>>sys.version常用快捷键:Alt+P、Alt+N:浏览历史命令Ctrl+F6:重启Shell,之前定义的对象全部无效F1:打开Python帮助文档Ctrl+[、Ctrl+]:缩进代码Alt+3、Alt+4:注释、取消注释85/13/2024关于Python的资源中文的简明Python教程/abyteofPython_cn/chinese/index.html挑战智商的Python在线测试:http://www.P编程趣味学习网站/zh Pygame学习网站1.2Python编辑与运行环境95/13/20241.3Python基础知识

1.3.1Python的对象模型对象是python语言中最基本的概念,在python中处理的每样东西都是对象。python中有许多内置对象可供编程者使用,内置对象可直接使用,如数字、字符串、列表、del等;非内置对象需要导入模块才能使用,如正弦函数sin(x),随机数产生函数random()等。105/13/20241.3.1Python的对象模型常用内置对象对象类型示例数字1234,

3.14,

3+4j字符串'swfu',"I'mstudent",'''Python'''

列表[1,2,3]字典{1:'food',2:'taste',3:'import'}元组(2,-5,6)文件f=open('data.dat','r')集合set('abc'),{'a','b','c'}布尔型True,False空类型None编程单元类型函数、模块、类115/13/20241.3.2python的变量和引用1.变量的创建x=3创建了变量x,不需要提前声明变量a,b=3,5a,b=b,a2.引用

在python中从变量到对象的连接称为引用。>>>x=3变量拥有自己的存储空间,变量连接到对象是该变量存储了对象单元的内存地址,并没有存储对象的值。x3变量对象引用125/13/20241.3.2python的变量和引用3.共享引用

共享引用是指多个变量引用同一个对象。下面的语句使两个变量都引用同一个对象3>>>a=3>>>b=a使用id函数可以查看对象的内存地址4.垃圾回收机制对于没有任何变量指向的值,Python自动将其删除。Python跟踪所有的值,并自动删除不再有变量指向的值。135/13/20241.3.2python的变量和引用145.内存管理机制(1)垃圾回收(2)引用计数(3)内存池机制当申请的内存小于256字节时会在内存池中申请内存;当申请的内存大于256字节时,使用malloc申请内存。5/13/20241.3.2python的变量和引用5.对象类型的动态的,强类型>>>a=3>>>type(a)<type'int'>>>>a='4'>>>type(a)<type'str'>>>>a={3,5}>>>type(a)<type'set'>>>>a=[1,2,3]>>>type(a)<type'list'>155/13/20241.3.2python的变量和引用6.变量命名以字母或下划线(有特殊含义)开头变量名中不能有空格以及标点符号(括号、引号、逗号、斜线、反斜线、冒号、句号、问号等等)不要使用关键字(在keyword模块中)作变量名>>>importkeyword>>>keyword.kwlist不要使用系统内置的模块名或函数名(可以通过dir(__builtins__)查看变量名大小写敏感165/13/20241.3.3数字数字是python中最常用的对象,属于不可变对象。可以表示任意大小的数字。>>>a=99999999999999999999999999999999>>>a*a9999999999999999999999999999999800000000000000000000000000000001L>>>a**3999999999999999999999999999999970000000000000000000000000000000299999999999999999999999999999999LPython的IDEL交互界面可以当做简便计算器来使用。175/13/20241.3.3数字1.4.3.1整数十进制整数如,0、-1、9、123十六进制整数,需要16个数字0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f来表示整数,必须以0x开头,如0x10、0xfa、0xabcdef八进制整数,只需要8个数字0、1、2、3、4、5、6、7来表示整数,必须以0o开头,如0o35、0o11二进制整数、只需要2个数字0、1来表示整数,必须以0b开头如,0b101、0b100185/13/20241.3.3数字1.4.3.2浮点数浮点数又称小数,15.0、0.37、-11.2、1.2e2、314.15e-2195/13/20241.3.3数字1.4.3.3复数Python中的复数与数学上的复数一致,由实部和虚部构成,并且使用j或J来表示虚部。>>>a=3+4j>>>b=5+6j>>>c=a+b>>>c8+10j>>>c.real#复数的实部8.0>>>c.imag #复数的虚部10.0>>>a.conjugate()(3-4j)205/13/20241.3.4字符串用单引号、双引号或三引号括起来的符号系列称为字符串单引号、双引号、三单引号、三双引号可以互相嵌套,用来表示复杂字符串。'abc'、'123'、'中国'、"Python"字符串属于不可变序列

空串表示为''或

""

三引号'''或"""表示的字符串可以换行,支持排版较为复杂的字符串;三引号还可以在程序中表示较长的注释。215/13/20241.3.4字符串1.字符串合并>>>a='abc'+'123'#生成新对象2.字符串格式化

把对象按格式要求转换为字符串。>>>a=3.6674>>>'%7.3f'%a#或者直接使用str(a)'3.667'225/13/20241.3.4字符串3.转义字符\n:换行符\t:制表符\r:回车\’:单引号\”:双引号\\:一个\\ddd:3位八进制数对应的字符\xhh:2位十六进制数对应的字符

注:字符串界定符前面加字母r表示原始字符串,其中的特殊字符不进行转义,但字符串的最后一个字符不能是\。235/13/20241.3.5操作符和表达式操

符描

述x+y,

x-y加法/字符串合并,减法/集合差集x*y,

x/y,

x//y,

x%y乘法/重复,除法,求整商,余数/格式化(对实数可以进行整除和余数运算)x**y幂运算x<y,

x<=y,

x>y,

x>=y大小比较,集合的包含关系比较x==y,

x!=y相等比较(值),不等比较xory逻辑或(只有x为假才会计算y)xandy逻辑与(只有x为真才会计算y)notx逻辑非xiny,xnotiny成员与集合的关系xisy,xisnoty对象实体测试(地址)|、^、&、<<、>>位运算符245/13/20241.3.6常用内置函数内置函数不需要导入任何模块即可使用执行下面的命令可以列出所有内置函数>>>dir(__builtins__)255/13/20241.4.6常用内置函数函

数功

能abs(x)返回数字x的绝对值bin(x)把数字x转换为二进制串chr(x)返回编码为x的字符eval(s[,globals[,locals]])计算字符串中表达式的值并返回float(x)把数字或字符串x转换为浮点数并返回help(obj)返回对象obj的帮助信息hex(x)把数字x转换为十六进制串id(obj)返回对象obj的标识input([提示串])接受键盘输入,返回值len(obj)返回对象obj包含的元素个数265/13/20241.3.6常用内置函数oct(x)把数字x转换为八进制串ord(s)返回1个字符s的编码。chr(ord('3')+1)==>'4'range([start,]

end[,step])返回一个等差数列,不包括终值round(x[,小数位数])对x进行四舍五入。若不指定小数位数,则返回整数。str(obj)把对象obj转换为字符串int(x[,d])返回数字整数部分,或把d进制的字符串x转换为十进制并返回,d默认为十进制list(x),set([obj]),tuple(x)把对象转换为列表、集合或元组并返回max(x),min(x),sum(x)返回序列中的最大值、最小值或数值之和pow(x,y)返回x的y次方sorted(列表[,cmp[,key[reverse]]]返回排序后的列表type(obj)返回对象obj的类型275/13/20241.3.7对象的删除Python中删除对象用del语句。del用来删除一个对象,并释放对象所占资源。del的用法演示如下:>>>a=[1,2,3]>>>dela[1]>>>a[1,3]>>>x=5>>>x5>>>delx#此后x就不存在了

285/13/20241.3.8基本输入输出用Python进行程序设计,输入是通过input()函数来实现的,imput()的一般格式为:x=input('提示:')该函数返回输入的对象。可输入数字、字符串和其它任意类型对象。295/13/20241.3.8基本输入输出输出是通过print语句来完成的,print语句的一般格式为:print对象1,对象2,...,对象n在Python3中,print是函数,而不是语句。在Python中进行重定向输出的用法:>>>fp=open(r'c:\mytest.txt','a+')>>>print>>fp,"Hello,world"

>>>fp.close()305/13/20241.3.9模块的使用Python默认安装仅包含部分基本或核心模块,但用户可以安装大量的扩展模块。在Python启动时,仅加载了很少的一部分模块,在需要时由程序员显式地加载(可能需要先安装)其他模块。减小运行的压力,仅加载真正需要的模块和功能,且具有很强的可扩展性。315/13/20241.3.9模块的使用import模块名>>>importmath>>>math.sin(0.5)#求0.5的正弦>>>importrandom>>>x=random.random()#获得[0,1)内的随机小数>>>y=random.random()>>>n=random.randint(1,100)#获得[1,100]上的随机整数可以使用dir函数查看任意模块中所有的对象列表,如果调用不带参数的dir()函数,则返回当前脚本的所有名字列表。可以使用help函数查看任意模块或函数的使用帮助。325/13/20241.3.9模块的使用frommathimportsin#可以减少查询次数,提高执行速度frommathimport*#谨慎使用>>>frommathimportsin>>>sin(3)0.1411200080598672>>>frommathimportsinasf#别名>>>f(3)0.141120008059867335/13/20241.3.9模块的使用可以使用sys.modules.items()显示所有预加载模块的相关信息在2.x中可以使用reload函数重新导入一个模块,在3.x中,需要使用imp模块的reload函数Python首先在当前目录中查找需要导入的模块文件,如果没有找到则从sys模块的path变量所指定的目录中查找。可以使用sys模块的path变量查看python导入模块时搜索模块的路径,也可以向其中append自定义的目录以扩展搜索路径。在导入模块时,会优先导入相应的pyc文件,如果相应的pyc文件与py文件时间不相符,则导入py文件并重新编译该模块。345/13/20241.3.9模块的使用ossysmathLocale:提供了C语言本地化函数的接口,并提供相关函数实现基于当前locale设置的数字与字符串转换randomstructpickle:序列化datetimetimewmi:需安装tkinter:GUI开发urllib/urllib2:网页编程Pygame:游戏开发tkinter、wxPython:GUI编程SciPy:科学计算PIL:图像处理fabric:远程操作与部署,/en/1.10/capstone:反汇编框架ropper:ROP相关框架IDAPython:IDA插件,/p/idapython/Yara:恶意软件识别与分类引擎355/13/20241.4

Python代码规范(1)缩进类定义、函数定义、选择结构、循环结构,行尾的冒号表示缩进的开始python程序是依靠代码块的缩进来体现代码之间的逻辑关系的,缩进结束就表示一个代码块结束了。

同一个级别的代码块的缩进量必须相同。一般而言,以4个空格为基本缩进单位。365/13/20241.4

Python代码规范(2)注释一个好的、可读性强的程序一般包含30%以上的注释。常用的注释方式主要有两种:以#开始,表示本行#之后的内容为注释包含在一对三引号之间且不属于任何语句的内容将被解释器认为是注释375/13/20241.4

Python代码规范(3)每个import只导入一个模块(4)如果一行语句太长,可以在行尾加上\来换行分成多行,但是更建议使用括号来包含多行内容。(5)必要的空格与空行运算符两侧、函数参数之间、逗号两侧建议使用空格分开。不同功能的代码块之间、不同的函数定义之间建议增加一个空行以增加可读性。(6)适当使用异常处理结构进行容错,后面将详细讲解。(7)软件应具有较强的可测试性,测试与开发齐头并进,后面将详细讲解。385/13/20241.5Python文件名.py:Python源文件.pyc:Python字节码文件。对于Python模块,第一次被导入时将被编译成字节码的形式,以提高脚本的启动速度。对于非模块文件,直接执行时并不生成pyc文件,可以使用py_compile模块的compile函数进行编译。.pyo:优化的Python字节码文件。可以使用”python–Ofile.py”或”python–OOfile.py”进行优化编译。395/13/20241.6Python程序的运行方式每个Python脚本在运行时都有一个__name__属性。如果脚本作为模块被导入,则其__name__属性被设置为模块名;如果脚本独立运行,则其__name__属性被设置为__main__。405/13/20241.7编写自己的包与模块包可以看做处于同一目录中的模块。在包的每个目录中都必须包含一个__init__.py文件,该文件可以是一个空文件,仅用于表示该目录是一个包。__init__.py文件的主要用途是设置__all__变量以及所包含的包初始化所需的代码。其中__all__变量中定义的对象可以在使用from…import*时全部正确导入。415/13/20241.8Python快速入门问题1:用户输入一个三位自然数,计算并输出其佰位

温馨提示

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

评论

0/150

提交评论