express ns cannot contain statements or ar lambda用法将在2.2.7节和5.1.9节详细叙述。 3、而定义标识符 Phon许多预定义的内置类、异常、函数等,如0at、impt、s、dict等,用户应莲免使 用它们来为变量、函数、类、对象等命名。通过dir(_builtins_)可以查看所有的内置变量和内 置函数。 >dir_builtins_)#查询内置变量和内置函数名 class,'contains delattr delitem'dir'doc cq,format,ge' gt__hash_ini,init subclas iter le len ht ne str'subclasshook 'clear','copy,'fromkeys','gct','items','keys','pop','popitem','setdefault','update' values 2.1.4运算符与表达式 同其他语言一样,ho也定义了算术运算符、关系运算符、逻辑运算符和位运算符 并且运算符的优先级与大多数语言一致。但是,Py山o还定义了一些特定运算符,如成员 测试运算符、集合运算符、同一性测试运算符等。Pyho运算符分类如下: (1)算术运算符:+、-、·、人从、%、* (2)关系运算符:<、=、>、=、=、= (3)逻辑运算符: and、or、not (4)成员测试运算符:im、not in (5)同一性测试运算符:is、is not (6)位运算符:卜人、&、<、>、一 (7)集合运算符:&、卜A (8)矩阵运算符:@ (9)赋运算符: 十=、=、 =、仁、%、*= 其具体含义如表2-1所示。 表2-1 Python运算符功能 运算符分类 运算符表达式 功能说明 加法,或列表、元组、字符串合并 a-b 减法,或集合差集 乘法,或序列重复、字符串重复 算术运算符 除法 两数商向上取整 a%b 取余数,或字符串格式化 ab 求ah b、a-b 判断两数是否相等 关系运算符 a<、a= 比较两数大小,或比较集合包含关 a>b.a>=b a and b 取逻辑与 逻辑运算符 a or b 取逻辑或 not a 取逻辑
expressions cannot contain statements or annotations. lambda 用法将在 2.2.7 节和 5.1.9 节详细叙述。 3、预定义标识符 Python 许多预定义的内置类、异常、函数等,如 float、input、list、dict 等,用户应避免使 用它们来为变量、函数、类、对象等命名。通过 dir(__builtins__)可以查看所有的内置变量和内 置函数。 >>> dir(__builtins__) #查询内置变量和内置函数名 '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values' 2.1.4 运算符与表达式 同其他语言一样,Python 也定义了算术运算符、关系运算符、逻辑运算符和位运算符, 并且运算符的优先级与大多数语言一致。但是,Python 还定义了一些特定运算符,如成员 测试运算符、集合运算符、同一性测试运算符等。Python 运算符分类如下: (1)算术运算符:+、–、*、/、//、%、** (2)关系运算符:<、<=、>、>=、==、!= (3)逻辑运算符:and、or、not (4)成员测试运算符:in、not in (5)同一性测试运算符:is、 is not (6)位运算符:|、^、&、<<、>>、~ (7)集合运算符:&、|、^ (8)矩阵运算符:@ (9)赋值运算符:=、+=、-=、*=、/=、%=、**= 其具体含义如表 2-1 所示。 表 2-1 Python 运算符功能 运算符分类 运算符表达式 功能说明 算术运算符 a+b 加法,或列表、元组、字符串合并 a-b 减法,或集合差集 a*b 乘法,或序列重复、字符串重复 a/b 除法 a//b 两数商向上取整 a%b 取余数,或字符串格式化 a**b 求 b a 关系运算符 a==b、a!=b 判断两数是否相等 a<b、a<=b a>b、a>=b 比较两数大小,或比较集合包含关系 逻辑运算符 a and b 取逻辑与 a or b 取逻辑或 not a 取逻辑非
成员测试运算符ainb、a not in b 测试成员a是香在成员b中 同一性测试运算符aisb、a is notb 测试两个对象实体是否相等(内存地址一致) 按位取或 按位取异政 位运算符 按位取与 左移位 右移位 按位取非 取集合交集 集合运算符 取集合并集 取集合对称差集 矩阵运算符 矩阵相乘 赋值运算 自加运算 自减运算 赋值运算符 自乘运算 自除运算 自取余运算 自求幂远 提示:(1)与共他语言不同,除法运算符“”、求余运算符“%”可对实数进行操作。如 >>>3.1415926W2.0 #被除数为实数 15707063 223.1415926%2.0#实数求余 和除法运算符“”可用于复数相乘、相除 (3)“”与“W”的关系是:abbb+%b,即“”是两个数相除的商并向上取整数部分。如: 2222017.0W5 403.4 22>2017.015 #相除取整 4030 >>>-7.0/3 -2.3333333333333335 2>>-7.0/13 #相除取整 .30 4)Pyho很多运算符作用于不同类型操作数时表现出不同的含义,灵活使用。例如 >>34 #两数相加 >>>"Chinese"+*Taiwan" #连接两个字符串 Chinese Taiwan' [12.34.5#合并两个列表 1,234,56 >>(1,23(45,6)#合并两个元组 1,2,3.4,56)
成员测试运算符 a in b、a not in b 测试成员 a 是否在成员 b 中 同一性测试运算符 a is b、a is not b 测试两个对象实体是否相等(内存地址一致) 位运算符 | 按位取或 ^ 按位取异或 & 按位取与 << 左移位 >> 右移位 ~ 按位取非 集合运算符 & 取集合交集 | 取集合并集 ^ 取集合对称差集 矩阵运算符 @ 矩阵相乘 赋值运算符 = 赋值运算 += 自加运算 -= 自减运算 *= 自乘运算 /= 自除运算 %= 自取余运算 **= 自求幂运算 提示:(1)与其他语言不同,除法运算符“/”、 求余运算符“%”可对实数进行操作。如: >>> 3.1415926/2.0 #被除数为实数 1.5707963 >>> 3.1415926%2.0 #实数求余 1.1415926 (2)乘法运算符“*”和除法运算符“/”可用于复数相乘、相除。 (3)“/”与“//”的关系是:a/b=a//b*b+a%b,即“//”是两个数相除的商并向上取整数部分。如: >>> 2017.0/5 403.4 >>> 2017.0//5 #相除取整 403.0 >>> -7.0/3 -2.3333333333333335 >>> -7.0//3 #相除取整 -3.0 (4)Python 很多运算符作用于不同类型操作数时表现出不同的含义,灵活使用。例如: >>> 3+4 #两数相加 7 >>> "Chinese "+"Taiwan" #连接两个字符串 'Chinese Taiwan' >>> [1,2,3]+[4,5,6] #合并两个列表 [1, 2, 3, 4, 5, 6] >>> (1,2,3)+(4,5,6) #合并两个元组 (1, 2, 3, 4, 5, 6)
≥>x1,2,3,4,5Dc2,34,56#合并两个集合 {1,2.3.45.6} 关于列表、元组、集合、字符串数据类型将在本章余下章节叙述。 2.1.5数据对象分类 除了在第2.1.1和2.12节中介绍的整数(int)、浮点数(loat)、复数(complex)、字 符(sr)、逻辑(bo0l)等基础类型外,还有由这些基本类型构造成的典型复合型的字符串、 列表、元组、集合、字典、rnge签新据对象。 P山0语言视字符与字符串为同一对象,都是型。可由汉字、数字、大小写字母以及 其它printabe字符组成。如"China Intemational Import Expo,CIIE,Shanghai,.2018.1l.05- 1018.11.10°、20191@#s%^&、"%”。如: str1="China International Import Expo,2018.11.05-1018.11.10 <class'strz >st2-China ntemational mpor Expo,.2018.11.0s-1018.1l.10#单引号 >>>ype(st2)#期显示类型 <class'str'> 糊字符中类型 列表型对象(st)由中括号“0”组成,内部元素由逗号“,”隔开,如: >>>1st=1.3.5.7.91 #显示类型 class 'list> 列表类型 元组型对象(tuple)由中括号“T”组成,内部元素由逗号“,”隔开,如: >>>tp1.'a2,b'3,'c >>>type(tpl) 制显示类型 #元组类型 集合型对象(st)由关键字st和“(J)”构成或者由“”构成,元素之间由 逗号“”隔升,如: >=ct1,35,@,#])#使用sctD构造集合 >type(s) #显示类型 <class'set'> >>=1,35@,#糊使用构造集合 <<<type(s) cclass'set> >2>=sct13,5.@,常,1.35 2228 ,35@ 群重复元素只取其 字典型对象(dict)由{ …组成,元素之间由由逗号“,”隔开,每个元素由“关键 字:值(key:value)”组成。如: d=1:'Beijing2."Shanghai"3:"GuangZhou",4:'Shenzhen' >>yDe(d#最示类型 <cass'dict>字典类型 >d2#元素引用
>>> set([1,2,3,4,5])|set([2,3,4,5,6]) #合并两个集合 {1, 2, 3, 4, 5, 6} 关于列表、元组、集合、字符串数据类型将在本章余下章节叙述。 2.1.5 数据对象分类 除了在第 2.1.1 和 2.1.2 节中介绍的整数(int)、浮点数(float)、复数(complex)、字 符(str)、逻辑(bool)等基础类型外,还有由这些基本类型构造成的典型复合型的字符串、 列表、元组、集合、字典、range 等数据对象。 Python 语言视字符与字符串为同一对象,都是 str 型。可由汉字、数字、大小写字母以及 其 它 printalbe 字 符 组 成 。 如 "China International Import Expo,CIIE,Shanghai, 2018.11.05- 1018.11.10"、'2019!@#$%^&*'、"%"。如: >>> str1="China International Import Expo, 2018.11.05-1018.11.10" ##双引号 >>> type(str1) <class 'str'> >>> str2='China International Import Expo, 2018.11.05-1018.11.10' ##单引号 >>> type(str2) ##显示类型 <class 'str'> ##字符串类型 列表型对象(list)由中括号“[]”组成,内部元素由逗号“,”隔开,如: >>> lst=[1,3,5,7,9] >>> type(lst) ##显示类型 <class 'list'> ##列表类型 元组型对象(tuple)由中括号“[]”组成,内部元素由逗号“,”隔开,如: >>> tpl=(1,'a',2,'b',3,'c') >>> type(tpl) ##显示类型 <class 'tuple'> ##元组类型 集合型对象(set)由关键字 set 和“([……])”构成或者由“{}”构成,元素之间由 逗号“,”隔开,如: >>> s=set([1,3,5,'@','#']) ##使用 set([])构造集合 >>> type(s) ##显示类型 <class 'set'> ##集合类型 >>>s={1,3,5,'@','#'} ##使用{}构造集合 <<<type(s) <class 'set'> >>> s=set([1,3,5,'@','#',1,3,5]) >>> s {'#', 1, 3, 5, '@'} ##重复元素只取其一 字典型对象(dict)由{……}组成,元素之间由由逗号“,”隔开,每个元素由“关键 字:值(key:value)”组成。如: >>> d={1:'Beijing',2:"Shanghai",3:"GuangZhou",4:'Shenzhen'} >>> type(d) ##显示类型 <class 'dict'> ##字典类型 >>> d[2] ##元素引用
'Shanghai range型对象由关键字range(start,.end)构成,其中start是起始数,cnd表明结尾数为 end-l。如: =range((1,l0)#定义range类型对象 range(1,10) >》ye0精显示类型 <class'range'> >>0#第1个元素引用 >>91#第10个元素引用,超出范围,异常 IndexError:range object index out of range 2>8】第9个元素引用 >1,10:#逐个引用所有元素 print(i.end=) 12.3.4.5.6.7.8.9. 上述对象详细描述在余下章节陆续展开。 2.1.6字符串 在Pyho加中,字符串和数值是最为常见的数据类型,如姓名、学号、电话号码、身份证 号码、家庭住址等都是典型的字符串。一般使用单引号、双引号或三单引号、三双引号进行界 定,且单引号、双引号、三引号还可以互相嵌套,用来表示复杂字符串。如 stic、"tici"、"sticm、"Ilove STIEL"Xiaoiia said" 注意,当字符串使用双引号界定时,单引号可以出现在字符串中,但双引号不可以。如 >》wOCh="台湾是中国的一个省 >>print(twOfCh) 台湾是中国的一个省 2>wOCh==钩鱼岛"自古是中因领土 同样,由单引号定义的字符串可以包含双引号,但不能直接使用单引号。空字符串表示 为"、"、",即一对不包含任何内容的任意字符串界定符。 特别地,三单引号或三双引号表示的字符串支持换行,支持排版格式较为复杂的字符 串,也可以在程序中表示较长的注释。 字符串支持使用“+”运算符进行合并以生成新字符串。 中国堆安 中国推安 可以对字符串进行格式化,把其他类型对象按格式要求转换为字符串,并返回结果字 符串,例如 >>alnt=3.14159 粗为数值
'Shanghai' range 型对象由关键字 range(start, end)构成,其中 start 是起始数,end 表明结尾数为 end-1。如: >>> r=range(1,10) ##定义 range 类型对象 r >>> r range(1, 10) >>> type(r) ##显示类型 <class 'range'> >>> r[0] ##第 1 个元素引用 1 >>> r[9] ##第 10 个元素引用,超出范围,异常 IndexError: range object index out of range >>> r[8] ##第 9 个元素引用 9 >> for i in range(1,10): ##逐个引用所有元素 ... print(i,end=',') ... 1,2,3,4,5,6,7,8,9, 上述对象详细描述在余下章节陆续展开。 2.1.6 字符串 在 Python 中,字符串和数值是最为常见的数据类型,如姓名、学号、电话号码、身份证 号码、家庭住址等都是典型的字符串。一般使用单引号、双引号或三单引号、三双引号进行界 定,且单引号、双引号、三引号还可以互相嵌套,用来表示复杂字符串。如 'stiei'、'''stiei ''、'''stiei'''、'''"I love STIEI." Xiaojia said''' 注意,当字符串使用双引号界定时,单引号可以出现在字符串中,但双引号不可以。如 >>> twOfCh="'台湾'是中国的一个省" >>> print(twOfCh) '台湾'是中国的一个省 >>> twOfCh=""钩鱼岛"自古是中国领土" SyntaxError: invalid syntax 同样,由单引号定义的字符串可以包含双引号,但不能直接使用单引号。空字符串表示 为''、'''、'''''',即一对不包含任何内容的任意字符串界定符。 特别地,三单引号或三双引号表示的字符串支持换行,支持排版格式较为复杂的字符 串,也可以在程序中表示较长的注释。 字符串支持使用“+”运算符进行合并以生成新字符串。 >>>xaOfCha='中国'+"雄安" >>> xaOfCh '中国雄安' 可以对字符串进行格式化,把其他类型对象按格式要求转换为字符串,并返回结果字 符串,例如 >>> aInt=3.14159 #a 为数值
>>bStr='%8.2f%alnt b为字符串,宽度为8。小数点后2位 hStr 314 >%d%c%97,97)#按格式要求显示 97:a Python支持转义字符,常用的转义字符如表2-2所示。 表2-2转义字符 转义字符 含义 转义字符 含义 换行符 双引号 到表荷 个1 回车 \ddd 3位八进制数对应的字符 单引号 xhh 2位十六进制数对应的字符 提示:(1) 字符串索引是从“0"开始的,例如”X0g'an”第一字母“X"的索引值是0,第二个字号 “”的东引值为1,依此关推。也可以从字符串最后一个字母“”开始记数,其索引值是-1,倒数第二个字 母“a索引值是-2,…例如: >>>xa="Xiong'an" #第一个字符 >>xa[-1] #第后一个字符 (2) 字符串界定符前面加字母r或R表示原始字符串,其中的特殊字符不进行转义,但字符串 的最后一个字符不能是符号。原始字符串主要用于正则表达式,也可以用来简化文件路径或的输入, 倒如 路径“d-\Python37 scripts"和r':Python37'-样。 r'htps小x.qq.com/代表网址htps:Xqq,coml 详细内容请参考第4章。 (3) 字符串是不可变序列,就是说,字符串中任何字符都是不可改变的。例如: >xa="Xiong'an" >>xa0]x 试图把第一字母大写的“X”改为小写字母“x Traceback (most recent call last): File "<input>"line 1.in <module> TypeError:'str'object does not support item assignment 有关字符串更名内容将在41节展开。 提示:请同学们思考 (1)字符串第一字符的索写引值为0,为什么最后一个字符的索引值为1? (2)xa1:I02,a10,Xa10(注意:10超出a的索引值范图)。 2.2列表 列表(ist)是Python对象的 一个可变的有序序列。其中列表中元素可以是任何类型, 不要求类型必须是一致,而且元素的值是可以改变的。列表的创建可以使用中括号“和 ““将所有元素括起来,并且每个元素之间用逗号分隔。例如: >>>prime0 Mersenne=3.7.31.127.819l.524287刀#梅森素数
>>> bStr=’%8.2f’% aInt #b 为字符串,宽度为 8,小数点后 2 位 >>> bStr ' 3.14' >>> "%d:%c"%(97,97) #按格式要求显示 '97:a' Python 支持转义字符,常用的转义字符如表 2-2 所示。 表 2-2 转义字符 转义字符 含 义 转义字符 含 义 \n 换行符 \’’ 双引号 \t 制表符 \\ 一个\ \r 回车 \ddd 3 位八进制数对应的字符 \’ 单引号 \xhh 2 位十六进制数对应的字符 提示:(1) 字符串索引是从“0”开始的,例如”Xiong’an”第一字母“X”的索引值是 0,第二个字母 “i”的索引值为 1,依此类推。也可以从字符串最后一个字母“n”开始记数,其索引值是-1,倒数第二个字 母“a”索引值是-2,……例如: >>> xa="Xiong'an" >>> xa[0] #第一个字符 'X' >>> xa[-1] #第后一个字符 'n' (2) 字符串界定符前面加字母 r 或 R 表示原始字符串,其中的特殊字符不进行转义,但字符串 的最后一个字符不能是\符号。原始字符串主要用于正则表达式,也可以用来简化文件路径或 url 的输入, 例如: 路径“d:\\Python37\\scripts”和 r’d:\Python37\scripts’一样。 r’https://wx.qq.com/’代表网址 https://wx.qq.com/ 详细内容请参考第 4 章。 (3) 字符串是不可变序列,就是说,字符串中任何字符都是不可改变的。例如: >>> xa="Xiong'an" >>> xa[0]='x' #试图把第一字母大写的“X”改为小写字母“x” Traceback (most recent call last): File "<input>", line 1, in <module> TypeError: 'str' object does not support item assignment 有关字符串更多内容将在 4.1 节展开。 提示:请同学们思考:(1)字符串第一字符的索引值为 0,为什么最后一个字符的索引值为-1? (2)xa[1:10]=?,xa[10:]=?,xa[10]=?(注意:10 超出 xa 的索引值范围)。 2.2 列表 列表(list)是 Python 对象的一个可变的有序序列。其中列表中元素可以是任何类型, 不要求类型必须是一致,而且元素的值是可以改变的。列表的创建可以使用中括号“[”和 “]”将所有元素括起来,并且每个元素之间用逗号分隔。例如: >>>primeOfMersenne=[3,7,31,127,8191,524287] #梅森素数