Python程序设计基础教程课件 第03章 Python数据类型和运算_第1页
Python程序设计基础教程课件 第03章 Python数据类型和运算_第2页
Python程序设计基础教程课件 第03章 Python数据类型和运算_第3页
Python程序设计基础教程课件 第03章 Python数据类型和运算_第4页
Python程序设计基础教程课件 第03章 Python数据类型和运算_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python程序设计基础教程

第3章Python数据类型和运算提纲简单数据类型数值类型字符串及常见操作变量及类型转换Python的基本运算和表达式运算符算术运算赋值、关系和逻辑运算表达式学习目标了解Python中整数、浮点、布尔、复数以及字符串类型的特点和用法。掌握数据类型的相互转换方法。理解算术、赋值、关系、逻辑运算的特点和用法。了解各种运算的优先级和结合性。构建和使用表达式。

3.1简单数据类型Python数据类型

Python作为一种擅长数据处理的程序设计语言,有着丰富的数据类型。包括:简单数据类型数值整数浮点布尔复数字符串复杂数据类型列表元组字典集合3.1.1数值类型整数(int):没有小数部分的数字,无长度限制。浮点数(float):带小数的数字,有上下限。布尔值(bool):只有True和False两个值。复数(complex):包含实部和虚部,用j表示虚数单位。具体的数值均为不可变对象。内置函数type(object)可以返回object的数据类型>>>type(1)<class'int'>>>>type(1.0)<class'float'>>>>type('1')<class'str'>内置函数isinstance(obj,class)可以用来测试对象obj是否为类型class的数据

