1、Python简介,第一章,Python(蟒蛇)是荷兰人Guido van Rossum发明的面向对象的解释型编程语言。随着近几年云计算、大数据和人工智能的兴起,Python语言也越来越受到开发人员的重视。如今,Python已经成为最受欢迎的程序设计语言之一,甚至已经进入了小学教材,学习Python已然变得刻不容缓。,Python,概述,Python概述,01,Python的安装,02,编写第一个Python程序,03,Python概述,Python是一种计算机编程语言以及配套的软件工具和库。Python简单易学,,代码十分简洁,它使用强制空白符作为缩进,这大大提高了Python的开发效率,使用
2、Python能够在更短的时间内完成更多的工作。Python是一门开源的语言,并且Python还有许多强大的开源库,这些库使得Python无论是对云计算、大数据、还是人工智能,都有很强的支持能力。,PART 01,Python,程序运行时是先将源码转换成字节码,然后再由,Python,解释器来执行这些字节码,所以就跳过了编译这一步,如图,2,所示。这使,Python,无需,改动就可以在不同的平台上运行,,拥有了良好的可移植性。,虽然,Python,语言,与,C,语言的运行机制不同,但是,Python,的底层是基于,C,语言编写的,这将在以后要讲解的,Python,的变量存储机制上有所体现。,需要
3、注意的是,目前市面上存在的,Python,版本大体上分为,Python,2,和,Python,3,这两个版本,,Python,3,相比于,Python,2,是一个较大的升级,并且,Python,3,是不向下兼容的。本书使用的,Python,版本为,Python,3,。,Python是一门解释型语言。它不需要编译就可以执行,代码由Python解释器直接解释运行,因此它的运行机制和C语言是不同的。如图1所示,在Windows系统下执行C语言需要编译成Windows系统的二进制序列,在Linux系统下执行C语言需要编译成Linux系统的二进制序列,在Mac系统下执行C语言需要编译成Mac系统的二进制
4、序列,在其他系统条件下执行C语言需要编译成其他系统的二进制序列。,图,1 C语言运行机制,图,2,P,ython,运行机制,Python,具有以下特点,(1)简单易学。,(2)功能强大。Python拥有丰富的开源库,其中有Python自带的库,如OS、SYS、Re等,也有第三方库,如NumPy、Pandas、Requests等。有了这些库的支持使得Python能被广泛地应用于Web开发、科学计算、机器学习(Machine Learning,ML)、人工智能(Artificial Intelligence,AI)、网络爬虫等诸多领域。,(3)面向对象。Python虽然常用来做面向过程编程,但是它
5、也可以很好地用来做面向对象编程。,(4)可移植性。Python的可移植是Python得以强大的原因之一,同一个Python程序几乎无须任何修改就可以在不同的平台中运行。,(5)开发周期短。代码的简洁使得Python能从众多的编程语言中脱颖而出,使用Python开发程序比用其他语言能够缩短可观的开发时间。,虽然Python语言相比于其他语言有很多的优点,但是它也有一些不可避免的缺点,如它的运行速度明显落后于Java语言和C语言。另外,Python语言的缩进也是一个问题,Python的语句块并没有像Java和C那样使用大括号包起来,取而代之的是使用缩进的方法。初学者很容易因为一个空格而寻找许久的b
6、ug。最后,Python语言虽然也可以拿来做面向对象编程,但是相比于Java,它还是有一些不足,当要开发一个大型的项目时,最好还是选择使用Java、C+等语言,毕竟Python语言设计的初衷也不是用来开发大型的项目。,Python的安装,本节主要讲解Python在Windows、Linux、Mac系统中的安装。,PART 02,1.,Python在Windows系统中的安装,1.准备工作,(1)装有Windows系统的计算机一台。,(2)Python可执行安装包,可到Python官网下载。,2.具体安装步骤,(1)选择最新的Python版本,根据自己计算机的参数选择相应的版本下载。32位计算机
7、系统选择X86版,64位计算机系统选择X86-X64版。为了更快捷、方便地安装,建议采用可执行文件的安装方式安装Python。,(2)下载完成后,开始安装Python。有两种安装方式,Install Now(快捷安装)和Customize installation(自定义安装)。这里选择自定义安装,并勾选Add Python 3.7 to PATH,勾选其可以省去修改环境变量的步骤,实现自动添加到系统路径的功能,然后单击Customize installation。,(3)单击Customize installation后会进入Python的安装配置界面1,单击“Next”按钮进入下一步。这时
8、进入Python安装配置界面2。这里只需勾选前五个选项,前五个选项包含了Python绝大部分功能,如果有需要可以再次安装。并单击“Browse”按钮选择安装路径,然后单击“Install”按钮开始安装。安装完成后单击“Close”按钮关闭窗口后,Python安装完成。,(4)Python安装完成后需要检验是否安装成功。使用快捷键Win+R键进入DOS命令控制台,在命令行内输入Python或者Python 3。如果安装成功,则会输出Python的版本信息,如下所示。,C:Users1Python,Python 3.7.0(v3.7.0:41df79263a11,Dec 23 2016,08:06
9、:12)MSC v.1900 64 bit(AMD64)on win32,Type help,copyright,credits or license for more information.,2.,Python在Linux,系统中的安装,1.准备工作,(1)装有Linux系统的计算机或安装了Linux系统的虚拟机。有的Linux系统自带有Python,但是可能不是Python 3版本,如果要确认Python版本的话,可以分别在终端输入命令:Python和Python 3查看,前者用于检查是否安装了Python 2,后者用于检查是否安装了Python 3。,不同的Linux系统安装Pytho
10、n的方法可能有所不同。本书讲解的是在CentOS 7.0版本下的Linux系统上安装Python。,(2)Python 3源码包,可到Python官网下载。,2.具体安装步骤,(1)输入命令su-进入root用户:adminroot$su-,(2)输入命令:wget https:/www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz,下载源码包或直接在浏览器下载。(3)下载完成后,执行命令:yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlit
11、e-devel,安装Python 3依赖包。执行命令后,可以看到Python 3依赖包安装信息,输入“y”确认安装。,(4)Python 3依赖包安装完成后执行命令:tar-xzvf Python-3.7.0.tgz,解压下载好的Python安装包,如下所示。,rootroot/#tar-xzvf Python-3.7.0.tgz,(5)解压完成后,输入命令:cd Python-3.7.0/,进入生成的目录,如下所示。,rootroot/#cd Python-3.7.0/,rootroot Python-3.7.0#,接着执行命令:./configure-prefix=/usr/local/,
12、设置Python的安装目录为/usr/local/,如下所示。,rootroot Python-3.7.0#./configure-prefix=/usr/local/,(6)配置完成之后执行命令:make开始编译源码,如下所示。,rootroot Python-3.7.0#make,整个编译过程大概3-5分钟。,(7)编译完成后,执行命令:make install,开始安装Python,如下所示。,rootroot Python-3.7.0#make install,(8)安装完成之后,使用Python 3命令查看是否安装成功,如果安装成功,则会输出Python如下所示的版本信息。,root
13、root Python-3.7.0#Python3,Python 3.7.0(default,Aug 8 2018,22:21:25),GCC 4.8.5 20150623(Red Hat 4.8.5-28)on linux,Type help,copyright,credits or license for more information.,当显示上述信息后,可直接输入Python代码运行,如需退出可使用Ctrl+Z键或输入exit()退出。,3.,Python在Mac OS系统中的安装,1.准备工作,(1)装有Mac OS系统的计算机一台。,(2)Python可执行安装包,可到Pytho
14、n官网下载。,2.具体安装步骤,(1)进入Python官网,将鼠标放在Downloads菜单上,在二级菜单中选择All releases,即可进入下载界面,选择最新版的Python,单击Download进入到下载页面。,(2)进入下载页面后,在网页底部根据自己计算机的参数选择相应的版本下载(Windows系统中选择executable installer文件进行下载)。,(3)下载完成之后,打开安装包,按提示进行安装。,(4)根据提示安装完成后,打开终端输入Python,如果出现如图所示的界面,则Python安装成功。,安装成功界面,编写第一个Python程序,本节将详细讲解如何使用Pytho
15、n写出一个简单的程序,同时也将介绍一些常用的Python解释器以及注释的使用。,PART 03,(1)打开Python的交互式环境。在Windows中使用Win+R键打开Dos命令控制台输入Python 3进入,Linux和Mac打开终端输入Python 3进入,打开成功之后可以看到如下所示的提示:,Python 3.7.0(v3.7.0:41df79263a11,Dec 23 2016,08:06:12)MSC v.1900 64 bit(AMD64)on win32,Type help,copyright,credits or license for more information.,(
16、2)进入到交互式环境之后,可以看到有“”字样的提示符,在此提示符之后可直接输入Python代码并按Enter键运行。下面我们试试输入“100+100”,看看返回的结果是不是“200”。,100+100,200,需要注意的是,在Python Shell环境之中,有“”的行是用户输入的内容,而没有“”的行是Python生成的。因此,在Python Shell中很容易就能看出哪些内容是用户输入的,哪些内容是Python生成的。,使用Python的交互式环境(Python Shell)来编写Python代码,具体步骤如下:,(3)在Python中如果想输出文本内容可以使用print语句来实现。但需要注
17、意的是,Python 3中的print语句输出的内容是使用小括号和引号(单引号、双引号均可)包起来的,而Python 2中的print语句是使用引号包起来的,这是Python 2和Python 3较大的不同处。同时注意,不论是在Python 2还是Python 3里,单引号和双引号不能混用,否则会报错。,如果在Python 3的Shell环境中,使用Python 2中的print语句格式的话,则会报错,例如如下的示例。,print hello world#Python 2中的print语句格式,File,line 1,print hello world,SyntaxError:invalid
18、syntax,在Python 3的Shell环境中,如果单双引号混用的话,则会报下面的错误,例如如下的示例。,print(hello world)#print语句输出的内容使用小括号和单双引号混用,File,line 1,print(hello world),SyntaxError:EOL while scanning string literal,在Python 3的Shell环境中,正确的写法应该是:,print(hello world)#print语句输出的内容使用小括号和双引号包起来,hello world,print(hello world)#print语句输出的内容使用小括号和单引
19、号包起来,hello world,(4)前面输出的内容都是没有换行的,而且一次只能执行一个print语句。Python中的换行结合了C语言的特点,使用“n”作为换行符,所以如果要输出换行的文本内容,只需在文本内容的最后面加入了“n”之后,输出的文本换行了。同时在Python之中,分号结束符是可以省略的,取而代之的是使用换行来标识语句的结束。不过有一些情况下分号是不可以省略的,如下所示,当在一行中需要执行多个语句时,就需要使用分号将每个语句分隔开,例如如下的示例。,print(hello);print(world),hello,world,(5)使用Python Shell,只需要输入完代码之后
20、按Enter即可执行了,但是当代码很多的时候,一句一句地在Python Shell中输入是十分不现实的,此时就需要将代码保存为一个Python可执行的文件。,首先在磁盘上新建一个hello.py文件,然后使用记事本打开该文件,输入下列内容:,#!/usr/bin/env python3,print(hello world),然后使用命令行输入:Python 文件地址 文件名,来执行Python代码可达到上面相同的效果,例如如下的示例。,C:Users1Python D:hello.py,hello world,C:Users1,上述代码中的第一行的作用是从环境变量中查找Python解释器的位置
21、,它还可以是:,#!/usr/bin/python3,表示从路径/usr/bin/python3查找Python解释器。#!/usr/bin/env python3相比于#!/usr/bin/python3更加可靠,因为当Python解释器的路径不在/usr/bin/python3下时,程序会出现找不到解释器的错误,因此本书使用的是#!/usr/bin/env python3。,需要注意的是,#!/usr/bin/env python3和#!/usr/bin/python3不是必须要写的,只有当程序需要在Linux系统下运行时才需要添加,不过为了使程序具有更好的可移植性,最好还是将其添加到代码
22、里面。,前面讲到了使用#!/usr/bin/env python3来设置Python解释器的位置,那么什么是Python解释器呢?简而言之就是将Python语言转换成其他语言再运行的一个程序。Python是一门解释型语言,不需要编译就可以运行,这归功于Python有一个强大的解释器。Python解释器可以将Python代码一行一行地转译,每转译一行就立刻运行,然后再转译下一行,再运行,直到程序结束。,Python具有许多的解释器,这些解释器都是开源的,并且它们都有各自的优点,下面简单介绍几个常见的Python解释器。,(1)CPython,CPython是Python自带的一个解释器,当你从P
23、ython官网上下载安装了Python之后,就自动安装了CPython解释器,它是基于C语言开发的一个解释器。CPython是目前使用最广的解释器,它基本包含了所有第三方库的支持。,(2)PyPy,PyPy是Python的另一个解释器,它解决了CPython无法支持即时编译的问题,对CPython的各方面缺点进行了改良,在性能上得到了一定的提升。但是,PyPy并不支持官方的CPython API,故不能使用某些第三方库。,(3)IPython,IPython是基于CPython的一个更高级的解释器,它在Python的交互性上有所提高。并且支持变量自动补全,自动缩进,支持bash shell命令
24、。需要注意的是,CPython中使用“”作为提示符,但是在IPython中却是使用“In序号”作为提示符。,(4)Jython,Jython是基于Java的一个Python解释器,它可以直接把Python代码转换成Java字节码运行。,Python解释器,:,一个好的程序,注释是必不可少的,注释可以使程序阅读起来更加的容易,还能起到备注的功能,方便下次开发的时候理解代码。Python有两种注释:单行注释和多行注释。,首先介绍单行注释的使用。Python的单行注释以“#”开头,例如如下的示例:,#print(hello),.print(world),world,可以看到,程序并没有执行“#”之后
25、的代码。,当编写代码时需要多行注释时,再使用“#”一行一行地添加注释是不现实的,所以这时就需要使用多行注释。Python中的多行注释使用三个单引号或三个双引号将注释括起来,例如如下的示例:,第一行注释,第二行注释,第三行注释,或:,第一行注释,第二行注释,第三行注释,学会写注释,是一个程序员必备的技能,特别是团队合作开发一个项目的时候,注释能帮助你和其他成员之间更好的沟通。,注释的使用,:,课后习题,一、选择题,1.在一行上写多条语句时,每个语句之间用()分隔。,A.#B.;C./D.&,2.Python语言源程序的扩展名为()。,A.py B.c C.class D.python,3.下列哪
26、些符号可用于注释Python代码()。,A./*B./C.#D.$,二、简答题与编程题,1.简述什么是Python以及Python有哪些特点。,2.简述Python的运行机制。,3.简述Python的运行机制和C语言运行机制的不同。,4.简述Python适合做什么,不适合做什么。,5.Python在Linux系统的安装主要分为哪几步?,6.尝试将Python作为一个计算器,输入表达式,如12/(4+1)。,7.Python代码的运行方式有哪几种?,8.尝试安装和使用其他的Python解释器。,9.Python的单行注释和多行注释分别用什么?,10.分别用换行符“n”和三引号输出下列内容:,*,
27、*,*,*,*,11.26个字母可以组成26的10次方或者26*10个10字母长的字符串。也就是141167095653376L(结尾处的L只是表示这是Python长数字格式)。100个字母长度的字符串可能有多少个?使用Python计算。,感谢大家的全力支持,LOGO,Python基础,第二章,本章主要讲解Python基础,包括Python基本数据类型;Python变量的定义和使用;运算符的使用;字符串的定义和使用;字符串编码解码。,大数据概述,Python中的常量与变量,01,Python中的运算符,02,Python中的字符串和编码,03,Python编辑器,04,Python中的常量与变
28、量,在介绍Python变量之前,首先要知道Python有哪些数据类型。Python有六种标准数据类型:数字(Number)、字符串(String)、列表(List)、元组(Tuple)、字典(Dictionary)、集合(Set)。其中数字和字符串是基本数据类型,列表、元组、字典和集合是高级数据类型。,PART 01,数字类型,Python,数字类型包括整型(,int,)、浮点数(,float,)、复数(,com,plex,)、布尔型(,bool,)四种数值类型。,1.,整型,整型几乎是所有编程语言中最基本的一种类型,它的表达方式和正常的书面书写一样,如:,10,10,常见的整型都是十进制的,
29、但是有的时候为了计算的需要可能要使用到其他进制的整型。,Python 3,提供了一些用于,进制转换的,内置函数:,bin(),、,int(),、,oct(),、,hex(),,分别用来将整型转换为二进制、八进制、十进制、十六进制,,如:,print(,十进制数:,10),十进制数:,10,print(,二进制数:,bin(10),二进制数:,0b1010,print(,八进制数:,oct(10),八进制数:,0o12,print(,十六进制数:,hex(10),十六进制数:,0 xa,从执行结果可以看出,十进制的整型开头是没有标识符,而二进制、八进制、十六进制整型的标识符分别为:,0b,、,0
30、o,、,0 x,。关于各进制之间的相互转换如表所示。,进制,二进制,八进制,十进制,十六进制,二进制,oct(二进制数,),i,nt,(,二进制数,),h,ex,(,二进制数,),八进制,bin,(,八进制数,),i,nt,(,八进制数,),h,ex,(,八进制数,),十进制,b,in(十进制数,),o,ct(十进制数),h,ex(十进制数),十六进制,bin,(,十六进制数,),o,ct(十六进制数),i,nt,(,十六进制数,),2.,浮点数,浮点数为带小数点的实数,如,3.14,、,0.25,、,-10.26,、,50.21E12,(,此处为科,学计数法,表示,50.21*10,12,)
31、等都是浮点数。,Python,3,中的浮点数和正常的书写格式基本一致。但是当小数点前面或后面的数为,0,时,,0,可以省略。,Python,3,中的整型是没有上下限的,而浮点数则不同,它具有上限和下限。当浮点数超出了上限或下限时,会报溢出错误信息。,2*1024,#2,的,1024,次方,17976931348623159077293051907890247336179769789423065727343008115773267580550096313270847732240753602112011387987139335765878976881441662249284743063947412
32、4377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216,2.0*1024,Traceback(most recent call last):,File,line 1,in,OverflowError:(34,Result too large),当输入,2,的,1024,次方之后,,Python,反馈了一个“,Result too large,”
33、错误。提示结果太大,,Python,不能把它表示出来。,值得注意的是,浮点数在计算机中都是使用二进制存储的,由此不可避免的会带来一定的精度丢失。因此,在使用,Python,做精确计算的时候,需要先对浮点数进行一定的处理。一种较好的办法就是使用,decimal,模块来处理浮点数,例如如下的示例:,from decimal import Decimal,#,导入,decimal,模块中的,Decimal,(),函数,a=Decimal(0.1),b=Decimal(0.2),a+b,Decimal(0.3),print(a+b),0.3,上面代码的第一行的功能是导入,Python,3,内置的,de
34、cimal,模块中的,Decimal,类,这将在第,5,章中讲解。第二行和第三行分别将字符串,0.1,和,0.2,转换成了,Decima,l,类型,第四行代码可以看到变量,a,和,b,相加后的类型仍然为,Decimal,类型,并且其对应的浮点数结果为,0.3,,最后一行代码使用,print,(),语句直接输出了浮点数运算的结果。需要注意的是,传入,Decimal,的参数不能是浮点数,否则误差会仍然存在,因为,Python,中的浮点数本来就是不精确的。,3.复数,Python 3提供了对复数的支持,其运算方法跟数学中的复数运算基本一致。在Python 3中,规定使用1j来表示-1的平方根,如下所
35、示是Python中1j的四则运算。,1j+1j,2j,1j-1j,0j,1j*1j,(-1+0j),1j/1j,(1+0j),如果需要获取复数的实数部分可以使用.real,获取虚数部分用.imag,例如如下的示例:,1j*1j,(-1+0j),(1j*1j).real#实数部分为-1.0,-1.0,(1j*1j).imag#虚数部分为0.0,0.0,4.布尔型,布尔型是一个十分重要的数据类型,它主要应用在分支,循环结构中。Python 2中是没有布尔型的,它用0表示False,1表示True。而Python 3则将0和1分别定义为了:False和True字段,但是它们仍然可以像整型那样相加,例
36、如如下的示例:,False+True,1,True+True,2,2,字符串(,String,),1.,标识字符串,字符串是,P,ython,中常用的一种数据类型,它是由单引号,或双引号,括起来的文本内容,包括字母、数字、标点符号以及特殊符号等字符。除此之外,还可以使用三个单引号或双引号来表示多行字符串。单引号和双引号其实并没有多大的差别,只不过是因为编程的时候双引号需要按住,Shift,键才能打出来,但是当字符串中含有引号的时候,就需要谨慎地选择使用引号。,2,.,转义符的使用,使用转义字符,也能解决字符串中含有单引号或双引号的问题,例如如下的示例:,Iam Jack,Iam Jack,He
37、 said Thank you,He said Thank you,如果想让字符串中的转义符不起作用的话可以在字符串前加,“,r,”,例如如下的示例:,print(nhello world),hello world,print(rnhello world),nhello world,除了,之外,,Python,中还有其他的转义符,如表所示。,转义符,b,n,000,t,v,r,说明,反斜杠,单引号,双引号,退一格,换行,空格,横向制表符,纵向制表符,回车,3,类型转换,有时用户遇到的数据类型并不是其所需要的,这时就需要用到类型转换函数。,Python,3,常用的类型转换函数有三个:,int,(
38、),、,float,(),、,str,(),,这三个函数的使用场景如图所示,下面对三个函数进行简单介绍。,(,1,),str(),函数用于将整型、浮点数转换成字符串,例如如下的示例:,str(100),#,将,100,这一整型转换转换为字符串,下面的以此类推,100,(,2,),floa,t(),函数用于将字符串、整型转换成浮点数,例如如下的示例:,float(100),100.0,(,3,),i,nt,(),函数用于将字符串、浮点数转换成整型,例如如下的示例:,int(100),100,int(1.5),1,另外,浮点数转整型还可以使用,round(),函数,它和,int(),函数唯一的区别
39、就是对小数部分的处理不同,其使用方法如下:,int(5.5),5,round(5.5),6,可以看到,,int,(),函数是直接舍弃掉小数部分而得到整数,而,round(),函数则是使用四舍五入的方法将浮点数转换为整数。,另外,,round,(),函数还可以保留小数位数,例如如下的示例:,round(5.123,1),5.1,上述程序中的,1,表示对浮点数,5.123,保留,1,位小数。,有的时候,,Python,会在运算时自动判断结果的类型,而不需要使用函数去转换,例如如下的示例:,1+1.5,2.5,4,变量,1.,定义变量,变量是计算机语言中能储存计算结果或能表示值抽象概念,,它通常是可
40、变的。,P,ython,中变量的定义格式为:,变量名,=,变量值,Pytho,n,之所以代码很简洁,主要就依赖其变量定义的方式上,在,Python,中可以一次为多个变量赋相同的值,例如如下的示例:,a=b=c=1,print(a=,a,b=,b,c=,c),a=1 b=1 c=1,也能一次为多个变量赋不同的值,例如如下的示例:,a,b,c=1,2,3,print(a=,a,b=,b,c=,c),a=1 b=2 c=3,2,.,类型判断,和,Java,不同的是,,Python,中的变量在定义时不需要预先声明变量的类型,,Python,会根据变量指向的值自动判断该变量的类型。当编程时无法确认一个变
41、量的类型的时候,可以使用,type(),函数来查看该变量的类型,例如如下的示例:,a=1,b=1,print(,变量,a,的类型:,type(a),n,变量,b,的类型:,type(b),变量,a,的类型:,变量,b,的类型:,除此之外,还可以使用,isinstance,来判断变量的类型,,其返回的结果为,True,或,False,,例如如下的示例,:,a=10,isinstance(10,float),#,通过,isinstance,判断,10,是否为,float,类型,False,已定义的变量的类型并不是一直不变的,它会跟随其对应的值的类型改变而改变,例如如下的示例:,a=1,type(a
42、),#,用,type,(),函数判断,a,这一变量的类型,下同,a=1.1,type(a),3.,变量的存储方式,要灵活地使用,Python,变量,必须要先了解,Python,的变量在内存中的存储方式。首先通过,id,(),函数查看变量在内存中的存储地址,例如如下的示例:,a=1,b=2,id(a),#,通过,id,(),函数查看变量,a,在内存中的存储地址,140711954600992,id(b),140711954601024,通过运行结果可以知道变量,a,在内存中的存储地址为,140711954600992,,变量,b,的存储地址为,140711954601024,,然后执行下列代码:
43、,b=a,print(a=,a,地址:,id(a),a=1,地址:,140711954600992,print(b=,b,地址:,id(b),b=1,地址:,140711954600992,为什么最后变量,b,的存储地址成为变量,a,的地址了呢?在定义变量,a,和变量,b,时,程序首先申请了两个内存地址,分别存储整数,1,和整数,2,,如图,1,所示。,当使用赋值符号,“,=,”将变量,a,的值赋给,b,之后,其实是让变量,b,指向了整数,1,,因此变量,b,的地址变成了变量,a,的地址,其过程如图,2,所示。这点一定要注意,,在,python,中,赋值方式和其他语言不同,,其他,语言,是,直
44、接更改,变量,b,内存里面的值,而,Python,直接改变,b,的,指向,,类似于,C,语言中的,指针。,因此最后打印出来的变量b的地址和值跟变量a是一样的。,图,1,图,2,5,常量,Python,中没有专门定义常量的方式,通常使用大写,英文字符,表示,常量,例如如下的示例:,PI=3.14,但是这样的常量其实并不是真正的常量,事实上,,Python,中的常量也是一种变量,只不过它用大写字母标志,提示程序员不能更改它。,6,变量的命名规则,关于,Python,的命名规则,具体有以下几点:,(,1,)变量名应该尽量通俗易懂,方便以后维护时阅读代码。,(,2,)变量名只能包含字母,数字和下画线,
45、并且第一个字符不能是数字,必须是字母或下画线。,(,3,)变量名不能包含空格,如果变量中有多个单词可以使用下画线分隔。,(,4,)变量名区分大小写,所以变量,PI,和变量,pi,是不同的变量名。,(,5,)变量名不能使用代码中的函数名或,Python,内置的函数名命名,如不能使用,print,来命名变量。,(,6,)变量名不能使用,Python,的关键字命名。关键字,是已被,P,ython,编辑工具本身使用,,,不能作其它用途使用的字,,如不能使用,if,来来命名变量。,如需查看,Python,的关键词可以使用下列方法:,import keyword,#,导入,keyword,模块,keywo
46、rd.kwlist,False,None,True,and,as,assert,break,class,continue,def,del,elif,else,except,finally,for,from,global,if,import,in,is,lambda,nonlocal,not,or,pass,raise,return,try,while,with,yield,#,所有的关键字都已列表的形式存放在,kwlist,属性中。,Python,中的关键字如表所示。,False,class,from,or,None,continue,global,Pass,True,def,if,Raise
47、,and,del,import,Return,as,elif,in,try,assert,else,is,while,async,except,lambda,with,await,finally,nonlocal,yield,break,for,not,Python中的运算符,运算符就像数学上的加减乘除一样,是用来运算的一个符号。Python中的运算符远不止加减乘除这几个。Python中共有7种运算符:算术运算符、关系运算符、赋值运算符、位运算符、逻辑运算符、成员运算符和身份运算符。本节中将详细介绍Python中的运算符及优先级。,PART 02,算术运算符,算术运算符是,Python,中最常
48、用的运算符之一,它跟数学上的运算符基本一致。,Python,中的算术运算符共有七个,其描述如表所示。,运算符,+,-,*,/,%,*,/,描述,加,减,乘,除,取余,幂,取整除,前面的,+,、,-,、,*,、,/,运算符使用方法跟数学上基本是一致的,,不同,的是,Python,中的,/,运算返回的结果都是浮点数,,即使是两个能整除的数也是一样的,如,100/2,的运算结果应该是整数,50,,但是,Python,返回的是,50.0,。,100/2,50.0,%,、,*,、,/,运算符的示例如:,9%4,#9,除,4,的余数为,1,1,3*2,#3,的平方为,9,9,9/4,#9/4=2.25,,
49、去掉小数,后为,2,2,%,运算符也可以用在格式化输出字符串中。,关系运算符,Python,的,关系运算符主要用于分支和循环结构中,运算结果返回的布尔值,True,或,False,,关系运算符的描述如表所示。,运算符,=,!=,=,a=1,a=100,#a,是否等于,100,False,a,1,print(a=100),Traceback(most recent call last):,File,line 1,in,TypeError:a is an invalid keyword argument for print(),上述示例中运算符,“,=,”将变量,a,赋值为,1,,它不返回任何值,
50、故在,print,语句中使用会出错,而“,=,”只是用来判断变量,a,的值是否等于,100,,它们不相等故返回了,False,。,赋值运算符,赋值运算符简而言之,就是拿来为变量赋值的运算符,前面定义变量时用到的,“,=,”就是赋值运算符。在,Python,中赋值运算符不仅只有“,=,”,还有许多的赋值运算符,其描述如表所示。,序号,运算符,描述,示例,1,=,常用的赋值运算符,a=1,,将整数1赋给变量a,2,+=,加法赋值运算符,a,+=b,,等效于a,=a+b,3,-=,减法赋值运算符,a-=b,等效于a,=a-b,4,*=,乘法赋值运算符,a*=b,,等效于a,=a*b,5,/=,除法赋