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

上传人:牧羊曲112 文档编号:1869362 上传时间:2022-12-22 格式:PPT 页数:44 大小:643.50KB
返回 下载 相关 举报
Python程序设计 基础知识课件.ppt_第1页
第1页 / 共44页
Python程序设计 基础知识课件.ppt_第2页
第2页 / 共44页
Python程序设计 基础知识课件.ppt_第3页
第3页 / 共44页
Python程序设计 基础知识课件.ppt_第4页
第4页 / 共44页
Python程序设计 基础知识课件.ppt_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《Python程序设计 基础知识课件.ppt》由会员分享,可在线阅读,更多相关《Python程序设计 基础知识课件.ppt(44页珍藏版)》请在三一办公上搜索。

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.ver

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

3、SomePackagepip uninstall SomePackagePython3安装包中已默认包含pip,1.4 Python基础知识,1.4.1 Python的对象模型,对象是python语言中最基本的概念,在python中处理的每样东西都是对象。python中有许多内置对象可供编程者使用,内置对象可直接使用,如数字、字符串、列表、del等;非内置对象需要导入模块才能使用,如正弦函数sin(x),随机数产生函数random( )等。,1.4.1 Python的对象模型,常用内置对象,1.4.2 python的变量和引用,1.变量的创建 x=3 创建了变量x,不需要提前声明变量 a,b=

4、3,5 a,b=b,a2.引用 在python中从变量到对象的连接称为引用。x=3变量拥有自己的存储空间,变量连接到对象是该变量存储了对象单元的内存地址,并没有存储对象的值。,1.4.2 python的变量和引用,3. 共享引用 共享引用是指多个变量引用同一个对象。下面的语句使两个变量都引用同一个对象3a=3b=a使用id函数可以查看对象的内存地址4.垃圾回收机制 对于没有任何变量指向的值,Python自动将其删除。Python跟踪所有的值,并自动删除不再有变量指向的值。,1.4.2 python的变量和引用,5.对象类型的动态的,强类型 a=3 type(a) a=4 type(a) a=3

5、,5 type(a) a=1,2,3 type(a),1.4.2 python的变量和引用,6. 变量命名以字母或下划线(有特殊含义)开头变量名中不能有空格以及标点符号(括号、引号、逗号、斜线、反斜线、冒号、句号、问号等等)不要使用关键字(在keyword模块中)作变量名不要使用系统内置的模块名或函数名(可以通过dir(_builtins_)查看)作变量名大小写敏感,1.4.3 数字,数字是python中最常用的对象,属于不可变对象。可以表示任意大小的数字。 a=99999999999999999999999999999999 a*a999999999999999999999999999999

6、9800000000000000000000000000000001L a*3999999999999999999999999999999970000000000000000000000000000000299999999999999999999999999999999LPython的IDEL交互界面可以当做简便计算器来使用。,1.4.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来表示整数,必须以0 x开头,如0 x10、0 xfa、0 xabcdef八进制整数,只需要8个数字0、1、

7、2、3、4、5、6、7来表示整数,必须以0o开头,如0o35、0o11二进制整数、只需要2个数字0、1来表示整数,必须以0b开头如,0b101、0b100,1.4.3 数字,1.4.3.2 浮点数浮点数又称小数,15.0、0.37、-11.2、1.2e2、314.15e-2,1.4.3 数字,1.4.3.3 复数Python中的复数与数学上的复数一致,由实部和虚部构成,并且使用j或J来表示虚部。a=3+4jb=5+6jc=a+bc8+10j c.real #复数的实部8.0 c.imag#复数的虚部10.0 a.conjugate()(3-4j),1.4.4 字符串,用单引号、双引号或三引号括

8、起来的符号系列称为字符串单引号、双引号、三单引号、三双引号可以互相嵌套,用来表示复杂字符串。abc、123、中国、Python字符串属于不可变序列 空串表示为或 三引号或表示的字符串可以换行,支持排版较为复杂的字符串;三引号还可以在程序中表示较长的注释。,1.4.4 字符串,1. 字符串合并 a=abc + 123 #生成新对象2. 字符串格式化 把对象按格式要求转换为字符串。a=3.6674%7.3f % a #或者直接使用str(a) 3.667,1.4.4 字符串,3. 转义字符n:换行符t:制表符r:回车:单引号”:双引号:一个ddd:3位八进制数对应的字符xhh:2位十六进制数对应的