>>>isinstance(1,int)True>>>isinstance('1',str)True整数是不带小数部分的数字,如100,0,-273。Python的整数没有长度限制。可以书写和计算有几百位数字的大整数。>>>9**100 #9的100次方265613988875874769338781322035779626829233452653394495974574961739092490901302182994384699044001Python整数的书写支持四种数制:十进制、二进制、八进制和十六进制。十进制直接正常书写,后三种数制需要特殊的前缀,分别是0b、0o、0x,其中小写字母也可以换成大写字母。在十六进制中,使用A~F这6个字母来代表10~15,换成小写a~f也是一样的。>>>x=0b1010>>>x10>>>y=0o15>>>y13>>>z=0x2f>>>z47浮点数是带小数的数字,如4.,.5,-2.7315e2。其中,4.相当于4.0,.5相当于0.5,-2.7315e2是科学计数法,相当于-273.15。所谓“浮点”(floating-point)是相对于“定点”(fixed-point)而言的,即小数点不再固定于个位和十分位数字之间,而是可以浮动的。在数据存储长度有限的情况下,采用浮点表示方法的好处是:在数值变动范围很大或者数值很接近0时,仍能保证一定长度的有效数字。与整数不同,浮点数存在上限和下限。计算结果超出上限和下限的范围会导致溢出错误。>>>100.0**100 #100.0的100次方1e+200>>>100.0**1000 #100.0的1000次方Traceback(mostrecentcalllast):File"<pyshell#83>",line1,in<module>100.0**10000OverflowError:(34,'Resulttoolarge')浮点数只能以十进制书写。需要说明的是,计算机不一定能够精确地表示程序中书写或计算的实数。有两个原因:因为存储有限,计算机不能精确显示无限小数,会产生误差。由于计算机内部采用二进制表示,不是所有的十进制实数都可以用二进制精确地表示。>>>2/30.6666666666666666>>>1-2/30.33333333333333337布尔值就是逻辑值,只有两个值:True和False,分别代表“真”和“假”。下面两个例子比较左右两个值是否相等,比较的结果是布尔值。>>>1==1.0True>>>123=='123'False在数学上,布尔类型可以认为是整数类型的子集。所以程序设计中这两种类型联系也很紧密,可以相互转化,称之为类型转换。一方面,True转换为1,False转换为0;另一方面,所有非0整数都转换为True,0转换为False。其它数据类型之间也可以类型转换,后面会详细介绍。由上可知,布尔值False小于True。复数是Python内置的数据类型,使用1j表示-1的平方根。复数对象有两个属性real和imag可以查看实部和虚部。>>>(3+4j)*(3-4j)(25+0j)>>>(3-4j).real3.0>>>(3-4j).imag-4.03.1.2字符串及常见操作字符串是字符序列,如'Pythoniswonderful!','16300240001','张三',’’。''表示空字符串。字符串和数字一样,都是不可变对象。所谓不可变,是指不能原地修改对象的内容。>>>a=b='abc'>>>id(a)2188185863144>>>id(b)2188185863144>>>a='ABC' #修改a>>>id(a) #a引用了另一处空间2188185865720>>>b #b的内容不变,可见对字符串变量a赋值,并不是原地修改'abc'字符串界定符是用来区分字符串和其它词法单位的,有三种形式:单引号,如'','1+1=2','Hesaid"howareyou?"'。当字符串中含有双引号时,最好使用单引号作为界定符。双引号,如"","中国","It'smybook."。当字符串中含有单引号时,最好使用双引号作为界定符。三引号,可以是连续三个单引号,也可以是三个双引号,如'''Hello''',"""您好"""。常用于多行字符串,例如函数定义中的文档字符串。转义符是一些特殊的字符。python用反斜杠(\)来转义字符,以便表示那些特殊字符,参见表3-1。转义字符描述\\反斜杠符号\'单引号\"双引号\a响铃\b退格(Backspace)\n换行\t横向制表符\v纵向制表符\r回车\f换页\ooo八进制数ooo代表的字符,例如:\012代表换行,因为八进制012相当于十进制的10,而10是换行符的编码。\xhh十六进制数hh代表的字符,例如:\x0a也代表换行。\other其它的字符以普通格式输出以下是使用了转义符的几个例子。>>>print('a\tb\nc\\')a bc\>>>"\"Great!\""'"Great!"'>>>print("\"Great!\"")"Great!"原始字符串用于我们只想显示字符串原来的意思,不让转义字符生效。这就要用r和R来定义原始字符串。如:>>>print(r'D:\new\tax.txt')D:\new\tax.txt在此例中,如果不使用原始字符串,就得多次使用转义符'\\'。>>>print('D:\\new\\tax.txt')D:\new\tax.txt字符串操作的相关方法:长度连接重复索引格式化切片字符串长度使用len(.)函数,可以确定字符串包含多少个字符,即字符串的长度。示例代码如下:>>>len('Abc123!')8>>>len('中国')2>>>len('')0>>>len('a\nb\\c')5字符串连接利用加法运算符+可以让两个字符串首尾相连。示例代码如下:>>>'Python'+'Programming''PythonProgramming'>>>'Hesaid'+'"It\'sme!"'#第2条语句'Hesaid"It\'sme!"'>>>print('Hesaid'+'"It\'sme!"')#第3条语句Hesaid"It'sme!"从上面的第2条语句的输出我们可以看出,IDLE环境输出显示的字符串形式自动加了一个'\',以免引起歧义。第3条语句的输出说明,'\'实际并不包含在连接结果里,print输出也不会显示。字符串重复利用乘法运算符*可以让一个字符串自身多次重复并拼接在一起。示例代码如下:>>>'bla'*4'blablablabla'>>>10*'=*=''=*==*==*==*==*==*==*==*==*==*='字符串索引利用方括号运算符[]可以通过索引值得到相应位置(下标)的字符。Python的索引有两套:其一是从前往后的正向索引,n个字符的字符串,其索引值从0至n-1;其二是从后向前的负数索引,n个字符的字符串,其索引值从-1至-n。示例代码如下:>>>s='Python'>>>print(s[0],s[5]) #注意不能越界Pn>>>print(s[-1],s[-6])nP>>>s[6] #下标越界了Traceback(mostrecentcalllast):File"<pyshell#158>",line1,in<module>s[6]IndexError:stringindexoutofrange字符串格式化一般形式是:format_string%obj。

