1、Python基础基础前言前言Python简介介Python安装安装2本节内容本节内容进入进入PythonPython编程世界编程世界-Python的官网网站:的官网网站:http:/www.python.org-Unix衍生系统可能已经安装了衍生系统可能已经安装了Python,在命令行对话框,在命令行对话框中键入中键入“python”即可显示版本信息。即可显示版本信息。-Windows下安装下安装Python和安装其他软件一样,很和安装其他软件一样,很easy!-编码方面:Python3.x默认utf-8。-语法方面有改动,数据类型方面有调整。-面向对象、异常处理和模块等方面也有改动。-本教学
2、使用Python3.5。Python下载与安装下载与安装Python2.xvsPython3.xPython安装安装python官网有几个下载文件,有什么区别?官网有几个下载文件,有什么区别?Python3.6.0a1-2016-05-17DownloadWindowsx86web-basedinstallerDownloadWindowsx86executableinstallerDownloadWindowsx86embeddablezipfileDownloadWindowsx86-64web-basedinstallerDownloadWindowsx86-64executablein
3、stallerDownloadWindowsx86-64embeddablezipfilex86是是32位,位,x86-64是是64位。位。可以通过下面可以通过下面3种途径获取种途径获取python:web-basedinstaller是需要通过联网完成安装的是需要通过联网完成安装的executableinstaller是可执行文件是可执行文件(*.exe)方式安装方式安装embeddablezipfile嵌入式版本,可以集成到其它应用中嵌入式版本,可以集成到其它应用中安装好python后,在开始菜单栏中会自动添加一个名为python3.5的文件夹,点击该文件夹会有如图下图所示的一些子目录。I
4、DLE是Python集成开发环境,也称交互模式。Python3.5是Python的命令控制台,里面只能执行Python命令。第三个是帮助文档,点击后会弹出帮助文档。最后一个是Python的模块文档。本书若无特别指出,示例都是在IDLE中执行的。进入进入PythonPython编程世界编程世界打开交互模式,如下图所示:若看到,则表示是在Python交互式环境下,在Python交互式环境下,只能输入Python代码并立刻执行。在交互式环境下输入print(Hello,world!),按回车,可以看到输出了Hello,world!。如下图,红色箭头指向为输入部分,红色框为输出。此处print后面带了
5、括号,表示print是一个函数,单引号里面的叫字符串。如果要让Python打印出指定的文字,可以用print()函数,然后把希望打印的文字用单引号或者双引号括起来,但不能混用单引号和双引号。我们该怎么去刻意犯呢?我们以前面的“Hello,world!”为示例,如果将print(Hello,world!)修改为print(Hello,world!),去掉后面的单引号,在交互模式下测试一下。输入语句:print(Hello,world!)可以看到屏幕打印结果如下图所示,这里打印意为在屏幕上输出文本,并非通过打印机打印出来:通过这个错误提示,就能很快就知道问题的原因。温故知新,学以致用温故知新,学以
6、致用(1)回顾一下Python的发展历程,起源和应用场景。(2)在本地安装Python最新版本,安装好后卸载,卸载后再安装,尽量关注一下各个步骤的细节。(3)尝试在不同操作系统上安装Python。(4)在“Hellworld!”示例中,尝试将print函数拼写错误,查看输出结果。(5)不要用电脑测试,自己想想print(1+2)的输出结果。WindowsWindowsWindowsWindows下运行下运行下运行下运行PythonPythonPythonPython程序程序程序程序HelloWorld.pyHelloWorld.py#-*-coding:cp936-*-支持汉字注释print
7、Hello,world!#我的第一个Python程序raw_input()#使cmd框不立刻退出三种运行方式三种运行方式打开源文件,用PythonShell运行。双击源文件,用CMD运行。在PythonShell中直接写程序运行。进入进入PythonPython编程世界编程世界其他的其他的其他的其他的PythonPythonPythonPython集成开发环境集成开发环境集成开发环境集成开发环境1 1)开源)开源PythonWin+Win32Extensionshttp:/ 2)商业)商业WingIDE(WinWare公司)http:/Komodo(ActiveState公司)http:/ 费
8、费费费资资资资 源源源源简明简明简明简明PythonPythonPythonPython教程教程教程教程啄木鸟社区啄木鸟社区啄木鸟社区啄木鸟社区CSDNCSDNCSDNCSDN下载下载下载下载其他其他其他其他http:/:9081/doc/abyteofpython_cn/chinese/index.htmlhttp:/ 章章章章主主主主 题题题题操作符,赋值,数据类型操作符,赋值,数据类型缩进,循环语句,条件语句缩进,循环语句,条件语句文件操作,错误处理文件操作,错误处理函数,类,模块函数,类,模块printprintprintprint输出,注释输出,注释输出,注释输出,注释 print
9、(“Hello world!“)#Python Shell提示符Hello world!abs(-4)#abs():内建函数,取绝对值4 myString=Hello world!#单引号、双引号成对使用 print myStringHello world!myStringHello world!#显示结果带引号 _#下划线含义:表示最后一个表达式Hello world!PythonPython快速入门快速入门printprintprintprint输出,注释输出,注释输出,注释输出,注释 print(“%s is%d years old.”%(“李书豪”,26))李书豪 is 26 year
10、s old.#%s 字符串;%d 整型;%f 浮点型#Python非常灵活,即使将数字传递给%s,也不会引发严重后果 logFile=open(myLogFile.txt,a)#打开文件 print logFile,Python让程序员的工作更轻松。#重定向输出符号 logFile.close()#关闭文件PythonPython快速入门快速入门raw_input()raw_input()raw_input()raw_input()输入输入输入输入 userName=raw_input(输入登录名:)输入登录名:李书豪 print 你的登录名为,userName 你的登录名为 李书豪#自动加空
11、格#raw_input():从用户那里得到数据输入;myNumber=raw_input(输入一个数字:)输入一个数字:1024 print 你输入数字的2倍是:%d%(int(myNumber)*2)你输入数字的2倍是:2048#int()字符串转换为整型PythonPython快速入门快速入门操作符操作符操作符操作符标准算术操作符:+-*/取整%取余 *乘方 print-2*3+2010/4*2 print(-2*3)+(2010/(4*2)#括号增加可读性标准比较操作符:=!=3.14 3.14!=3.14#渐渐被淘汰False逻辑操作符:and or not(2 4)and(2=4)o
12、r(not(3 4 5)False#3 4 5 等价于 3 4 and 4 pptname=“Introction to Python”pptName=“Python入门”height=1.71 age=26 n=height n*=100#等价于 n=n*100五种基本数字类型:int long bool float complex复数0102 -128 0 x80 -0XA9;12345678902010L -0 xABCDEF123456L;True False;3.1415926 -1.2E-14 10.32.1e10;6.54+3.21j -1.23+45.6J 0+1j 99-88
13、j -0.142857+0jPythonPython快速入门快速入门数据类型数据类型数据类型数据类型字符串字符串字符串字符串字符串:索引操作符 :切片操作符 +连接运算 *重复运算 strPython=Python strIsCool=is cool!strPython0#第一个字符 strPython2:5:thoP strIsCool-1#最后一个字符 strIsCool:2:is!strPython+strIsCool#n:回车Python is cool!-*30-PythonPython快速入门快速入门数据类型数据类型数据类型数据类型列表、元组、字典列表、元组、字典列表、元组、字典列
14、表、元组、字典列表(list)和元组(tuple):可以看成普通的“数组”numberList=1,2,3,4,5,6,7,8,9,0 mixList=Li Shuhao,26,1.71 mixTuple=(Python,is,cool)#元组可以看成只读的列表,如:mixTuple0=C+,出错!print mixTuple0,mixTuple1,mixTuple-1Python is cool字典(dictionary):由键值对(Key-Value)构成 myDict=name:LiShuhao,height:171,age:26 for mKey in myDict:print mKe
15、y,myDictmKey#缩进:Tab,空格PythonPython快速入门快速入门缩进,缩进,缩进,缩进,whilewhilewhilewhile循环语句,循环语句,循环语句,循环语句,ifififif条件语句条件语句条件语句条件语句缩进:简洁、可读性好循环语句:whilewhile expression:#expression 条件表达式 while_suite#根据条件循环执行的语句条件语句:if elif elseif expression1if expression1:#蓝色部分蓝色部分可以单独用 if_suiteif_suiteelif expression2:elif expre
16、ssion2:#绿色部分绿色部分可以省略,也可以重复多个 elif_suite elif_suiteelse expression3:#用elif,最后必须有else else_suite#Python没有switch-casePythonPython快速入门快速入门forforforfor循环语句循环语句循环语句循环语句循环语句:for range()内建函数Python中的for循环与传统的for循环不太一样,不是计数循环,更像迭代循环,如:for nItem in 123,email,homework:print nItemfor nItem in range(5):#range(5)等
17、价于1,2,3,4,5 print nItem,#print不自动换行方法:加逗号for nChar in myString:#myString=abc print nCharfor i in range(len(myString):#len()字符串长度 print(%d)%(i),myStringi#输出:(0)a PythonPython快速入门快速入门forforforfor循环语句循环语句循环语句循环语句循环语句:for enumerate()内建函数#enumerate()突破约束:索引、元素双循环for i,nChar in enumerate(myString):print(%
18、d)%(i),myStringi列表解析:for语句squared=item*2 for item in range(5)#0 1 4 9 16 complexTuple=(item*2 for item in range(10)if item%2)#1 9 25 49 81 PythonPython快速入门快速入门文件操作文件操作文件操作文件操作文件操作:open()file()readlines()close()handle=open(file_name,access_mode=r)#默认 r#r:读取;w:写入;a:添加;+:读写;b:二进制访问。filename=raw_input(请
19、输入文件名:)hFile=file(filename,r)for nLine in hFile:print nLine,hFile.close()#close()是文件对象hfile的一个属性#属性可以是数据值,也可以是函数和方法,类、模块、文件和复数等都有属性。#本示例适用于较小的文件,否则占用内存太大。PythonPython快速入门快速入门错误处理错误处理错误处理错误处理错误和异常:try-except#Python编译时会检查语法错误,运行时检测其他错误。#当遇到错误,Python解释器就引发异常,并显示详细信息。try:#你打算管理的代码段 except IOError,e:prin
20、t 出错原因,e#程序员也可以用raise有意引发一个异常PythonPython快速入门快速入门函数函数函数函数函数:def function_name(arguments):#参数可为空,可有默认值 “optional documentation string”#可选的函数说明语句 function_suite#函数代码段 return fun_obj#可以没有,自动返回None对象def addMeToMe(me):#函数示例:神奇的+操作 return(me+me)#小括号不能省略print addMeToMe(3.14)#6.28print addMeToMe(100)#200pri
21、nt addMeToMe(Python)#PythonPythonprint addMeToMe(-1,abc)#-1,abc,-1,abcPythonPython快速入门快速入门类,模块类,模块类,模块类,模块类:相关数据及逻辑的容器,构建创建真实对象的蓝图。class className(baseClasses):“optional documentation string”#说明性文字(可选)static_member_declarations#静态成员定义 method_declarations#方法定义模块:一种组织形式,将有联系的代码组织到独立文件中#模块可以包含可执行代码、函数和
22、类。import sys#导入方法,sys为模块名称sys.stdout.write(Hello world!)sys.platform#win32sys.version#2.6.5(r265:79096,PythonPython快速入门快速入门第二章第二章开启开启Python之旅之旅本章主要介绍一些Python的基本知识和一些基本概念的介绍,为后续章节学习相关内容做铺垫。2.1“旅行旅行”第一步第一步认识程序程序旅行前,我们要先熟悉地名,知道要去哪里,将会经过哪里。学习编程也一样,在学习之前要先了解程序、调试、语法错误、运行错误、语义错误等。2.1.1程序程序程序是用程序是用语言写成的。言写
23、成的。语言分高言分高级语言和低言和低级语言。言。高高级语言翻言翻译成机器代成机器代码有两种方法:解有两种方法:解释和和编译。编译型语言则是将源代码完整的编译成目标代码后才能执行。以后在执行时就不需要编译了。下图显示了一个编译器的结构。这个有点类似我们乘坐的直达车,所有要乘车的人从起点上车,中途不搭载其他乘客。2.2数数 据据 类 型型Python3中有六个标准的数据类型:Number(数字)、(数字)、String(字符串)、(字符串)、List(列表)、(列表)、Tuple(元(元组)、)、Sets(集合)、(集合)、Dictionary(字典)。(字典)。本节将讲解Number(数字)数据
24、类型,其它五种数据类型由后续相关章节进行介绍。Python3支持三种不同的数值类型:整型(整型(int)、浮点型()、浮点型(float)、复数)、复数(complex)。)。2.2.1整型整型整型(int),通常被称为是整型或整数,是正或负整数,不带小数点。例如交互模式下输入如下:5151这里使用的就是整型。整型加法如下:25+2550整型减法:51-501整型乘法:51*2102整型除法:153/513.0155/513.0392156862745097此处出现除不尽的情况了。在整数除法中,除法(/)计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数,如果只想得到整数的结果,丢弃可能
25、的分数部分,可以使用地板除(/),整数的地板除(地板除(/)永)永远是整数是整数,即使除不尽。改成如下写法:153/513155/513地板除(/)只取结果的整数部分,Python还提供一个余数运算,可以得到两个整数相除的余数。如下:153%510155%5122.2.2浮点型浮点型浮点型(float),浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示。先看示例:3.3*102336.59999999999997按预计应该一位小数,但输出结果却有这么多位小数。是因为整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的,而浮点数运算则可能会有四舍五入的误差。如下输入:3
26、.3*102+15.5352.09999999999997浮点除法:153/51.03.0155/51.03.0392156862745097浮点地板除:155/51.03.0155%51.02.02.2.3复数复数复数(complex),复数由实数部分和虚数部分构成,可以用a+bj,或者complex(a,b)表示,复数的实部a和虚部b都是浮点型。Python支持复数,Python的复数我们当前阶段使用或接触的比较少,此处就不做具体的讲解,读者有一个概念即可,有兴趣可以自行查阅相关资料。2.2.4数据数据类型型转换有时候,我们需要对数据内置的类型进行转换,数据数据类型的型的转换,你只需要将数
27、据数据类型作型作为函函数名即可数名即可。关于数据的类型转换,有如下几个函数可以使用:int(x)将x转换为一个整数。float(x)将x转换到一个浮点数。complex(x)将x转换到一个复数,实数部分为x,虚数部分为0。complex(x,y)将x和y转换到一个复数,实数部分为x,虚数部分为y。x和y是数字表达式。int(x)示例:int(352.1)352float(x)示例:float(352.1)352.1float(int(352.1)352.0这里先把352.1取整得到整数352,再用float将352转换成浮点数352.0,这样就得到我们需要的结果。2.2.5常量常量所谓常量就是
28、不能变的变量,比如常用的数学常数就是一个常量。在Python中,通常用全部大写的变量名表示常量。Python中有两个比较常见的常量,分别为:PI和E。PI:数学常量pi(圆周率,一般以来表示)。E:数学常量e,e即自然常数(自然常数)。这两个常量将会在后续章节中被使用,具体的用法在使用中进行体现。2.3变量和关量和关键字字编程语言最强大的功能之一是操纵变量的能力。变量(variable)是一个需要熟知的概念。如果你觉得数学是让你抓狂的话,别担心,Python中的变量很好理解。变量基本上就是代表某值的名字。2.3.1变量量在Python中,变量的使用环境非常宽松。没有在Python中,等号(=)
29、是赋值语句,可以把任意数据类型赋值给变量。如下为定义一个名为xiaohong的变量:xiaohong=XiaoHong此操作解释:xiaohong是我们创建的变量,=是赋值语句,XiaoHong是变量值,需要用引号标记。整句话的意思为:创建变量xiaohong并赋值为XiaoHong。(注意:字符串必须以引号标记开始,并以引号标记结束。)打印变量结果:print(xiaohong)XiaoHong在使用变量前,需要对其赋值,没有值的变量是没有意义的,编译器也不会编译通过。例如我定义一个变量为abc,不赋任何值,输入及结果如下:abcTraceback(mostrecentcalllast):F
30、ile,line1,inabcNameError:nameabcisnotdefined同一个变量可以反复赋值,而且可以是不同类型的变量,输入如下:a=123123a=ABCprint(a)ABC这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。和静态语言相比,动态语言更灵活,就是这个原因。当不能确定变量或数据的类型时,可以借助解释器内置的函数type进行确认。在交互模式下可以如下输入:type(Hello,world!)type(100)type(3.0)a=testtypetype(a)请不要把赋值语
31、句的等号等同于数学的等号。比如下面的代码:a=100a=a+200在编程语言中,赋值语句先计算右侧的表达式a+200,得到结果300,再赋给变量a。由于a之前的值是100,重新赋值后,a的值变成300。我们通过交互模式验证,输入如下:a=100a=a+200print(a)300理解变量在计算机内存中的表示也非常重要。当我们写:a=ABC时,Python解释器干了两件事情:(1)在内存中创建了一个ABC的字符串;(2)在内存中创建了一个名为a的变量,并把它指向ABC。也可以把一个变量a赋值给另一个变量b,这个操作实际上是把变量b指向变量a所指向的数据,例如下面的代码:a=ABCb=aa=XYZ
32、print(b)最后一行打印出变量b的内容到底是ABC呢还是XYZ?如果从数学意义上理解,就会错误地得出b和a相同,也应该是XYZ,但实际上b的值是ABC,让我们一行一行地执行代码,就可以看到到底发生了什么事。执行a=ABC,解释器创建了字符串ABC和变量a,并把a指向ABC,如下图所示:执行b=a,解释器创建了变量b,并把b指向a指向的字符串ABC,如图2-4所示:执行a=XYZ,解释器创建了字符串XYZ,并把a的指向改为XYZ,但b并没有更改,如图2-5所示:所以,最后打印变量b的结果自然是ABC了。2.3.2变量名称量名称变量名可以是由数字或字符由数字或字符组成的任意成的任意长度的度的字
33、符串,但必字符串,但必须以字母开以字母开头。使用大写字母是合法的,但变量名使用小写字母开头是个好主意。python是区分大小写的是区分大小写的。举个例子来说,Name和name是两个不同的变量名。交互模式中输入如下:name=studypythonishappyName=Iaggreewithyouprint(name)studypythonishappyprint(Name)Iaggreewithyou下划线“_”可以出现在变量名中。它经常用于连接多个词组。比如happy_study,do_it_with_more_practice。交互模式输入如下:happy_study=stayhung
34、rystayfoolishprint(happy_study)stayhungrystayfoolish如果给变量取非法的名称,解释器显示语法错误。请看下面的示例:2wrongtest=justfortestSyntaxError:invalidsyntax该示例提示语法错误,错误信息为无效的语法,原因是它不是以字母开头。xiaomingme=surprisedSyntaxError:cantassigntooperator该示例提示语法错误,错误信息为不能做指定操作,原因为它包含了一个非法字符。from=fromSyntaxError:invalidsyntaxfrom是Python的一个关
35、键字。解释器通过关键字来识别程序的结构,并且它们不能用来作为变量名称。Python3中共有33个关键字:FalseNoneTrueandasassertbreakclasscontinuedefdelelifelseexceptfinallyforfromglobalifimportinnonlocallambdaisnotorpassraisereturntrywhilewithyield2.4语句句语句是Python解释器可以运行的一个代码单元,也可以理解为可以执行的命令。我们目前已经使用过了两种语句:print打印语句和赋值语句。赋值语句有两个作用:一是建立新的变量,二是将值赋予变量。任
36、何变量在使用时,都必须赋值。否则,被视为不存在的变量。advice=boss,wewanthavealunchtype(advice)这个语句中的advice的类型是字符串(str)类型的。一般的情况下,我们用状态图表示变量的状态。左边是变量的名称,右边是变量值,中间的箭头指向值。状态图显示了赋值语句的最终操作结果。advice=boss,wewanthavealunchmoney=99999999spend=1.11111111如上面几条语句对应的状态图如下图所示:2.5表表达达式式表达式是值、变量和操作符的组合。单独一个值也被看作一个表达式。单独的变量也可以看作一个表达式。表达式和语句一般
37、不容易区分,很多人会将两者混在一起。那么语句和表达式之间有什么区别?表达式是某事,而语句是做某事,说的通俗点就是告诉计算机做什么。比如3*3是9,而print(3*3)打印出来是9。那么区别在哪里?比如我们在交互模式下输入如下:3*39print(3*3)9在交互模式下,其结果都是一样的。但这只是因为解释器总是把所有表达式的值打印出来而已(其内部都使用了相同的函数对结果进行呈现,后面会有细致的介绍)。一般情况下,Python不会这么做,毕竟3*3这样的表达式并不能做什么有趣的事情,而编写print(3*3)会有一个显示的。语句和表达式之间的区别在赋值时会表现的更加明显一些。因为语句不是表达式,
38、所以没有值可供交互式解释器打印出来。比如在交互模式下输入如下:a=10010*10100打印出9的结果。赋值语句输入完成后,下面立刻出现了新的提示输入符。而表达式输入完成后,下面立刻得到了结果。不过对于赋值语句,有些东西已经变了,变量a现在绑定了一个值100。这个是语句特性的一般定义:它它们改改变了了事物事物。比如,赋值语句改变了变量,print语句改变了屏幕显示的内容。赋值语句可能是任何计算机程序设计语言中最重要的语句类型,尽管现在还难以说清它们的重要性。2.6运算符和操作运算符和操作对象象运算符和操作对象是计算机中比较常见的,任何的计算,都涉及到运算符和操作对象。本节将介绍Python中的
39、运算符和操作对象。2.6.1什么是运算符和操作什么是运算符和操作对象象运算符我知道,我们前面学习的加(+)、减(-)、乘(*)、除(/)、地板除(/)、取余(%)等都是运算符,是一些特殊符号的集合。操作对象就是由运算符连接起来的对象。Python支持以下8种运算符:(1)算术运算符。(2)比较(关系)运算符。(3)赋值运算符。(4)逻辑运算符。(5)位运算符。(6)成员运算符。(7)身份运算符。(8)运算符优先级。2.6.2算算术运算符运算符以下变量a为10,变量b为5:运运 算算符符描述描述实例实例+加:两个对象相加a+b输出结果15-减:得到负数或是一个数减去另一个数a-b输出结果5*乘:
40、两个数相乘或是返回一个被重复若干次的字符串a*b输出结果50/除:x除以ya/b输出结果2%取模:返回除法的余数b%a输出结果0*幂:返回x的y次幂a*b为10的5次方,输出结果100000/取整除(地板除):返回商的整数部分9/2输出结果4,9.0/2.0输出结果4.0交互模式下输入:2*32/1024/1024/10244.02*64/1024/1024/102417179869184.02*32是2的32次方,这个就是32位操作系统最大支持的内存的字节数,除以第一个1024是转换为KB,1KB=1024B,除以第二个1024是转换为MB,1MB=1024KB,除以第三个1024是转换为G
41、B,1GB=1024MB。这个结果也就意味着32位的操作系统最大只能支持4GB的内存。现在大家都趋向于选择64位的了,64位的系统能支持多大内存,自己可以算一下。2.6.3比比较运算符运算符以下变量a为10,变量b为20:运算符运算符描述描述实例实例=等于:比较对象是否相等(a=b)返回False。!=不等于:比较两个对象是否不相等(a!=b)返回True.大于:返回x是否大于y(ab)返回False。小于:返回x是否小于y。(a=大于等于:返回x是否大于等于y。(a=b)返回False。=小于等于:返回x是否小于等于y。(a=b)返回True。在一些地方,会看到用1代表True,0代表Fal
42、se,这种是正确也是合理的表示方式,这个大家更多会理解为开和关的意思,就像我们物理中所学习的电流的打开和关闭一样。后面会有更多的地方用到用1和0代表True、False的示例。另外,在Python2中,有时可能会看到这个符号,其和!=一样,也表示不等于,在Python3中已去除,若以后有看到运算符,那应当使用的是Python2。2.6.4赋值运算符运算符以下变量a为10,变量b为20:运算符运算符描述描述实例实例=简单的赋值运算符c=a+b将a+b的运算结果赋值为c+=加法赋值运算符加法赋值运算符c+=a等效于等效于c=c+a运算符运算符描述描述实例实例-=减法赋值运算符c-=a等效于c=ca
43、*=乘法赋值运算符c*=a等效于c=c*a/=除法赋值运算符c/=a等效于c=c/a%=取模赋值运算符c%=a等效于c=c%a*=幂赋值运算符c*=a等效于c=c*a/=取整(地板)除赋值运算取整(地板)除赋值运算符符c/=a等效于等效于c=c/a2.6.5位运算符位运算符按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下。以下变量a为60,变量b为13:运运 算算符符描述描述实例实例&按位与运算符(a&b)输出结果12,二进制解释:00001100|按位或运算符(a|b)输出结果61,二进制解释:00111101按位异或运算符:(ab)输出结果49,二进制解释:001
44、10001按位取反运算符:(a)输出结果-61,二进制解释:11000011,在一个有符号二进制数的补码形式。左移动运算符:“右边的数指定移动的位数,高位丢弃,低位补0。a右移动运算符:右移动运算符:a2输出结果输出结果15,二进制解,二进制解释:释:000011112.6.6逻辑运算符运算符Python语言支持逻辑运算符,以下变量a为10,变量b为20:运运 算算符符逻逻 辑辑 表表达式达式描述描述实例实例Andxandy布尔与-如果x为False,xandy返回False,否则它返回y的计算值。(aandb)返回20。Orxory布尔“或”-如果x是非0,它返回x的值,否则它返回y的计算值
45、。(aorb)返回10。Notnotx布尔“非”-如果x为True,返回False。如果x为False,它返回True。not(aandb)返回Falsea=10b=3list=1,2,3,4print(ainlist)print(binlist)2.6.7成成员运算符运算符Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。运运 算算符符描述描述实例实例in如果在指定的序列中找到值返回True,否则返回False。x在y序列中,如果x在y序列中返回True。notin如果在指定的序列中没有找到值返回True,否则返回False。x不在y序列中,如果x不在y序列
46、中返回True。a=10b=3print(aisb)print(aisnotb)2.6.8身份运算符身份运算符身份运算符用于比较两个对象的存储单元运运算算符符描述描述实例实例isis判断两个标识符是不是引用自一个对象xisy,如果id(x)等于id(y),is返回结果1isnotisnot用于判断两个标识符是不用于判断两个标识符是不是引用自不同对象是引用自不同对象xisnoty,如果如果id(x)不等于不等于id(y).isnot返回结果返回结果12.6.9运算符运算符优先先级以下表格列出了从最高到最低优先级的所有运算符:运算符运算符描述描述*指数(最高优先级)+-按位翻转,一元加号和减号(最
47、后两个的方法名为+和-)*/%/乘,除,取模和取整除+-加法减法右移,左移运算符&位AND|位运算符=比较运算符=!=等于运算符=%=/=/=-=+=*=*=赋值运算符isisnot身份运算符innotin成员运算符notorand逻辑运算符逻辑运算符2.7字符串操作字符串操作字符串是Python中最常用的数据类型。我们可以使用引号(或)来创建字符串。字符串可以使用操作符+,但其功能和数学中的不一样,它会进行拼接(concatenation)操作,即将前后两个字符首尾连接起来。如:string1=hellostring2=worldprint(string1+string2)helloworl
48、d如果想让字符串之间有空格,可以建一个空字符变量,插在相应的字符串之间让它们隔开,或是在字符串中加入相应的空格。交互模式下输入如下:string1=hellostring2=worldspace=print(string1+space+string2)helloworld或者string1=hellostring2=worldprint(string1+string2)helloworld计算机是美国人发明的,因此,最早只有127个字母被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122。在最新的Pytho
49、n3版本中,字符串是以UTF-8编码的,也就是说,Python3的字符串支持多语言。Python2中默认的编码格式是ASCII格式,在没修改编码格式时无法正确打印汉字,在读取中文时会报错。Python2使用中文的语法是在字符串前面加上前缀u。2.8注注释当程序变的更大更复杂时,读起来也更困难。程序的各部分之间紧密衔接,想依靠部分的代码来了解整个程序要做的,是困难的。在现实中,经常会遇到一段代码,很难弄清楚它在做什么、为什么那么做。因此,在程序中加入自然语言的笔记来解释程序在做什么,是个不错的主意。这种笔记称为注释(comments),注释必须以符号“#”开始。注释可以单独占一行,也可以放在语句
50、行的末尾。交互模式下输入如下:#打印1+1的结果print(1+1)2print(1+1)#打印1+1的结果2比如如下的代码中注释与代码重复,毫无用处:r=10#将10赋值给r而下面这段代码注释则包含了代码中隐藏的信息,如果不加注释,很难让人看懂这个是什么意思(虽然在实际中可能可以根据上下文判定,但需要浪费不必要的思考时间)。r=10#半径,单位是米选择好的变量名,可以减少注释的需要,但长名字也会让复杂表达式更难阅读,所以这两者之间需要衡量舍取。2.9调试错误是好的,错误能帮助我们长进。(1)还记得数字类型转换吗,若用int()转换一个字符,会得到怎样的结果,尝试一下,交互模式下输入如下:in