Python程序设计-基础知识课件.ppt

上传人:飞****2 文档编号:78939736 上传时间:2023-03-19 格式:PPT 页数:44 大小:643.50KB
返回 下载 相关 举报
Python程序设计-基础知识课件.ppt_第1页
第1页 / 共44页
Python程序设计-基础知识课件.ppt_第2页
第2页 / 共44页
点击查看更多>>
资源描述

《Python程序设计-基础知识课件.ppt》由会员分享,可在线阅读,更多相关《Python程序设计-基础知识课件.ppt(44页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第第1 1章基础知识章基础知识1.0 Python是一种怎样的语言解释型语言,伪编译胶水语言开源跨平台免费、自由软件强类型、动态类型自动内存管理面向对象有大量可用的库增加其他语言编写并编译的模块即可扩展功能1.1 Python版本之争版本之争2.x:一边鄙视一边用3.x:必然的趋势多版本共存与切换简便方法:更改系统环境变量path查看已安装版本的方法(在所启动的IDLE界面也可以直接看到):import sys sys.version2.7.8(default,Jun 30 2014,16:08:48)MSC v.1500 64 bit(AMD64)sys.version_infosys.ve

2、rsion_info(major=2,minor=7,micro=8,releaselevel=final,serial=0)1.2 安装Pythonhttps:/www.python.org/https:/www.python.org/doc/http:/bugs.python.org/https:/ 使用pip管理第三方包Python2中需要单独安装下载地址:https:/pypi.python.org/pypi/pip安装方法:cmd=python get-pip.py用法示例pip install NumPypip listpip install-upgrade SomePackage

3、pip uninstall SomePackagePython3安装包中已默认包含pip1.4 Python基础知识基础知识1.4.1 Python的对象模型的对象模型对象是python语言中最基本的概念,在python中处理的每样东西都是对象。python中有许多内置对象可供编程者使用,内置对象可直接使用,如数字、字符串、列表、del等;非内置对象需要导入模块才能使用,如正弦函数sin(x),随机数产生函数random()等。1.4.1 Python的对象模型的对象模型常用内置对象对象类型对象类型示例示例数字数字1234,1234,3.14,3.14,3+4j3+4j字符串字符串swfu,I

4、mstudentswfu,Imstudent,Python,Python 日期日期2012-08-252012-08-25列表列表1,2,31,2,3字典字典1:food,2:taste,3:import1:food,2:taste,3:import元组元组(2,-5,6)(2,-5,6)文件文件f=open(data.dat,r)f=open(data.dat,r)集合集合set(abc),a,b,cset(abc),a,b,c布尔型布尔型True,FalseTrue,False空类型空类型NoneNone编程单元类型编程单元类型函数、模块、类函数、模块、类1.1.4 4.2 python.

5、2 python的变量和引用的变量和引用1.变量的创建变量的创建 x=3 创建了变量x,不需要提前声明变量 a,b=3,5 a,b=b,a2.引用引用 在python中从变量到对象的连接称为引用。x=3变量拥有自己的存储空间,变量连接到对象是该变量存储了对象单元的内存地址,并没有存储对象的值。x3变量对象引用1.1.4 4.2 python.2 python的变量和引用的变量和引用3.共享引用共享引用共享引用是指多个变量引用同一个对象。下面的语句使两个变量都引用同一个对象3a=3b=a使用id函数可以查看对象的内存地址4.垃圾回收机制 对于没有任何变量指向的值,Python自动将其删除。Pyt

6、hon跟踪所有的值,并自动删除不再有变量指向的值。1.1.4 4.2 python.2 python的变量和引用的变量和引用5.对象类型的动态的,强类型 a=3 type(a)a=4 type(a)a=3,5 type(a)a=1,2,3 type(a)1.1.4 4.2 python.2 python的变量和引用的变量和引用6.变量命名以字母或下划线(有特殊含义)开头变量名中不能有空格以及标点符号(括号、引号、逗号、斜线、反斜线、冒号、句号、问号等等)不要使用关键字(在keyword模块中)作变量名不要使用系统内置的模块名或函数名(可以通过dir(_builtins_)查看)作变量名大小写敏

7、感1.4.3 数字数字是python中最常用的对象,属于不可变对象。可以表示任意大小的数字。a=99999999999999999999999999999999 a*a9999999999999999999999999999999800000000000000000000000000000001L a*3999999999999999999999999999999970000000000000000000000000000000299999999999999999999999999999999LPython的IDEL交互界面可以当做简便计算器来使用。1.4.3 数字1.4.3.1整数十进制整数

8、如,0、-1、9、123十六进制整数,需要16个数字0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f来表示整数,必须以0 x开头,如0 x10、0 xfa、0 xabcdef八进制整数,只需要8个数字0、1、2、3、4、5、6、7来表示整数,必须以0o开头,如0o35、0o11二进制整数、只需要2个数字0、1来表示整数,必须以0b开头如,0b101、0b1001.4.3 数字1.4.3.2浮点数浮点数又称小数,15.0、0.37、-11.2、1.2e2、314.15e-21.4.3 数字1.4.3.3复数Python中的复数与数学上的复数一致,由实部和虚部构成,并且使用j或J来表

9、示虚部。a=3+4jb=5+6jc=a+bc8+10jc.real#复数的实部8.0c.imag#复数的虚部10.0 a.conjugate()(3-4j)1.4.4字符串用单引号、双引号或三引号括起来的符号系列称为字符串单引号、双引号、三单引号、三双引号可以互相嵌套,用来表示复杂字符串。abc、123、中国、Python字符串属于不可变序列空串表示为或 三引号或表示的字符串可以换行,支持排版较为复杂的字符串;三引号还可以在程序中表示较长的注释。1.4.4字符串1.1.字符串合并字符串合并 a=abc+123#生成新对象2.字符串格式化字符串格式化 把对象按格式要求转换为字符串。a=3.667

10、4%7.3f%a#或者直接使用str(a)3.6671.4.4字符串3.转义字符转义字符n:换行符:换行符t:制表符:制表符r:回车:回车:单引号:单引号”:双引号:双引号:一个:一个ddd:3位八进制数对应的字符位八进制数对应的字符xhh:2位十六进制数对应的字符位十六进制数对应的字符 字符串界定符前面加字母r表示原始字符串,其中的特殊字符不进行转义,但字符串的最后一个字符不能是。1.4.5 操作符和表达式操 作 符描 述x+y,x-y加法字符串合并,减法集合差集x*y,x/y,x/y,x%y乘法重复,除法,求整商,余数格式化(对实数可以进行整除和余数运算)x*y幂运算xy,xy,x=y大小

11、比较,集合的包含关系比较x=y,x!=y相等比较(值),不等比较xory逻辑或(只有x为假才会计算y)xandy逻辑与(只有x为真才会计算y)notx逻辑非xiny,xnotiny成员与集合的关系xisy,xisnoty对象实体测试(地址)|、&、位运算符1.4.6 常用内置函数内置函数不需要导入任何模块即可使用执行下面的命令可以列出所有内置函数 dir(_builtins_)1.4.6 常用内置函数函 数功 能abs(x)返回数字x的绝对值bin(x)把数字x转换为二进制串chr(x)返回编码为x的字符eval(s,globals,locals)计算字符串中表达式的值并返回float(x)把

12、数字或字符串x转换为浮点数并返回help(obj)返回对象obj的帮助信息hex(x)把数字x转换为十六进制串id(obj)返回对象obj的标识input(提示串)接受键盘输入,返回字符串len(obj)返回对象obj包含的元素个数1.4.6 常用内置函数oct(x)把数字x转换为八进制串ord(s)返回1个字符s的编码。chr(ord(3)+1)=4range(start,end,step)返回一个等差数列,不包括终值round(x,小数位数)对x进行四舍五入。若不指定小数位数,则返回整数。str(obj)把对象obj转换为字符串int(x,d)返回数字整数部分,或把d进制的字符串x转换为十

13、进制并返回,d默认为十进制list(x),set(obj),tuple(x)把对象转换为列表、集合或元组并返回max(x),min(x),sum(x)返回序列中的最大值、最小值或数值之和pow(x,y)返回x的y次方sorted(列表,cmp,keyreverse返回排序后的列表type(obj)返回对象obj的类型1.4.7 对象的删除Python中删除对象用del语句。del用来删除一个对象,并释放对象所占资源。del的用法演示如下:a=1,2,3del a1a1,3x=5x5del x#此后x就不存在了 1.4.8 基本输入输出用Python进行程序设计,输入是通过input()函数来实

14、现的,imput()的一般格式为:x=input(提示:)该函数返回输入的对象。可输入数字、字符串和其它任意类型对象。1.4.8 基本输入输出输出是通过print语句来完成的,print语句的一般格式为:print 对象1,对象2,.,对象n在Python3中,print是函数,而不是语句。1.4.8 基本输入输出在Python2.7.8之前的版本中进行重定向输出的用法:fp=open(rc:mytest.txt,a+)print fp,Hello,world fp.close()在Python 3.4.2版本中进行重定向输出的用法:fp=open(rd:mytest.txt,a+)print

15、(Hello,world!,file=fp)fp.close()1.4.9 模块的使用Python默认安装仅包含部分基本或核心模块,但用户可以安装大量的扩展模块,pip是管理模块的重要工具。在Python启动时,仅加载了很少的一部分模块,在需要时由程序员显式地加载(可能需要先安装)其他模块。减小运行的压力,仅加载真正需要的模块和功能,且具有很强的可扩展性。1.4.9 模块的使用import模块名importmathmath.sin(0.5)#求0.5的正弦importrandomx=random.random()#获得0,1)内的随机小数y=random.random()n=random.ra

16、ndint(1,100)#获得1,100上的随机整数可以使用dir函数查看任意模块中所有的对象列表,如果调用不带参数的dir()函数,则返回当前脚本的所有名字列表。可以使用help函数查看任意模块或函数的使用帮助。1.4.9 模块的使用frommathimportsin#可以减少查询次数,提高执行速度frommathimport*#谨慎使用 from math import sin sin(3)0.1411200080598672 from math import sin as f#别名 f(3)0.1411200080598671.4.9 模块的使用可以使用sys.modules.items

17、()显示所有预加载模块的相关信息在2.x中可以使用reload函数重新导入一个模块,在3.x中,需要使用imp模块的reload函数Python首先在当前目录中查找需要导入的模块文件,如果没有找到则从sys模块的path变量所指定的目录中查找。可以使用sys模块的path变量查看python导入模块时搜索模块的路径,也可以向其中append自定义的目录以扩展搜索路径。在导入模块时,会优先导入相应的pyc文件,如果相应的pyc文件与py文件时间不相符,则导入py文件并重新编译该模块。1.4.9 模块的使用ossysmathLocale:提供了C语言本地化函数的接口,并提供相关函数实现基于当前lo

18、cale设置的数字与字符串转换randomstructpickle:序列化datetimetimewmi:需安装tkinter:GUI开发urllib/urllib2:网页编程Pygame:游戏开发tkinter、wxPython:GUI编程SciPy:科学计算PIL:图像处理fabric:远程操作与部署,http:/docs.fabfile.org/en/1.10/capstone:反汇编框架ropper:ROP相关框架IDAPython:IDA插件,https:/ 5 Python Python代码规范代码规范(1)缩进类定义、函数定义、选择结构、循环结构,行尾的冒号表示缩进的开始 pyt

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

20、tComment Out Region/Uncomment Region1.1.5 5 Python Python代码规范代码规范(3)每个import只导入一个模块(4)如果一行语句太长,可以在行尾加上来换行分成多行,但是更建议使用括号来包含多行内容。(5)必要的空格与空行运算符两侧、函数参数之间、逗号两侧建议使用空格分开。不同功能的代码块之间、不同的函数定义之间建议增加一个空行以增加可读性。(6)适当使用异常处理结构进行容错,后面将详细讲解。(7)软件应具有较强的可测试性,测试与开发齐头并进,后面将详细讲解。1.6 Python文件名.py:Python源文件.pyc:Python字节码文

21、件。对于Python模块,第一次被导入时将被编译成字节码的形式,以提高脚本的启动速度。对于非模块文件,直接执行时并不生成pyc文件,可以使用py_compile模块的compile函数进行编译。.pyo:优化的Python字节码文件。可以使用”python O file.py”或”python OO file.py”进行优化编译。1.7 Python程序的运行方式每个Python脚本在运行时都有一个_name_属性。如果脚本作为模块被导入,则其_name_属性被设置为模块名;如果脚本独立运行,则其_name_属性被设置为_main_。1.8 编写自己的包与模块包可以看做处于同一目录中的模块。在

22、包的每个目录中都必须包含一个_init_.py文件,该文件可以是一个空文件,仅用于表示该目录是一个包。_init_.py文件的主要用途是设置_all_变量以及所包含的包初始化所需的代码。其中_all_变量中定义的对象可以在使用from import*时全部正确导入。1.9 Python快速入门问题1:用户输入一个三位自然数,计算并输出其佰位、十位和个位上的数字。x=input(请输入一个三位数:)a=x/100b=x/10%10#或 b=x%100/10c=x-100*a-10*b#或c=x%10print a,b,c1.9 Python快速入门问题2:已知三角形的两边长及其夹角,求第三边长。

23、import mathx=input(输入两边及夹角(度):)a,b,sita=xc=math.sqrt(a*2+b*2-2*a*b*math.cos(sita*math.pi/180)print c=,c1.9 Python快速入门上面的代码也可以写成这样,虽然减少了需要输入的代码,但一般不建议这样做:from math import*x=input(输入两边及夹角(度):)a,b,sita=xc=sqrt(a*2+b*2-2*a*b*cos(sita*pi/180)print c=,c1.9 Python快速入门这样就可以了:from math import sqrtx=input(输入两

24、边及夹角(度):)a,b,sita=xc=sqrt(a*2+b*2-2*a*b*cos(sita*pi/180)print c=,c1.9 Python快速入门问题3:任意输入三个英文单词,按字典顺序输出。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)1.10 The Zen of PythonBeautiful is better than ugly.Explicit is better than implicit.Simple is better than complex.Com

25、plex is better than complicated.Flat is better than nested.Sparse is better than dense.Readability counts.Special cases arent special enough to break the rules.Although practicality beats purity.Errors should never pass silently.Unless explicitly silenced.In the face of ambiguity,refuse the temptati

26、on to guess.There should be one-and preferably only one-obvious way to do it.Although that way may not be obvious at first unless youre Dutch.Now is better than never.Although never is often better than right now.If the implementation is hard to explain,its a bad idea.If the implementation is easy to explain,it may be a good idea.Namespaces are one honking great idea-lets do more of those!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com