把对象obj按格式要求format_string转换为字符串。常见格式符及含义参见表3-2。格式字符含义示例%s输出字符串'Gradeis%s'%'A-'返回'GradeisA-'%d输出整数'Scoreis%d'%90返回'Scoreis90'%c输出字符chr(num)'%c'%65返回'A'%[width][.precision]f输出浮点数,总长度为width,小数点后precision位。width默认为0,precision默认为6。'%f'%1.23456返回'1.234560''%.4f'%1.23456返回'1.2346''%7.3f'%1.23456返回'1.235''%4.3f'%1.23456返回'1.235'表格中最后一行的width和precision是格式符的修饰符。precision比width更重要,要优先保证。width相对不那么重要,某些情形下可以不遵守。例如规定的width比实际需要的字符数量更少,那么就按照实际需要的字符数量输出。width修饰符也可以用于%s和%d等格式符,含义一样。pricision修饰符也可以用于%s格式符,表示取字符串的前precision个字符。例如:'%2.1s先生'%'张三'返回'张先生'。格式字符串可以含有多个%格式字符,每个都要有对应的值,所有值必须组成元组的形式。示例代码如下:>>>'%d:%c'%(65,65) #圆括号括起来,形成元组'65:A’请注意格式化后的结果一定是字符串。字符串切片在Python中,可使用切片从字符串中提取子串。切片是Python序列的重要操作之一,适用于字符串、列表、元组、range对象等类型。切片的参数是用2个冒号分隔的3个数字。第一个数字表示切片开始位置(默认为0),第二个数字表示切片截止位置(但不包含这个位置,默认为字符串长度),第三个数字表示切片的步长(默认为1),当步长省略时可以顺便省略最后一个冒号。>>>a='Python'>>>a[1:4] #切片实际包含索引位置为1~3的字符'yth'>>>a #切片返回的是字符串的一个副本,原字符串没有发生变化。'Python'>>>a[:4] #省略第一个数字,表示切片从位置0开始。'Pyth'>>>a[1:] #省略第二个数字,表示切片到字符串末尾结束。'ython'>>>a[::]'Python'>>>a[::2] #步长为2'Pto'>>>a[::-1] #步长为-1,得到倒序字符串'nohtyP'>>>a[:100] #截止位置越界,切片到末尾结束'Python'>>>a[100:] #起始位置越界,返回空字符串

''与字符串索引不同,切片操作不会因为下标越界而抛出异常,而是简单地在字符串尾部截断或者返回一个空字符串。字符串的切片和列表的切片略有不同。因为字符串是不可变的对象,所以不能对字符串切片赋值。>>>a[::]='Java'Traceback(mostrecentcalllast):File"<pyshell#258>",line1,in<module>a[::]='Java'TypeError:'str'objectdoesnotsupportitemassignment但是列表的切片可以赋值,而且会对原来的列表产生影响。虽然切片操作确实是返回原件的一个副本,但是如果对切片赋值,Python会对原件进行修改。这个在后面章节列表的学习中,要引起注意。3.1.3变量及类型转换变量是指运行过程中值可以修改的量。

在Python中,并没有明显的变量定义语句。变量定义是通过对变量第一次进行赋值来实现的。=====================RESTART:Shell=====================>>>x #x变量未定义,不能访问。Traceback(mostrecentcalllast):File"<pyshell#176>",line1,in<module>xNameError:name'x'isnotdefined>>>x=1 #对x的第一次赋值,也就是对x的定义。此后,x变量就存在了。>>>x1>>>x=1.5 #对x再次赋值,可以修改变量的值。>>>x1.5>>>delx #使用del命令删除x变量,之后变量x就不存在了。>>>xTraceback(mostrecentcalllast):File"<pyshell#182>",line1,in<module>xNameError:name'x'isnotdefined变量必须定义之后才能访问。Python中的变量比较灵活,同一个变量可以先后被赋予不同类型的值。如上面的例子,x一开始是整型变量,之后变成了浮点型变量。使用del命令可以删除一个对象(包括变量、函数等),删除之后就不能再访问这个对象了,因为已经不存在了。当然,也可以通过再次赋值重新定义x变量。

变量是否存在,取决于变量是否占据一定的内存空间。当变量定义时,向操作系统申请内存空间,分配给该变量,该变量就存在了。当使用del删除变量时,该变量内存被释放,归还给操作系统,该变量也就不存在了。Python具有垃圾回收机制,当一个内存空间不再被使用(引用计数为0),这个内存空间就会被自动释放。所以Python不会像C一样发生内存泄漏,导致内存不足甚至系统死机。Python的垃圾空间回收是系统自动完成的,而del命令相当于程序主动地进行空间释放,归还给系统。Python的变量其实是引用。可以看出,变量的值并不是直接存储在变量里,而是以“值”对象的形式存储在另外一处。我们可以说变量指向那个“值”对象。Python变量可以通过赋值来修改变量的“值”,但并不是原地修改。例如在这小节开始的例子,x赋值为1.5之后可以看到,并不是1变成了1.5,而是另外开辟了一个空间,让x指向它。通过赋值把变量x从1变为1.5,这一变化过程更“真实”的物理内存示意图计算机内存访问的最小单位是字节,内存中每个字节都有一个索引值,也就是位置值。如果把每个字节看成一个房子的话,内存地址就像是房子的门牌号码。如果一个对象比较大,要占据多个字节,那么这个对象的内存地址就是第一个字节的地址,也称为“首地址”。因此,Python变量里存放的实际是“值”对象的位置信息(内存地址)。这种通过地址间接访问对象数据的方式,称为引用。使用id(.)函数我们可以确切的知道变量引用的内存地址。使用运算符is可以判断两个变量是否引用同一个对象。注意:下面的示例代码。你如果自己运行这段程序,看到的地址值可能有所不同。>>>x=1>>>id(x) #使用id()查看x引用哪里1559482096>>>x=2

