模块二 Python语言基础电子课件Python数据分析与应用PPT格式课件下载.pptx
《模块二 Python语言基础电子课件Python数据分析与应用PPT格式课件下载.pptx》由会员分享,可在线阅读,更多相关《模块二 Python语言基础电子课件Python数据分析与应用PPT格式课件下载.pptx(159页珍藏版)》请在冰点文库上搜索。
Python标准库非常庞大,可以处理各种工作。
而且,由于Python开源、免费的特征,不同社区的Python爱好者贡献了大量实用且高质量的扩展库,方便在程序设计时直接调用。
2.1Python概述,Python应用的广泛性Python在软件质量控制、提升开发效率、可移植性、组件集成、丰富的库支持等方面均处于领先地位。
许多大公司都在使用Python完成各种各样的任务,如YouTube、Instagram、Google、NASA等。
系统编程Python拥有操作系统内置接口,使其成为可移植的操作系统维护工具(有时也称为Shell工具)。
Python程序可以搜索文件和目录树,可以运行其他程序,可以使用进程或线程进行并行处理。
Python的标准库绑定了POSIX(可移植操作系统接口)及其他常规操作系统工具:
环境变量、文件、套接字、管道、进程、多线程、正则表达式模式匹配、命令行参数、标准流接口、Shell命令启动器、文件扩展名等。
此外,很多Python的系统工具在设计过程中也考虑了其可移植性。
2.1Python概述,2.1.2Python应用的广泛性2.科学与数字计算Python被广泛地应用于科学和数字计算中。
例如,NumPy、SciPy、BioPython、SunPy等Python扩展工具,经常被应用于生物信息学、物理、建筑、地理信息系统、图像可视化分析、生命科学等领域。
NumPy数值编程扩展包括很多高级工具,如矩阵对象、标准数学库的接口等。
它将Python变成一个缜密严谨并简单易用的数值计算工具,这个工具通常可以用来代替已有的代码,而这些代码都是用FORTRAN或C+等编译语言编写的。
其他一些数值计算工具为Python提供了动画、3D可视化、并行处理等功能的支持。
随着NumPy、SciPy、Matplotlib、ETS等众多程序库的开发,Python越来越适合进行科学计算。
与科学计算领域最流行的商业软件MATLAB相比,Python是一门真正的设计语言,比MATLAB所采用的脚本语言的应用范围更广泛,有更多程序库的支持,适用于Windows和Linux等多种平台,完全免费且开放源码。
2.1Python概述,2.1.2Python应用的广泛性3.数据库编程Python提供了所有主流的数据库接口,如Sybase、Oracle、Informix、ODBC、MySQL、PostgreSQL、SQLite等。
Python定义了一种脚本,可以存取SQL数据系统的可移植API,这个API对于各种底层应用的数据库系统都是统一的。
Python标准的pickle模块提供了一个简单的对象持久化系统,它能够让程序轻松地将整个Python对象保存或恢复到文件和文件类的对象中。
在网络上,同样可以找到名为ZODB的第三方系统,它为Python脚本提供了完整的面向对象数据库系统,系统SQLObject可以将关系数据库映射至Python的类模块。
2.1Python概述,2.1.2Python应用的广泛性4.游戏、多媒体、人工智能、XML、机器人等Python的应用领域很多,可以利用pygame系统对图形和游戏进行编程;
利用PIL、Piddle、ReportLab等模块,可以处理图像、声音、视频、动画等;
利用PyOpenGl模块,可以非常迅速地编写出三维场景;
利用PyRo工具包,可以进行机器人控制编程;
利用XML库、xmlrpclib模块和其他一些第三方扩展,可以进行XML解析;
利用神经网络仿真器和专业的系统Shell,可以进行AI编程;
使用NLTK包可以进行自然语言分析,甚至可以使用LySol程序下棋娱乐。
5.快速原型对于Python程序来说,使用Python或C编写组件看起来都是一样的。
正因为如此,我们可以在一开始利用Python做系统原型,之后再将组件移植到C或C+这样的编译语言上。
当原型确定后就不需要重写,这是Python和其他原型工具不同的地方。
系统中执行效率不高的部分可以保持不变,从而使使用和维护变得轻松起来。
2.1Python概述,2.1.2Python应用的广泛性,2.1Python概述,2.1.2Python应用的广泛性6.Internet脚本Python提供了标准的Internet模块,无论是在服务器端还是在客户端,它都能使Python程序广泛地在多种网络任务中发挥作用。
脚本可以通过套接字进行通信;
从发给服务器端的CGI脚本的表单中提取信息;
通过FTP传输文件;
解析、生成和分析XML文件;
发送、接收、编写和解析E-mail;
通过URL获取网页;
从获取的网页中解析HTML和XML文件;
通过XML-RPC、SOAP和Telnet通信等。
Python的库使这一切变得相当简单。
近些年出现了许多针对Python的Web开发工具包,如Django、TurboGears、Web2py、Pylons、Zope和WebWare,它们使得Python能够快速构建功能完善和高质量的网站。
例如,国内的豆瓣、果壳网等,国外的Google、Dropbox等。
很多这样的工具包包含了诸如对象关系映射器、模型/视图/控制器架构、服务器脚本和模板,以及支持Ajax等功能,从而提供了完整的、企业级的Web开发解决方案。
2.1Python概述,2.1.2Python应用的广泛性7.用户图形接口Python的简洁及快速的开发周期十分适合开发GUI程序。
Python内置了TKinter的标准面向对象接口TKGUIAPI,使Python程序可以生成可移植的GUI。
Python/TkinterGUI不做任何改变就可以运行在Windows、XWindows(UNIX和Linux)以及MacOS等平台上。
同时一个免费的扩展包PMW,为Tkinter工具包增加了一些高级部件。
此外,基于C+平台的工具wxPythonGUIAPI可以使用Python构建可移植的GUI。
PythonCard和Dabo等一些高级工具包是构建在wxPython和Tkinter的基础API之上的。
通过适当的库,就可以在Python中使用其他GUI工具包。
对于运行于浏览器中的应用或具有一些简单界面需求的应用,Jython和PythonWeb框架以及服务器端CG脚本都提供了其他用户界面的选择。
2.1Python概述,2.1.3开始使用Python1.交互方式单击Windows的“开始”按钮,在所有程序中单击Anaconda文件夹图标,然后单击JupyterNotebook图标即可启动JupyterNotebook,如图2-3所示。
2.1Python概述,2.1.3开始使用Python在提示符下输入“print(HelloWorld!
)”,单击工具栏上的“Run”按钮或者按Shift+Enter快捷键,紧接着在下一行会输出字符串“HelloWorld!
”,如图2-4所示。
这里的print是指将括号中的字符串“HelloWorld!
”打印到屏幕上,而不是在打印机上输出。
引号里面的内容表示一个完整的字符串,引号本身不在屏幕上输出。
2.1Python概述,2.1.3开始使用Python2.代码文件方式用户也可以像使用C+、Java等程序设计语言一样,先将程序代码保存在一个源程序文件中,然后用命令执行文件中的语句。
编写的Python源代码以.py为扩展名保存,然后在交互方式下输入以下语句来执行。
runC:
filename.py【例2-1】编写Python程序,分两行分别打印“HelloWorld!
”和“欢迎使用Python!
”。
程序代码:
#eg2_1.py#coding=gbkprint(HelloWorld!
)print(欢迎使用Python!
)其中,第1行是注释,第2行“#coding=gbk”用于处理中文编码,防止中文在输出时出现乱码。
如果控制台命令行当前目录就是eg2_1.py所在目录,执行“runeg2_1.py”命令,得到如图2-5所示的结果。
2.1Python概述2.1.3开始使用Python,图2-5在JupyterNotebook中运行eg2_1.py结果,3.代码风格简单地说,代码的风格是指代码的样子。
一个具有良好风格的程序不但能够提高程序的正确性,还能提高程序的可读性,便于交流和理解。
下面介绍几个对编写Python程序有比较重要影响的风格。
1)代码缩进代码缩进是Python语法中的强制要求。
Python源程序依赖于代码的缩进来实现程序代码逻辑上的归属。
同一个程序中每一级缩进时使用数量相同的空格或制表符(Tab键)。
空格和制表符不能混用。
混合使用空格和制表符缩进的代码将被转换成仅使用空格。
一个Python程序可能因为没有使用合适的空格缩进而导致完全不同的逻辑。
2.1Python概述,2.1.3开始使用Python,2.1Python概述,2.1.3开始使用Python【例2-2】用户输入一个正整数的值n,计算1!
+2!
+3!
+n!
的值。
实现此功能的源程序代码如下。
#eg1_2.py#coding=gbkn=int(input(请输入一个整数:
)k=1sum=0foriinrange(1,n+1):
k=k*isum=sum+kprint(sum=,sum),2.1Python概述,2.1.3开始使用Python如果由于某种原因导致上述程序中的一行源代码“sum=sum+k”前面没有缩进,变成如下所示的程序。
#eg1_2_1.py#coding=gbkn=int(input(请输入一个整数:
k=k*isum=sum+kprint(sum=,sum)此时,计算结果就不是1!
的值,而是n!
适当的空行适当的空行能够增加代码的可读性,方便交流和理解。
例如,在一个函数的定义开始之前和结束之后使用空行,在for语句功能模块之前和之后添加空行,能够极大地提高程序的可读性。
适当的注释程序中的注释内容是给人看的,不是为计算机写的。
编译时,注释语句的内容将被忽略。
程序中适当的注释有利于别人读懂程序,了解程序的用途,同时有助于程序员本人整理思路、方便回忆。
2.1Python概述,2.1.3开始使用Python,2.1Python概述,2.1.3开始使用Python4.模块模块是一种程序的组织形式。
它将彼此具有特定关系的一组Python可执行代码、函数或类组织到一个独立文件中,可以供其他程序使用。
模块可以分为标准模块和第三方模块。
程序员一旦创建了一个Python源文件,其不带后缀.py的文件名就是模块名。
共有以下三种模块导入方式。
2.1Python概述,2.1.3开始使用Python
(1)importmoduleName1,moduleName2。
这种方法一次可以导入多个模块。
但在使用模块中的类、方法、函数、常数等内容时,需要在它们前面加上模块名。
例如:
In1:
importmathmath.exp(3)Out1:
20.085536923187668在上述代码中,要使用exp(x)函数来求ex的值,需要先导入math模块,使用时须添加模块名为前缀,即math.exp(3)。
(2)frommoduleNameimport*。
这种方法一次导入一个模块中的所有内容。
使用时不需要添加模块名为前缀,但程序的可读性较差。
In2:
frommathimport*exp(3)Out2:
20.085536923187668在上述代码中,利用“frommathimport*”导入math模块中的所有内容后,可以调用这个模块里定义的所有函数等内容,不需要添加模块名为前缀。
2.1Python概述,2.1.3开始使用Python,(3)frommoduleNameimportobject1,object2。
这种方法一次导入一个模块中指定的内容,如某个函数。
调用时不需要添加模块名为前缀。
使用这种方法的程序可读性介于前两者。
In3:
frommathimportpow,pipow(3,2)Out3:
9.0In4:
piOut4:
3.14159265358979323846在上述程序中,“frommathimportpow,pi”表示导入模块math中的pow函数和常量pi,程序中只可以使用pow函数和pi的值,不能使用该包中的其他内容。
2.1Python概述,2.1.3开始使用Python,2.1Python概述,2.1.3开始使用Python5.使用帮助Python提供了dir和help内置函数(不需要通过import就可以直接使用的函数)供用户查看模块、函数等的相关说明。
以查看math模块的相关说明为例,在Python命令窗口中输入“dir(math)”并按Enter键即可查看math模块的可用属性和函数。
In5:
importmathIn6:
dir(math)Out6:
doc,loader,name,package,spec,acos,acosh,asin,asinh,atan,atan2,atanh,ceil,copysign,cos,cosh,degrees,e,erf,erfc,exp,expm1,fabs,factorial,floor,fmod,frexp,fsum,gamma,gcd,hypot,inf,isclose,isfinite,isinf,isnan,ldexp,lgamma,log,log10,log1p,log2,modf,nan,pi,pow,radians,sin,sinh,sqrt,tan,tanh,tau,trunc,Help函数可以查看模块、函数等的详细说明信息。
例如,在“importmath”后输入命令help(math)并按Enter键,将列出math模块中所有的常量和函数详细说明。
如果输入help(math.sin)将只列出math.sin函数的详细信息。
In7:
importmathIn8:
help(math.sin)Out8:
Helponbuilt-infunctionsininmodulemath:
sin(.)sin(x)Returnthesineofx(measuredinradians),2.1Python概述,2.1.3开始使用Python,输入与输出,2.2,2.2输入与输出,通常,任何程序都会通过输入输出的功能与用户进行交互和沟通。
所谓输入,就是指程序通过用户输入的信息获取数据;
而输出则是指程序向用户显示或打印数据。
在Python语言中,可以用input()函数进行输入,用print()函数进行输出,这些都是简单的控制台输入输出函数。
Python中提供了input()函数用于输入数据,该函数可以输入数值、字符串和其他对象。
input()函数在Python中是一个内建函数,其从标准输入中读入一个字符串,并自动忽略换行符。
也就是说,所有形式的输入按字符串处理,如果想要得到其他类型的数据,就要进行强制类型转化。
默认情况下没有提示字符串(promptstring),在给定提示字符串下,会在读入标准输入前输出提示字符串。
2.2输入与输出,2.2.1数据的输入,执行时首先在屏幕上显示提示字符串,然后等待用户输入,输入完毕后按Enter键,并将用户输入作为一个表达式进行解释、求值,最后将求值结果赋予变量。
In9:
x=input(请输入x的值:
)请输入x的值:
30In10:
xOut10:
30,2.2输入与输出,2.2.1数据的输入,当用户输入30并按Enter键后,input函数将30作为字符赋予变量x,结果就是字符30。
要使用其他类型的数据,需要对其进行数据类型转化。
In11:
x=int(input(请输入x的值:
)x请输入x的值:
30Out11:
30,2.2输入与输出,2.2.1数据的输入,2.2输入与输出,数据的输出Python中最简单的输出方式就是使用print()语句。
print()语句常用于在屏幕上显示信息,其通常使用格式及作用如下。
print()这是没有表达式的print语句,用于输出一个空白行。
print()将表达式的值以文本形式显示在屏幕上。
print(,)将各表达式的值以文本形式从左到右显示在屏幕的同一行上,值与值之间插入一个空格作为间隔。
print(,end=)通常情况下,连续两条print语句将在屏幕的两个不同行上显示信息,但如果希望后一条print语句不换行,而是接在前一行的后面继续显示,则需要在前一条语句中加入“end=”这个参数。
【例2-3】阅读以下程序代码,分析程序运行结果。
#eg2_3.pyprint(我喜欢+程序设计)print(我喜欢,程序设计)print()print(我喜欢)print(程序设计)print(我喜欢,end=)print(程序设计)程序运行结果如图2-6所示。
2.2输入与输出,2.2.2数据的输出,2.2输入与输出,2.2.2数据的输出,图2-6【例2-3】运行结果分析:
第1行中的“+”表示字符串的连接,通过print()语句在一行输出;
第2行中的两个字符串用“,”分隔,输出时中间会插入一个空格作为间隔;
第3行通过print()输出一个空行;
第4行和第5行分两行单独输出;
第6行print语句加入参数“end=”,则第7行print语句将不会换行,而是接在前一行的后面继续输出。
Python数据类型,2.3,2.3Python数据类型,2.3.1标识符与变量标识符标识符是计算机语言中允许作为名字的有效字符串集合。
和其他大部分高级语言相似,Python标识符有以下一些命名规则。
名字必须以字母或者下划线“_”开始。
数字不能作为首字符。
当名字包含多个单词时,可以使用下划线“_”来连接,如monty_Python。
除了首字符,名称可以包含任何字母、数字和下划线。
名字不能是关键字。
名字不能出现分隔符、标点符号或者运算符。
名字长度不限。
名字是区分大小写的。
例如,myClass、MyClass、myclass是不同的。
关键字在Python中是特殊单词,不能用来进行命名操作。
因此,不能使用以下关键字作为标识符的名称:
and、continue、except、global、lambda、pass、while、as、def、False、if、None、raise、with、assert、del、finally、import、nonlocal、return、yield、break、elif、for、in、not、True、class、else、from、Is、or和try。
Python标识符还遵循以下一些约定。
2.3Python数据类型,2.3.1标识符与变量,第1条约定:
不要使用Python预定义的标识符名对自定义的标识符进行命名。
Python内置数据类型名(如int、float、list、str与tuple)应避免被使用,Python内置函数名与异常名也应避免被使用。
第2条约定:
应该避免名称开头和结尾都使用下划线(_)。
开头和结尾都使用下划线的名称表示Python自定义的特殊方法或变量(对于特殊方法,可以对其进行重新实现,也就是给出自己的实现版本),所以不应该再引入这种开头和结尾都使用下划线的名称。
在有些上下文中,以一个或两个下划线引导的名称应该特殊对待。
2.3Python数据类型,2.3.1标识符与变量2.变量Python语言中提供了几种基本数据类型,如数值型(int、long和float)、布尔型(bool)、字符串(str)。
1)数值型在Python中整数类型被指定为int类型。
整数类型对应于数学中的整数概念。
可以执行的运算有+、-、*、/以及一些其他操作。
默认情况下,整数采用的是十进制,但在方便时也可以使用其他进制。
In12:
97Out12:
97In13:
0b1100001Out13:
97In14:
0o141,#decimal#binary#octal,Out14:
97二进制数以0b引导,八进制数以0o引导,十六进制数则以0x引导。
2.3Python数据类型,2.3.1标识符与变量所有常见的数学函数与操作符都可以用于整数,如表2-1所示。
有些功能由内置函数提供,如ABS(i)可以返回整数i的绝对值;
有些功能由int操作符提供,如i+j返回整数i与整数j的和。
2.3Python数据类型,2.3.1标识符与变量可以给变量赋字面意义上的值,如x=10,或者将相关的数据类型作为函数进行调用,如x=int(10)。
有些对象(如类型为decimal.Decimal,此模块可以提供固定的十进制数,其精度可以自行指定)只能通过数据类型创建,这是因为这些对象不能用字面意义表示。
长整数类型long的值在计算机内的表示不是固定长度的,只要内存许可,长整数可以扩展到任意长度。
长整数类型的值必须加后缀“L”或“l”(建议只使用大写L,小写l容易与1混淆),这是long类型的标志。
需要注意的是,与int类型相比,long类型的运算效率较差。
除