9、字符 字符串界定符前面加字母r表示原始字符串,其中的特殊字符不进行转义,但字符串的最后一个字符不能是。,1.4.5 操作符和表达式,1.4.6 常用内置函数,内置函数不需要导入任何模块即可使用执行下面的命令可以列出所有内置函数 dir(_builtins_),1.4.6 常用内置函数,1.4.6 常用内置函数,1.4.7 对象的删除,Python中删除对象用del语句。del用来删除一个对象,并释放对象所占资源。del的用法演示如下:a=1, 2, 3del a1a1, 3x=5x5del x #此后x就不存在了,1.4.8 基本输入输出,用Python进行程序设计,输入是通过input( )

10、函数来实现的,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(r

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

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

13、3)0.141120008059867,1.4.9 模块的使用,可以使用sys.modules.items()显示所有预加载模块的相关信息在2.x中可以使用reload函数重新导入一个模块,在3.x中,需要使用imp模块的reload函数Python首先在当前目录中查找需要导入的模块文件,如果没有找到则从sys模块的path变量所指定的目录中查找。可以使用sys模块的path变量查看python导入模块时搜索模块的路径,也可以向其中append自定义的目录以扩展搜索路径。在导入模块时,会优先导入相应的pyc文件,如果相应的pyc文件与py文件时间不相符,则导入py文件并重新编译该模块。,1.4

14、.9 模块的使用,ossysmathLocale:提供了C语言本地化函数的接口,并提供相关函数实现基于当前locale设置的数字与字符串转换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:/,1.5 Pyth

15、on代码规范,(1)缩进类定义、函数定义、选择结构、循环结构,行尾的冒号表示缩进的开始 python程序是依靠代码块的缩进来体现代码之间的逻辑关系的,缩进结束就表示一个代码块结束了。 同一个级别的代码块的缩进量必须相同。一般而言,以4个空格为基本缩进单位,可以通过下面的方法进行代码块的缩进和反缩进:FortmatIndent Region/Dedent Region,1.5 Python代码规范,(2)注释一个好的、可读性强的程序一般包含30%以上的注释。常用的注释方式主要有两种: 以#开始,表示本行#之后的内容为注释 包含在一对三引号.或.之间且不属于任何语句的内容将被解释器认为是注释在ID

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

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

18、8 编写自己的包与模块,包可以看做处于同一目录中的模块。在包的每个目录中都必须包含一个_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%10p

19、rint a, b, c,1.9 Python快速入门,问题2:已知三角形的两边长及其夹角,求第三边长。import mathx = input(输入两边及夹角(度):)a, b, sita = xc = math.sqrt(a*2 + b*2 - 2*a*b*math.cos(sita*math.pi/180)print c=,c,1.9 Python快速入门,上面的代码也可以写成这样,虽然减少了需要输入的代码,但一般不建议这样做:from math import *x = input(输入两边及夹角(度):)a, b, sita = xc = sqrt(a*2 + b*2 - 2*a*b*

20、cos(sita*pi/180)print c=,c,1.9 Python快速入门,这样就可以了:from math import sqrtx = input(输入两边及夹角(度):)a, b, sita = xc = sqrt(a*2 + b*2 - 2*a*b*cos(sita*pi/180)print c=,c,1.9 Python快速入门,问题3:任意输入三个英文单词,按字典顺序输出。s = input(x,y,z=)x, y, z = s.split(,) if x y:x, y = y, x if x z: x, z = z, xif y z: y, z = z, yprint(x

21、, y, z),1.10 The Zen of Python,Beautiful is better than ugly.Explicit is better than implicit.Simple is better than complex.Complex 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 prac

22、ticality beats purity.Errors should never pass silently.Unless explicitly silenced.In the face of ambiguity, refuse the temptation 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!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号