>>>id(x) #再次查看,发现x引用的地址变了1559482128>>>y=2>>>id(y) #发现y和x引用同一处1559482128>>>x='Hello'>>>y='Hello'>>>xisy #利用运算符is可以判断两个变量是否引用同一个对象True可以发现,x和y都赋值为相同的小整数或者短字符串时,两个变量所引用的是同一个对象。这也被称为“驻留机制”。这是Python为提高效率所做的优化,节省了频繁创建和销毁对象的时间,也节省了存储空间。>>>x=10**1000>>>y=10**1000>>>xisyFalse>>>x='Goodmorning.'>>>y='Goodmorning.'>>>xisyFalse说明两个变量赋值为相同的大整数或者长字符串时,x和y引用的是两个不同的对象。可以利用变量之间的赋值,来让两个变量引用相同的对象。示例代码如下:>>>y=x>>>xisyTrue变量类型的转换有时是必要的。例如之前讲到,input(.)函数的结果总是字符串,而程序可能需要把字符串转换为数值类型。>>>x=input('请输入一个整数:')请输入一个整数:1>>>int(x)1>>>x'1'可见,变量的类型转换并不是对变量原地修改,而是产生一个新的预期类型的对象。Python提供了很多内置函数来完成类型转换。变量和数值的类型转换并没有不同。以下我们使用数值来举例说明各种转换函数的用法。1)float(.)函数可以将其它类型数据转换为浮点数。例如:>>>float(1)1.0>>>float('1.23')1.23>>>float('1.2e-3')0.0012>>>float('1.2e-5')1.2e-052)str(.)函数可以将其它类型数据转换为字符串。例如:>>>str(1)'1'>>>str(-1.0) #转换之后不会省略小数部分,因为-1和-1.0类型不同。'-1.0'>>>str(1.2e-3)'0.0012'>>>str(1.2e-5)'1.2e-05'>>>str(1.0e-5) #转换之后省略了'.0',因为1e-5和1.0e-5都是浮点类型。'1e-05'从最后两个例子可以看出,Python会尽可能转换成字符串长度较短的形式以节省空间。3)int(.)函数可以将其它类型数据转换为整型。例如:>>>int(3.14)3>>>int(3.5) #int(.)函数并不是四舍五入取整,而是扔掉所有小数部分。3>>>int(True) #布尔值True相当于整数11>>>int(False) #布尔值False相当于整数00>>>int('3')3>>>int('3.5') #有的字符串不能直接转换为整型Traceback(mostrecentcalllast):File"<pyshell#51>",line1,in<module>int('3.5')ValueError:invalidliteralforint()withbase10:'3.5'>>>int(float('3.5')) #应该两步转换34)round(.)函数可以将其它类型数据圆整为整型。例如:>>>round(1.4)1>>>round(1.5) #向上圆整2>>>round(2.5) #向下圆整为22Python总是“四舍”,但并不一定总是“五入”。因为总是向上圆整可能会带来计算偏差。所以,Python采用的是“银行家圆整”:将小数部分为.5的数字圆整到最接近的偶数。5)bool(.)函数可以将其它类型数据转换为布尔类型。例如:>>>bool(0) #0转换为FalseFalse>>>bool(-1) #所有非0值转换为TrueTrue>>>bool('a') #非空字符串转换为TrueTrue>>>bool('') #空字符串转换为FalseFalse6)chr(.)和ord(.)函数可以进行整数和字符之间的相互转换。chr(.)将一个整数转换为对应ASCII码的字符。ord(.)是chr(.)的逆运算,把字符转换成对应的ASCII码或Unicode值。例如:>>>chr(65)'A'>>>ord('a')973.2

