版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
主讲人:周元哲西安邮电大学
Email:zhouyuanzhe@163.com《Python数据分析与应用》西安电子科技大学出版社Python语言的发展和特点
Python继承于ABC语言,主要受到Modula-3的影响,Modula-3是另一种相当优美且强大的语言,为小型团体所设计,并且结合了Unixshell和C的习惯。
GuidovanRossum“Lifeisshort,youneedPython!”Python发展历程Python是著名的GuidovanRossum在1989年圣诞节期间发明,第一个公开发行版发行于1991年。2018年3月,Python核心团队宣布在2020年停止支持Python2,只支持python3。Python语言的发展和特点
Python的特点解释性面向对象第三方库开源,可移植简单易学/jobbole/awesome-python-cnPython特色简单“人世苦短,我用Python”
Python是一种代表简单主义思想的语言。
专注于解决问题而不是去搞明白语言本身。易学Python极其容易上手Python有极其简单的语法6Python特色免费、开源Python是FLOSS(自由/开放源码软件)之一。简单地说,可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。7Python特色解释性Python语言写的程序不需要编译成二进制代码。Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。Python特色数据库编程支持所有主流关系型数据库:Oracle、Sybase、MySQL、PostgreSQL、Informix、SQLite支持非关系型数据库:mongodb从关系数据库映射到Python类(ORM):SQLAlchemy、SQLObject8Python特色科学计算Python在科学计算上能力超强,堪与matlab比较。Python科学计算有numpy,scipy,matplotlib三剑客。其中,numpy负责数值计算,矩阵操作等;scipy负责常见的数学算法,插值、拟合等;matplotlib负责画图。9Python特色网络爬虫
网络爬虫的爬取、解析、存储三个基本流程。讲解了基于urllib、基于BeautifulSoup和基于Scrapy三种爬取方法,最后介绍了Selenium和PhantomJS使用抓取动态网页数据。10Python特色Web开发Web应用框架(Webapplicationframework)是一种开发框架,用来支持动态网站、网络应用程序的开发。web2py、Django、Flask等Web开发框架11Python与C语言 (1)Python是动态编译语言,变量的使用只需赋值;C语言是静态编辑语言,变量的使用必须先定义,方能使用。(2)Python有列表、元组、字典等数据结构,而C语言没有。(3)Python是弱类型语言,C语言是强类型语言。Python与Java语言(1)Python与Java都支持面向对象编程。(2)Python比Java要简单,非常适合构造快速原型。(3)Python和Java都适合程序员协同开发大型项目。Python解释器 Python解释器由一个编译器和一个虚拟机构成,编译器负责将源代码转换成字节码文件,而虚拟机负责执行字节码。解释型语言其实也有编译过程,只不过这个编译过程并不是直接生成目标代码,而是中间代码(字节码),然后再通过虚拟机来逐行解释执行字节码Python解释器执行过程步骤1.执行pythonXX.py后,将会启动Python的解释器步骤2.python解释器的编译器会将.py源文件编译(解释)成字节码生成PyCodeObject字节码对象存放在内存中。Python解释器执行过程步骤3.python解释器的虚拟机将执行内存中的字节码对象转化为机器语言,虚拟机与操作系统交互,使机器语言在机器硬件上运行步骤4.运行结束后python解释器则将PyCodeObject写回到pyc文件中。当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程Python解释器种类Cpython官方下载的python3均为Cpython。Cpython是用C语言开发,用>>>作为提示符。IpythonIPython是基于CPython之上的交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样,采用In[序号]:作为提示符。Python解释器种类PyPyPyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),显著提高Python代码的执行速度JythonJython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。Python解释器种类Ironpython
IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,直接将Python代码编译成.Net的字节码。第一个python程序Hello,World!>>>print(‘Hello,World!‘)语句输出:Hello,World!简单的Python语言介绍Python编辑器自带IDE编辑器
Jupyter用于数据分析和机器学习;PyCharm适于大型工程项目
VSCode适合多种编辑语言22IDLE编辑器的两种运行方式交互式编程模式直接在提示符“>>>”后面输入命令并回车执行>>>4+59>>>3/0Traceback(mostrecentcalllast):File"<pyshell#18>",line1,in<module>3/0ZeroDivisionError:integerdivisionormodulobyzero23IDLE的脚本运行方式(1)启动IDLE;(2)选择菜单File>NewFile创建一个程序文件,输入代码并保存为扩展名为.py的文件。(3)选择菜单Run>RunModuleF5运行程序,程序运行结果将直接显示在IDLE交互界面上。24AnacondaAnaconda是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项,在数据可视化、机器学习、深度学习等多方面都有涉及。25JupyterJupyternotebook是python的在线编辑器,以网页的形式打开,适合进行科学计算。在Jupyter的编辑过程中,运行结果实时显示在代码下方,方便查看。26JupyterJupyternotebook是python的在线编辑器,以网页的形式打开,适合进行科学计算。在Jupyter的编辑过程中,运行结果实时显示在代码下方,方便查看。27缩进Python语言则将缩进作为语法要求,通过使用代码块的缩进来体现语句的逻辑关系,28注释程序的注释分为序言性注释和功能性注释。(1)序言性注释:位于每个模块开始处,作为序言性的注解,简要描述模块的功能、主要算法、接口特点、重要数据以及开发简史。(2)功能性注释:插在程序中间,与一段程序代码有关的注解,是针对一些必要的变量,核心的代码进行解释,主要解释包含这段代码的必要性。29注释程序的注释分为序言性注释和功能性注释。(1)序言性注释:位于每个模块开始处,作为序言性的注解,简要描述模块的功能、主要算法、接口特点、重要数据以及开发简史。(2)功能性注释:插在程序中间,与一段程序代码有关的注解,是针对一些必要的变量,核心的代码进行解释,主要解释包含这段代码的必要性。第2章Python编程基础《Python数据分析与应用》1常量、变量与标识符1.1常量
在程序运行过程中,其值不能改变的量称为常量。(1)整型常量:-123、20(2)实型常量:3.14、0.15、-2.0(3)字符串常量:‘Python’、“VeryGood!”(4)布尔型常量:True、False(5)复数类型常量:3+2.5j1常量、变量与标识符1.2变量在Python中,不需要事先声明变量名及其类型,类型是在运行过程中自动决定的,直接赋值即可创建各种类型的变量。
变量在程序中使用变量名表示,变量名必须是合法的标识符,并且不能使用Python关键字。例如:>>>x=5>>>type(x)<class'int'>采用内置函数type()返回变量x的类型int。1常量、变量与标识符
>>>string=”HelloWorld!”创建了字符型变量string,并赋值为HelloWorld!。注意:Python是一种动态类型语言,即变量的类型可以随时变化。例如:>>>x=5>>>type(x)
<class'int'>----------------------------------------------------->>>x="HelloWorld!">>>type(x)
<class'str'>
-----------------------------------------------------当创建了字符串类型变量x之后,之前创建的整型变量x就自动失效了。1常量、变量与标识符1.3标识符合法的标识符由字母、数字和下划线的序列,且必须由字母或下划线开头,自定义的标识符不能与关键字同名。合法的标识符:x,a1,wang,num_1,radius,1,PI不合法的标识符:a.1,1sum,x+y,!abc,123,π,3-cPython中,单独的下划线(_)用于表示上一次运算的结果。例如:>>>2020>>>_*10
200常量、变量与标识符标识符的命名习惯:(1)变量名和函数名中的英文字母一般用小写,以增加程序的可读性。(2)见名知义:通过变量名就知道变量值的含义。一般选用相应英文单词或拼音缩写的形式,如求和用sum,而尽量不要使用简单代数符号,如x、y、z等。(3)尽量不要使用容易混淆的单个字符作为标识符,例如数字0和字母o,数字1和字母l。(4)开头和结尾都使用下划线的情况应该避免,因为Python中大量采用这种名字定义了各种特殊方法和变量。2Python的基本数据类型
在程序设计语言中,都是采用数据类型来描述程序中的数据结构、数据的表示范围和数据在内存中的存储分配等。2Python的基本数据类型2.1整型数据
整型数据即整数,不带小数点,可以有正号或者负号。在Python3.x中,整型数据在计算机内的表示没有长度限制,其值可以任意大。(1)十进制整数。(2)二进制常数。以0b为前缀,其后由0和1组成。如:0b1001表示二进制数1001,即(1001)2。(3)八进制整数。以0o为前缀,其后由0至7的数字组成。如:0o456表示八进制数456,即(456)8。(4)十六进制整数。以0x或0X开头,其后由0至9的数字和a至f字母或A至F字母组成。如:0x7A表示十六进制数7A,即(7A)16。2Python的基本数据类型【例】整型常量。>>>0xff255----------------------------------------------------->>>20172017----------------------------------------------------->>>0b10011001153----------------------------------------------------->>>0b012SyntaxError:invalidsyntax----------------------------------------------------->>>-0o11-92Python的基本数据类型2.2实型数据实数又称浮点数,一般有两种表示形式:(1)十进制小数形式。由数字和小数点组成(必须有小数点),如:1.2、.24、0.0等,浮点型数据允许小数点后没有任何数字,表示小数部分为0,如2.表示2.0.(2)指数形式。用科学计数法表示的浮点数,用字母e(或E)表示以10为底的指数,e之前为数字部分,之后为指数部分。如,123.4e3和123.4E3均表示123.4×103。
注意:e(或E)前面必须有数字,后面必须是整数。
15e2.3e3.e32Python的基本数据类型
对于实型常量,Python3.x默认提供17位有效数字的精度。例如:
>>>1234567890012345.0
1234567890012345.0----------------------------------------------------->>>12345678900123456789.0
1.2345678900123458e+19----------------------------------------------------->>>15e2
1500.0----------------------------------------------------->>>15e2.3
SyntaxError:invalidsyntax2Python的基本数据类型2.3字符型数据在Python中定义一个字符串可以用用一对单引号、双引号或者三引号进行界定,且单引号、双引号和三引号还可以相互嵌套,表示复杂的字符串。例如:
>>>“Let'sgo”
“Let'sgo”----------------------------------------------------->>>s=“'Python'Program”>>>s
“'Python'Program”-----------------------------------------------------2Python的基本数据类型
转义字符字符形式含义\n
回车换行,将当前位置移到下一行开头\t
横向跳到下一制表位置(Tab)\b
退格,将当前位置退回到前一列\r
回车,将当前位置移到当前行开头\f
走纸换页,将当前位置移到下页开头\\
反斜线符"\"\'单引号符\"双引号符\ddd1~3位8进制数所代表的字符\xhh1~2位16进制数所代表的字符2Python的基本数据类型使用转义字符时要注意:(1)转义字符多用于print()函数中。(2)转义字符常量,如'\n','\x86'等只能代表一个字符。(3)反斜线后的八进制数可以不用0开头。如'\101'代表字符常量'A','\134'代表字符常量'\'。(4)反斜线后的十六进制数只能以小写字母x开头,不允许用大写字母X或0x开头。【例】转义字符。a=1b=2c='\101'
print("\t%d\n%d%s\n%d%d\t%s"%(a,b,c,a,b,c))运行结果: 12A12 A2Python的基本数据类型2.4布尔型数据Python的布尔类型有两个值:True和False,分别表示逻辑真和逻辑假。【例】布尔型数据示例。>>>type(True)
<class'bool'>----------------------------------------------------->>>True==1True----------------------------------------------------->>>False==0
True2Python的基本数据类型
>>>1>2False----------------------------------------------------->>>False>-1True布尔类型还可以与其他数据类型进行逻辑运算,Python规定:0、空字符串、None为False,其他数值和非空字符串为True。>>>0andFalse
0----------------------------------------------------->>>NoneorTrue
True----------------------------------------------------->>>""or1
12Python的基本数据类型2.5复数类型数据复数由两部分组成:实部和虚部。复数的形式为:实部+虚部j。例如:>>>x=3+5j#x为复数>>>x.real#查看复数实部
3.0----------------------------------------------------->>>x.imag#查看复数虚部
5.0----------------------------------------------------->>>y=6-10j#y为复数>>>x+y#复数相加
(9-5j)3运算符与表达式3.1Python运算符Python语言的运算符按照它们的功能可分为:(1)算术运算符(+、–、*、/、**、//、%)。(2)关系运算符(>、<、>=、<=、==、!=)。(3)逻辑运算符(and、or、not)。(4)位运算符(<<、>>、~、|、^、&)。(5)赋值运算符(=、复合赋值运算符)。(6)成员运算符(in、notin)。(7)同一运算符(is、isnot)。3运算符与表达式3.2算术运算符和算术表达式1.算术运算符
运算符含义优先级结合性+加法这些运算符的优先级相同,但比下面的运算符优先级低左结合-减法*乘法这些运算符的优先级相同,但比上面的运算符优先级高/除法//取整除**幂运算%取模3运算符与表达式
Python中除法有两种:/和//,在Python3.x分别表示除法和整除运算。>>>3/5
0.6----------------------------------------------------->>>3//5
0----------------------------------------------------->>>-3.0//5
-1.0----------------------------------------------------->>>3.0//-5
-1.03运算符与表达式
**运算符实现乘方运算,其优先级高于*和/。例如:>>>2**3
8----------------------------------------------------->>>2**3.5
11.313708498984761----------------------------------------------------->>>4*3**2
363运算符与表达式运算符的多重含义:>>>3*5#整数相乘运算
15----------------------------------------------------->>>'a'*10#字符串重复运算
'aaaaaaaaaa'-----------------------------------------------------
3运算符与表达式%运算符表示对整数和浮点数的取模运算。由于受浮点数精确度的影响,计算结果会有误差。>>>5%-3
-1----------------------------------------------------->>>10.5%2.1#浮点数取模运算
2.0999999999999996#结果有误差3运算符与表达式2.算术表达式例如:
3+a*b/5-2.3+′b′3.数据转换在Python中,同一个表达式允许不同类型的数据参加运算,这就要求在运算之前,先将这些不同类型的数据转换成同一类型,然后再进行运算。【例】自动类型转换。>>>10/4*410.0>>>type(10/4*4)<class'float'>3运算符与表达式
当自动类型转换达不到转换需求时,可以使用类型转换函数,将数据从一种类型强制(或称为显式)转换成另一种类型。函数功能描述int(x)将x转换为整数float(x)将x转换为浮点数complex(x)将x转换为复数,其中实部为x,虚部为0complex(x,y)将x、y转换为复数,其中实部为x,虚部为ystr(x)将x转换为字符串chr(x)将一个整数转换为一个字符,整数为字符的ASCII编码ord(x)将一个字符转换为它的ASCII编码的整数值hex(x)将一个整数转换为一个十六进制字符串oct(x)将一个整数转换为一个八进制字符串eval(x)将字符串str当做有效表达式求值,并返回计算结果3运算符与表达式3.3赋值运算符和赋值表达式1.赋值运算符赋值运算符用“=”表示。2.赋值表达式变量=表达式等号的左边必须是变量,右边是表达式。>>>y=2>>>x=(y+2)/3>>>x
1.33333333333333333运算符与表达式
注意:Python的赋值和一般的高级语言的赋值有很大的不同,它是引用赋值。看下面的代码1:例如:
>>>a=5
>>>b=8
>>>a=b
执行a=5和b=8之后a指向的是5,b指向的是8,当执行a=b的时候,b把自己指向的地址(也就是8的内存地址)赋给了a,那么最后的结果就是a和b同时指向了8。3.多变量赋值(1)链式赋值在Python中,可通过链式赋值将同一个值赋给多个变量的,一般形式为:>>>x=y=5>>>x53运算符与表达式(2)多变量并行赋值
变量1,变量2,…,变量n=表达式1,表达式2,…,表达式n变量个数要与表达式的个数一致,其过程为:首先计算表达式右边n个表达式的值,然后同时将表达式的值赋给左边的n个变量。例如:>>>x,y,z=2,5,8>>>x
2----------------------------------------------------->>>y
5----------------------------------------------------->>>z
83运算符与表达式例如:>>>x=20>>>x,x=3,x*3>>>x
60
采取并行赋值,可以使用一条语句就可以交换两个变量的值:x,y=y,x。3运算符与表达式4.复合的赋值运算符赋值运算符“=”与7种算术运算符(+、-、*、/、//、**、%)和5种位运算符(>>、<<、&、^、|)结合构成12种复合的赋值运算符。结合方向为自右至左。例如:a+=3 等价于 a=a+3a*=a+3 等价于 a=a*(a+3)a%=3 等价于 a=a%3注意:“a*=a+3”与“a=a*a+3”是不等价的,“a*=a+3”等价于“a=a*(a+3)”,这里括号是必需的。3运算符与表达式【例】复合的赋值运算符。>>>a=3>>>b=5>>>a+=b>>>a
8----------------------------------------------------->>>a>>=2>>>a
2----------------------------------------------------->>>a*=a+3>>>a
103运算符与表达式3.4关系运算符和关系表达式1.关系运算符
运算符含义优先级结合性>大于这些运算符的优先级相同,但比下面的运算符优先级低左结合>=大于等于<小于这些运算符的优先级相同,但比上面的运算符优先级高<=小于等于==等于!=不等于<>不等于3运算符与表达式
关系运算符的优先级:{>、>=、<、<=}→{==、!=、<>}在Python中,真用“True”表示,假用“False”表示。>>>x,y,z=2,3,5>>>x>y
False>>>x<y<zTrue3运算符与表达式
注意:浮点数的相等。在计算机中,浮点数是实数的近似值。执行一系列浮点数的运算后,可能会发生四舍五入的情况。例如:>>>x=123456>>>y=-111111>>>
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《地锦草的扩血管作用及其机制研究》
- 《发光有机金属配合物分子结构与光电性能关系的理论研究》
- 《功能主义视角下的大学生就业难问题研究》
- 《基于DNA传感器对硫酸盐还原菌检测的研究》
- 《基于渠道管理的C公司营运资金管理研究》
- 2025年高考地理一轮复习:地球与地图1(解析版)
- 酒店客房管理
- 2025届高三化学二轮复习:有机推断
- 淮南师范学院《曲式与作品分析2》2023-2024学年第一学期期末试卷
- 淮南师范学院《第二外语(日语)1》2022-2023学年第一学期期末试卷
- 国开(甘肃)2024年春《地域文化(专)》形考任务1-4终考答案
- MOOC 美在民间-南京农业大学 中国大学慕课答案
- 脑卒中康复PPT医学课件
- 110KV输电线路设计环境保护措施浅析
- 江苏省医院检验科建设管理规范
- 脱氧剂项目建议书范文
- 6运算能力-于萍、吴正宪(Ⅰ)——小学数学学科核心素养
- 电网技术改造工程预算定额编制说明
- APQP全套表单——新产品质量策划进度计划(APQP)
- 消防隐蔽工程验收记录表(共10页)
- 集团HAZOP技术指南中例举的风险矩阵
评论
0/150
提交评论