Python的基本运算和表达式3.2.1运算符Python支持算术运算符、赋值运算符、关系运算符、逻辑运算符等基本运算符。按照运算所需要的操作数数目,可以分为单目、双目、三目运算符。单目运算符只需要一个操作数。例如:单目减-、逻辑非not。双目运算符需要两个操作数。Python大多数运算符都是双目运算符。三目运算符需要三个操作数。条件运算是三目的,例如:b

if

a

else

c。

运算符具有不同的优先级。我们熟知的“先乘除后加减”就是优先级的体现。只不过,Python运算符种类很多,优先级也分成了高低不同的很多层次。当一个表达式中有多个运算符时,按优先级级别从高到低依次运算。

运算符还具有不同的结合性:左结合或右结合。当一个表达式中有多个运算符,它们优先级都相同时,就根据结合性来判断运算的先后顺序。左结合就是自左至右依次计算。Python运算符大多是左结合的。右结合就是自右至左依次计算。所有的单目运算符和圆括号()是右结合的。我们都知道里层的圆括号更优先,实际是按照左圆括号的次序自右向左依次运算的。以上所说的通过优先级、结合性来决定运算次序,只是在没有圆括号的情况下才成立。使用圆括号可以改变运算符的运算次序。

3.2.2算术运算运算符描述实例+加法5+2返回7,5.5+2.0返回7.5-减法5-2返回3,5.5-2.0返回3.5*乘法5*2返回10,5.5*2.0返回11.0/浮点除法5/2返回2.5,5.5/2.0返回2.75//整除运算,返回商。5//2返回

2,5.5//2.0返回2.0%整除运算,返回余数。也叫“取模”。5%2返回1,5.5%2.0返回1.5**幂运算5**2返回25,5.5**2.0返回30.25算术运算符的优先级,按照从低到高排列(同一行优先级相同)+、-*、/、//、%单目+、单目-**>>>x=1>>>-x #-也可以作为单目运算符-1>>>5%32>>>-5%3 #余数的正负号和除数一致1>>>5%-3-1>>>-5%-3-2以上的例子都是在相同类型之间的运算。如果是不同类型的数据运算,会发生自动类型转换。转换规则是:按照有效数字精度从低向高转换。可以进行算术运算的各种数据类型,从低到高排列为:bool<int<float<complex。>>>True+12>>>True+1.52.5>>>True+1j(1+1j)>>>1+1.52.5Python还提供了很多数学运算类的内置函数

函数名描述实例abs绝对值abs(-5)返回5,abs(-5.0)返回5.0divmod取模,返回商和余数。divmod(5,2)返回(2,1)pow乘方pow(5,2)返回25,pow(5.0,2.0)返回25.0round四舍五入取整round(1.5)返回2,round(2.5)返回2sum可迭代对象求和sum([1,2,3,4])返回10max求最大值max(3,1,5,2,4)返回5min求最小值min(3,1,5,2,4)返回1math模块还提供了很多函数

函数名描述实例fabs绝对值,返回floatfabs(-5)返回5.0ceil大于等于x的最小整数ceil(2.2)返回3,ceil(-5.5)返回-5floor小于等于x的最大整数floor(2.2)返回2,floor(-5.5)返回-6trunc截取为最接近0的整数trunc(2.2)返回2,trunc(-5.5)返回-5factorial整数的阶乘factorial(5)返回120sqrt平方根sqrt(5)返回2.23606797749979exp以e为底的指数运算exp(2)返回7.38905609893065log对数log(math.e)返回1.0,log(8,2)返回3.0

如果频繁使用数学函数,觉得上面的写法麻烦,也可以按下面方式导入。>>>frommathimport*>>>pi*sqrt(5)7.024814731040727这样,就可以像内置函数那样来使用模块函数了。但是多个模块如果有同名函数,都按这种方式导入,会产生名字冲突的问题。3.2.3

赋值、关系和逻辑运算

赋值运算符用=表示,其左边只能是变量,而不能是常量、表达式。5=x或者5=2+3都是错误的。一般形式为:变量=表达式。注意,Python的赋值运算是没有返回值的。也就是说,赋值没有运算结果(result),只有效果——变量的值被改变了。这种效果也称之为“副作用”(sideeffect)。这和其它运算符很不一样,其它运算符大多有结果但没有效果。

赋值运算包括:基本赋值序列赋值多目标赋值复合赋值基本赋值>>>x=1>>>y=x>>>y1>>>x=1.5>>>x1.5>>>y1可见,Python中的y=x不是数学中的方程等式,不代表y恒等于x。赋值只不过是一个瞬间动作。在完成赋值的那个时刻y和x是相等的,但不一定一直保持相等。序列赋值>>>x,y=1,1.5>>>print(x,y)11.5序列赋值可以把多个变量分别赋成不同的值。实际上是利用元组和序列解包(sequenceunpacking)实现的。多目标赋值>>>a=b=1>>>print(a,b)11>>>b=2>>>print(a,b)12多目标赋值可以把多个变量赋成相同的值。如果是赋成数值或者字符串这种不可变类型,没有问题。但如果是赋成可变类型,可能会出现问题。>>>a=b=[1] #都赋成列表,列表是可变的。>>>print(a,b)[1][1]>>>b.append(2) #原地修改b,追加一个元素。>>>print(a,b) #a也被修改了[1,2][1,2]这段程序可以等大家学习了列表内容后,再回来这里思考为什么。复合赋值各种复合赋值运算符的作用下表所示。运算符描述实例+=加法赋值运算符a+=b等价于a=a+b-=减法赋值运算符a-=b等价于a=a-b*=乘法赋值运算符a*=b等价于a=a*b/=浮点除法赋值运算符a/=b等价于a=a/b//=整除赋值运算符a//=b等价于a=a//b%=取模赋值运算符a%=b等价于a=a%b**=幂赋值运算符a**=b等价于a=a**b所有复合赋值运算符的优先级和赋值运算符一样。关系测试运算符也称为比较运算符,可以对两个数值型或字符串型数据进行大小比较,返回一个“真”或“假”的bool值。各种关系测试运算符的作用如下表所示。一定要注意比较相等是用双等号==,而不是=,这是初学者常犯的错误。

运算符描述实例>

大于5>2返回True,'5'>'12'返回True>=大于或等于'a'>='A'返回True,'ab'>='a'返回True<

小于5<2返回False,'5'<'12'返回False<=小于或等于'a'<='A'返回False,'ab'<='a'返回False==等于5==2返回False,'5'==5返回False!=不等于5!=2返回True,'5'!=5返回Trueis等同于5==2返回False,'5'==5返回Falseisnot不等同于5!=2返回True,'5'!=5返回Truein成员5in[1,3,5]返回Truenotin非成员2notin[1,3,5]返回True在进行比较过程中,遵循以下规则:两个操作数是数值型,则按大小进行比较。两个操作数是字符串型,则按“字典顺序”进行比较,即:首先取两个字符串的第1个字符进行比较,较大的字符所在字符串更大,如果相同,再取两个字符串的第2个字符进行比较,依次类推。结局有三种情况:一是某一次比较分出胜负,较大的字符所在字符串更大;二是始终不分胜负,两个字符串同时取完所有字符,那么这两个字符串相等;三是在分出胜负前,一个字符串已经取完所有字符,那么这个较短的字符串较小。第三种情况也可以认为是空字符和其它字符比较,空字符总是最小。也可以这样理解:整数之间比较先进行右对齐,即个位和个位对齐;字符串之间比较先进行左对齐;浮点数之间比较则是对应定点小数的小数点对齐。常用字符的大小关系为:空字符<空格<'0'~'9'<'A'~'Z'<'a'~'z'<汉字。浮点数比较是否相等时要注意:因为有精度误差,可能产生本应相等但比较结果却不相等的情况。例如:>>>a=0.1+0.1+0.1>>>a==0.3False>>>a0.30000000000000004可以用两个浮点数的差距小于一个极小值来判定“应该相等”,这个“极小值”可以根据需要自行指定。例如:>>>epsilon=1e-6>>>abs(a-0.3)<epsilonTrue复数不能比较大小,只能比较是否相等。Python允许x<y<z这样的链式比较,相当于x<yandy<z。也允许x<y>z的写法,相当于x<yandy>z。所有关系测试运算符的优先级相同。

Python允许x<y<z这样的链式比较,相当于x<yandy<z。也允许x<y>z的写法,相当于x<yandy>z。所有关系测试运算符的优先级相同。

逻辑运算符的用法如下表所示。运算符描述例子and逻辑与运算符。只有两个操作数都为真,结果才为真。TrueandTrue返回True.or逻辑或运算符。只要有一个操作数为真,结果就为真。FalseorFalse返回Falsenot逻辑非运算符。单目运算,反转操作数的逻辑状态。notTrue返回False逻辑运算符的优先级,按照从低到高排列是:or<and<notor是个短路运算符,如果左操作数为True,则

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论