PythonPython程序设计教程程序设计教程程序设计教程程序设计教程授课教师:授课教师:职务:职务:第第2章章 Python语言基础语言基础课程描述课程描述课程描述课程描述本章将介绍本章将介绍PythonPython语言的语言的基本语法和编码规范,并基本语法和编码规范,并重点讲解重点讲解PythonPython语言的数语言的数据类型、运算符、常量、据类型、运算符、常量、变量、表达式和常用语句变量、表达式和常用语句等基础知识,为使用等基础知识,为使用PythonPython开发应用程序奠定开发应用程序奠定基础本章知识点本章知识点2.1 2.1 常量和变量常量和变量2.2 2.2 运算符和表达式运算符和表达式2.3 2.3 常用语句常用语句2.4 2.4 序列数据结构序列数据结构2.1 常量和变量常量和变量2.1.1 2.1.1 常量常量2.1.2 2.1.2 变量变量2.1.1 常量常量p变量是内存中命名的存储位置,与常量不同的是变量的变量是内存中命名的存储位置,与常量不同的是变量的值可以动态变化值可以动态变化Python的标识符命名规则如下:的标识符命名规则如下:p标识符名字的第标识符名字的第1个字符必须是字母或下划线(个字符必须是字母或下划线(_););p标识符名字的第标识符名字的第1个字符后面可以由字母、下划线个字符后面可以由字母、下划线((_)或数字()或数字(0~9)组成;)组成;p标识符名字是区分大小写的。
也就是说标识符名字是区分大小写的也就是说Score和和score是不同的是不同的【【例例2-1】】 p在下面的代码中,定义了一个字在下面的代码中,定义了一个字符串变量符串变量a、数值变量、数值变量b和布尔类和布尔类型变量型变量ca = "这是一个常量这是一个常量";b = 2;c = True【【例例2-2】】p变量值传递的例子变量值传递的例子a = "a = "这是一个变量这是一个变量";";b = a;b = a;print(b);#print(b);#此时变量此时变量b b的值应等于变量的值应等于变量a a的值的值print ("\n");print ("\n");a = "a = "这是另一个变量这是另一个变量";"; print(b); # print(b); #对变量对变量$a$a的操作将不会影响到变量的操作将不会影响到变量b bp运行结果如下:运行结果如下:这是一个变量这是一个变量这是一个变量这是一个变量变量赋值过程的示意图变量赋值过程的示意图id()函数函数可以使用可以使用id()id()函数输出变量的地址,语法如下:函数输出变量的地址,语法如下:id(id(变量名变量名) )【【例例2-32-3】】 用用id()id()函数输出变量地址的示例程序:函数输出变量地址的示例程序:str1 = "str1 = "这是一个变量这是一个变量";";print("print("变量变量str1str1的值是:的值是:"+str1); "+str1); print("print("变量变量str1str1的地址是:的地址是:%d" %(id(str1))); %d" %(id(str1))); str2 = str1;str2 = str1;print("print("变量变量str2str2的值是:的值是:"+str2); "+str2); print("print("变量变量str2str2的地址是:的地址是:%d" %(id(str2))); %d" %(id(str2))); str1 = "str1 = "这是另一个变量这是另一个变量";";print("print("变量变量str1str1的值是:的值是:"+str1); "+str1); print("print("变量变量str1str1的地址是:的地址是:%d" %(id(str1))); %d" %(id(str1))); print("print("变量变量str2str2的值是:的值是:"+str2); "+str2); print("print("变量变量str2str2的地址是:的地址是:%d" %d" %(id(str2)));%(id(str2)));2.1.3 类型转换类型转换p1 1.转换为数字.转换为数字1.转换为数字.转换为数字p((1 1)使用)使用int()int()函数将字符串转换为整数,语法如下:函数将字符串转换为整数,语法如下:pint(x [,base ]) int(x [,base ]) p参数参数x x是待转换的字符串,参数是待转换的字符串,参数basebase为可选参数,指定转换后整数的进制,为可选参数,指定转换后整数的进制,默认为默认为1010进制。
进制p((2 2)使用)使用long()long()函数将字符串转换为长整数,语法如下:函数将字符串转换为长整数,语法如下:plong(x [,base ]) long(x [,base ]) p参数的含义与参数的含义与int()int()函数相同函数相同p((3 3)使用)使用float()float()函数将字符串或数字转换为浮点数,语法如下:函数将字符串或数字转换为浮点数,语法如下:pfloat (x) float (x) p参数参数x x是待转换的字符串或数字是待转换的字符串或数字p((4 4)使用)使用eval ()eval ()函数计算字符串中的有效函数计算字符串中的有效PythonPython表达式,并返回结果,表达式,并返回结果,语法如下:语法如下:peval(str) eval(str) p参数参数strstr是待计算的是待计算的PythonPython表达式字符串表达式字符串【【例例2-4】】pa = "1";a = "1";pb = int(a)+1;b = int(a)+1;pprint(b);print(b);【【例例2-5】】pa = "1+2";a = "1+2";pprint(eval(a));print(eval(a));p运行结果为运行结果为3 3。
2.转换为字符串.转换为字符串((1 1)使用)使用str ()str ()函数将数值转换为字符串,函数将数值转换为字符串,语法如下:语法如下:str(x)参数参数x x是待转换的数值是待转换的数值2 2)使用)使用repr ()repr ()函数将对象转换为可打函数将对象转换为可打印字符串,语法如下:印字符串,语法如下:repr(obj)参数参数objobj是待转换的对象是待转换的对象1.2.2 执行执行Python脚本文件脚本文件p((3 3)使用)使用chr ()chr ()函数将一个整数转换为函数将一个整数转换为可对应可对应ASCIIASCII的字符,语法如下:的字符,语法如下:chr(chr(整数整数) ) p((4 4)使用)使用ord()ord()函数将一个字符转换为对函数将一个字符转换为对应的应的ASCIIASCII,语法如下:,语法如下:ord(ord(字符字符) ) 【【例例2-6】】print(chr(65));print(chr(65));print(ord('A'));print(ord('A'));运行结果为运行结果为A A6565p((5 5)使用)使用hex()hex()函数将一个整数转换为一函数将一个整数转换为一个十六进制字符串,语法如下:个十六进制字符串,语法如下:chr(chr(整数整数) ) p((6 6)使用)使用oct()oct()函数将一个整数转换为一函数将一个整数转换为一个八进制字符串,语法如下:个八进制字符串,语法如下:oct(oct(字符字符) ) 【【例例2-7】】p使用使用hex()hex()函数和函数和oct()oct()函数打印函数打印8 8的十六的十六进制字符串和八进制字符串。
进制字符串和八进制字符串print(hex(8));print(hex(8));print(oct(8));print(oct(8));p输出的结果如下:输出的结果如下:0x80x80o100o10p十六进制字符串以十六进制字符串以0x0x开头,八进制字符串开头,八进制字符串以以0o0o开头2.2 运算符和表达式运算符和表达式p运算符是程序设计语言的最基本元素,它运算符是程序设计语言的最基本元素,它是构成表达式的基础本节将介绍是构成表达式的基础本节将介绍PythonPython语言运算符和表达式语言运算符和表达式2.2.1 运算符运算符PythonPython支持算术运算符、赋值运算符、支持算术运算符、赋值运算符、位运算符、比较运算符、逻辑运算符、位运算符、比较运算符、逻辑运算符、字符串运算符、成员运算符和身份运字符串运算符、成员运算符和身份运算符等基本运算符算符等基本运算符1.算术运算符.算术运算符位运算符具体描述例 子+相加运算1+2的结果是3-相减运算100-1的结果是99*乘法运算2*2的结果是4/除法运算4/2的结果是2%求模运算10 % 3的结果是1**幂运算x**y返回x的y次幂2**3的结果是8//整除运算,即返回商的整数部分9//2的结果 4 2.赋值运算符.赋值运算符位运算符具体描述例 子=直接赋值x =3;将3赋值到变量x中+=加法赋值x +=3;等同于x = x+3;-=减法赋值x -=3;等同于x = x-3;*=乘法赋值x *=3;等同于x = x*3;/=除法赋值x /=3;等同于x = x/3;%=取模赋值x =3;等同于x = x%3;**=幂赋值x **=3;等同于x = x**3;//=整除赋值x //=3;等同于x = x//3;【【例例2-8】】x =3x =3x += 3x += 3print(x)print(x)x -= 3x -= 3print(x)print(x)x *= 3x *= 3print(x)print(x)x /= 3x /= 3print(x)print(x)p运行结果如下:运行结果如下:6 63 39 93.03.03.位运算符.位运算符位运算符具体描述&按位与运算, 运算符查看两个表达式的二进制表示法的值,并执行按位“与”操作。
只要两个表达式的某位都为 1,则结果的该位为 1;否则,结果的该位为 0|按位或运算, 运算符查看两个表达式的二进制表示法的值,并执行按位“或”操作只要两个表达式的某位有一个为 1,则结果的该位为 1;否则,结果的该位为 0^按位异或运算异或的运算法则为:0异或0=0,1异或0=1,0异或1=1,1异或1=0~按位非运算0取非运算的结果为1;1取非运算的结果为0<< 位左移运算,即所有位向左移>> 位右移运算,即所有位向右移4.比较运算符.比较运算符比较运算符具体描述==等于运算符(两个=)例如a==b,如果a等于b,则返回True;否则返回False!=不等运算符例如a!=b,如果a不等于b,则返回True;否则返回False<> 不等运算符,与!=相同< 小于运算符> 大于运算符<=小于等于运算符>=大于等于运算符5.逻辑运算符.逻辑运算符逻辑运算符具体描述and逻辑与运算符例如a and b,当a和b都为True时等于True;否则等于Falseor逻辑或运算符例如a or b,当a和b至少有一个为True时等于True;否则等于Falsenot逻辑非运算符例如not a,当a等于True时,表达式等于False;否则等于True【【例例2-9】】x=Truey=Falseprint("xandy=",xandy)print("xory=",xory)print("notx=",notx)print("noty=",noty)运行结果如下:xandy=Falsexory=Truenotx=Falsenoty=True6.字符串运算符.字符串运算符逻辑运算符具体描述+字符串连接*重复输出字符串[]获取字符串中指定索引位置的字符,索引从0开始[ start, end]截取字符串中的一部分,从索引位置start开始到 end结束in成员运算符,如果字符串中包含给定的字符则返回 Truenot in成员运算符,如果字符串中包含给定的字符返回 Truer或者R指定原始字符串。
原始字符串是指所有的字符串都是直接按照字面的意思来使用,没有转义字符、特殊字符或不能打印的字符 原始字符串字符串的第一个引号前加上字母"r"或"R"【【例例2-10】】b = "hello ";b = "hello ";a = b + "world!";a = b + "world!";print(a);print(a);print (a*2);print (a*2);print (r"hello\nworld!");print (r"hello\nworld!");运行结果如下:运行结果如下:hello world!hello world!hello world!hello world!hello world!hello world!hello\nworld!hello\nworld!7.运算符优先级.运算符优先级运算符具体描述**指数运算的优先级最高~ + -逻辑非运算符和正数/负数运算符注意,这里的+和-不是加减运算符* / % //乘、除、取模和取整除+ -加和减>> <<位右移运算和位左移运算&按位与运算^ |按位异或运算和按位或运算> == !=大于、等于和不等于%= /= //= -= += *= **=赋值运算符isis not身份运算符in not in成员运算符not or and逻辑运算符2.2.2 表达式表达式a = b + c;a = b + c;a = b - c;a = b - c;a = b * c;a = b * c;a = b / c;a = b / c;a = b % c;a = b % c;a += 1;a += 1;b = a**2;b = a**2;2.3 常用语句常用语句p2.3.1 2.3.1 赋值语句赋值语句p2.3.2 2.3.2 条件分支语句条件分支语句p3.3.3 3.3.3 循环语句循环语句p2.3.4 try-except2.3.4 try-except语句语句2.3.1 赋值语句赋值语句赋值语句是赋值语句是PythonPython语言中最简单、最常用语言中最简单、最常用的语句。
通过赋值语句可以定义变量并为的语句通过赋值语句可以定义变量并为其赋初始值在其赋初始值在2.2.12.2.1小节介绍赋值运算符小节介绍赋值运算符时,已经涉及到了赋值语句,例如:时,已经涉及到了赋值语句,例如:a = 2;a = 2;b = a + 5;b = a + 5;【【例例2-11】】a = 10;a = 10;a += 1;a += 1;print (a);print (a);a*= 10;a*= 10;print (a);print (a);a**= 2;a**= 2;print (a);print (a);p运行结果如下:运行结果如下:111111011012100121002.3.2 条件分支语句条件分支语句p1 1..ifif语句语句1..if语句语句pif if 条件表达式条件表达式: :p 语句块语句块【【例例2-12】】 if语句的例子语句的例子ifa>10:print("变量a大于10");如果语句块中包含多条语句,则这些语句必须拥有相同的缩进例如:ifa>10:print("变量a大于10");a=10;【【例例2-13】】 嵌套嵌套if语句的例子语句的例子ifa>10:print("变量a大于10");ifa>100:print("变量\$a大于100");}2..else语句语句ifif条件表达式条件表达式: :语句块语句块1 1else:else:语句块语句块2 23..elif语句语句if if 条件表达式条件表达式1 1 语句块语句块1 1elif elif 条件表达式条件表达式2 2 语句块语句块2 2elif elif 条件表达式条件表达式3 3 语句块语句块3 3…………else else 语句块语句块n n 【【例例2-15】】importdatetimestr="今天是";d=datetime.datetime.now()print(d.weekday())ifd.weekday()==0:str+="星期一";elifd.weekday()==1:str+="星期二";elifd.weekday()==2:str+="星期三";elifd.weekday()==3:str+="星期四";elifd.weekday()==4:str+="星期五";elifd.weekday()==5:str+="星期六";else:str+="星期日";print(str)weekday()方法的返回值方法的返回值返回值具体描述0星期一1星期二2星期三3星期四4星期五5星期六6星期日3.3.3 循环语句循环语句1 1..whilewhile语句语句1..while语句语句while while 条件表达式条件表达式: : 循环语句体循环语句体3.3.3 循环语句循环语句p1 1..whilewhile语句语句p2 2..forfor语句语句p3 3..continuecontinue语句语句p4 4..breakbreak语句语句1..while语句语句while while 条件表达式条件表达式: : 循环语句体循环语句体【【例例2-16】】i = 1;i = 1;sum = 0;sum = 0;while i<11:while i<11: sum += i; sum += i; i+= 1; i+= 1;print(sum)print(sum)2..for语句语句foriinrange(start,end):循环体【【例例2-17】】i = 1;i = 1;sum = 0;sum = 0;for i in range(1, 11):for i in range(1, 11): print(i) print(i) sum+=i sum+=iprint(sum)print(sum)3..continue语句语句【【例例2-182-18】】 如果只计算如果只计算1~1001~100之间偶数之和,可之间偶数之和,可以使用下面的代码:以使用下面的代码:i = 1;i = 1;sum = 0;sum = 0;for i in range(1, 101):for i in range(1, 101): if i%2 == 1: if i%2 == 1: continue continue sum+=i sum+=iprint(sum)print(sum)4..break语句语句【【例例2-192-19】】 将将【【例例2-162-16】】修改为使用修改为使用breakbreak语句语句跳出循环体。
跳出循环体i = 1;i = 1;sum = 0;sum = 0;while True:while True: if i== 11: if i== 11: break; break; sum += i; sum += i; i+= 1; i+= 1;print(sum)print(sum)2.3.4 try-except语句语句try:try: >except [, <>, <异常处理类异常处理类>,….] as <>,….] as <异常处理对象异常处理对象>:>: < <异常处理代码异常处理代码> >finally:finally: < <最后执行的代码最后执行的代码> >【【例例2-20】】i = 10;i = 10;print(30 / (i - 10));print(30 / (i - 10));程序中存在一个程序中存在一个30/030/0的错误,运行该程序的错误,运行该程序会出现下面的报错信息会出现下面的报错信息。
Traceback (most recent call last):Traceback (most recent call last): File "D:\MyBooks\2014\python\ File "D:\MyBooks\2014\python\源代码源代码\02\\02\例例2-20.py", line 2, in 2-20.py", line 2, in print(30 / (i - 10)); print(30 / (i - 10));【【例例3.21】】print(30/(i-10))exceptExceptionase:print(e);finally:print("执行完成");2.4 序列数据结构序列数据结构p2.4.1 2.4.1 列表列表p2.4.2 2.4.2 元组(元组(tupletuple))2.4.1 列表列表p列表(列表(ListList)是一组有序存储的数据例如,)是一组有序存储的数据例如,饭店点餐的菜单就是一种列表列表具有如下饭店点餐的菜单就是一种列表。
列表具有如下特性:特性:p 和变量一样,每个列表都有一个唯一标识它和变量一样,每个列表都有一个唯一标识它的名称p 一个列表的元素应具有相同的数据类型一个列表的元素应具有相同的数据类型p 每个列表元素都有索引和值两个属性,索引每个列表元素都有索引和值两个属性,索引是一个从是一个从0 0开始的整数,用于标识元素在列表中开始的整数,用于标识元素在列表中的位置;值当然就是元素对应的值的位置;值当然就是元素对应的值1.定义列表.定义列表p下面就是一个列表的定义下面就是一个列表的定义menulist = ['红烧肉红烧肉', '熘肝尖熘肝尖', '西红柿炒西红柿炒鸡蛋鸡蛋', '油焖大虾油焖大虾']2.打印列表.打印列表print(列表名列表名)p【【例例2-222-22】】 打印列表的内容打印列表的内容menulist = ['红烧肉红烧肉', '熘肝尖熘肝尖', '西红柿炒西红柿炒鸡蛋鸡蛋', '油焖大虾油焖大虾']print(menulist)p运行结果如下:运行结果如下:['['红烧肉红烧肉', '', '熘肝尖熘肝尖', '', '西红柿炒鸡蛋西红柿炒鸡蛋', ', ' '油焖大虾油焖大虾']']3.获取列表长度.获取列表长度Len(Len(数组名数组名) )4.访问列表元素.访问列表元素列表名列表名[index]【【例例2-23】】 访问列表元素的例子访问列表元素的例子menulist = ['红烧肉红烧肉', '熘肝尖熘肝尖', '西红柿炒西红柿炒鸡蛋鸡蛋', '油焖大虾油焖大虾']print(menulist[0])print(menulist[3])p程序打印列表中索引为程序打印列表中索引为0 0和和3 3的元素,运行的元素,运行结果如下:结果如下:红烧肉红烧肉油焖大虾油焖大虾5.添加列表元素.添加列表元素列表列表.append(.append(新值新值) )p【【例例2-242-24】】 通过通过append()append()函数添加列表元素的例子。
函数添加列表元素的例子menulist = ['menulist = ['红烧肉红烧肉', '', '熘肝尖熘肝尖', '', '西红柿炒鸡蛋西红柿炒鸡蛋', '', '油焖大虾油焖大虾']']menulist.append('menulist.append('北京烤鸭北京烤鸭')')print(menulist)print(menulist)p程序调用程序调用append()append()函数在列表函数在列表menulistmenulist的尾部添加元素的尾部添加元素' '北京烤鸭北京烤鸭' ',运行结果如下:,运行结果如下:['['红烧肉红烧肉', '', '熘肝尖熘肝尖', '', '西红柿炒鸡蛋西红柿炒鸡蛋', '', '油焖大虾油焖大虾', '', '北京烤鸭北京烤鸭']']insert()函数函数列表列表. insert(. insert(插入位置插入位置, , 新值新值) )p【【例例2-252-25】】 通过通过insert()insert()函数添加列表函数添加列表元素的例子元素的例子menulist = ['menulist = ['红烧肉红烧肉', '', '熘肝尖熘肝尖', '', '西红西红柿炒鸡蛋柿炒鸡蛋', '', '油焖大虾油焖大虾']']menulist.insert(4, 'menulist.insert(4, '北京烤鸭北京烤鸭')')print(menulist)print(menulist)p,运行结果如下:,运行结果如下:['['红烧肉红烧肉', '', '北京烤鸭北京烤鸭', '', '熘肝尖熘肝尖', '', '西西红柿炒鸡蛋红柿炒鸡蛋', '', '油焖大虾油焖大虾']']extend()函数函数列表列表1.extend(1.extend(列表列表2)2)p【【例例2-262-26】】 通过通过extend()extend()函数添加列表元素函数添加列表元素的例子。
的例子menulist1 = ['menulist1 = ['红烧肉红烧肉', '', '熘肝尖熘肝尖']']menulist2 = ['menulist2 = ['西红柿炒鸡蛋西红柿炒鸡蛋', '', '油焖大虾油焖大虾']']menulist1. extend (menulist2)menulist1. extend (menulist2)print(menulist1)print(menulist1)p运行结果如下:运行结果如下:['['红烧肉红烧肉', '', '北京烤鸭北京烤鸭', '', '熘肝尖熘肝尖', '', '西红柿炒西红柿炒鸡蛋鸡蛋', '', '油焖大虾油焖大虾']']6.合并.合并2个列表个列表p可以使用可以使用+ +将将2 2个列表合并,得到一个新的列表,具体方个列表合并,得到一个新的列表,具体方法如下:法如下:列表列表3=3=列表列表1 + 1 + 列表列表2 2p【【例例2-272-27】】 合并合并2 2个列表的例子个列表的例子menulist1 = ['menulist1 = ['红烧肉红烧肉', '', '熘肝尖熘肝尖', '', '西红柿炒鸡蛋西红柿炒鸡蛋']']menulist2 = ['menulist2 = ['北京烤鸭北京烤鸭', '', '西红柿炒鸡蛋西红柿炒鸡蛋', '', '油焖大虾油焖大虾']']menulist3 = menulist1 + menulist2menulist3 = menulist1 + menulist2print(menulist3)print(menulist3)p运行结果如下:运行结果如下:['['红烧肉红烧肉', '', '熘肝尖熘肝尖', '', '西红柿炒鸡蛋西红柿炒鸡蛋', '', '北京烤鸭北京烤鸭', '', '西红柿炒鸡蛋西红柿炒鸡蛋', '', '油焖大虾油焖大虾']']7.删除列表元素.删除列表元素del del 列表名列表名[ [索引索引] ] p【【例例2-282-28】】 使用使用deldel语句删除列表元素语句删除列表元素的例子。
的例子menulist = ['menulist = ['红烧肉红烧肉', '', '熘肝尖熘肝尖', '', '西红西红柿炒鸡蛋柿炒鸡蛋']']del menulist[0]del menulist[0]print(menulist)print(menulist)p运行结果如下:运行结果如下: ['['熘肝尖熘肝尖', '', '西红柿炒鸡蛋西红柿炒鸡蛋']']7.删除列表元素.删除列表元素del del 列表名列表名[ [索引索引] ] p【【例例2-282-28】】 使用使用deldel语句删除列表元素语句删除列表元素的例子menulist = ['menulist = ['红烧肉红烧肉', '', '熘肝尖熘肝尖', '', '西红西红柿炒鸡蛋柿炒鸡蛋']']del menulist[0]del menulist[0]print(menulist)print(menulist)p运行结果如下:运行结果如下: ['['熘肝尖熘肝尖', '', '西红柿炒鸡蛋西红柿炒鸡蛋']']8.定位列表元素.定位列表元素p可以使用可以使用index()index()函数获取列表中某个元素的索函数获取列表中某个元素的索引。
其基本语法如下:引其基本语法如下:列表列表.index(.index(元素值元素值) )p函数返回元素值在列表中某个元素的索引,如函数返回元素值在列表中某个元素的索引,如果不存在,则会抛异常果不存在,则会抛异常p【【例例2-292-29】】 使用使用index ()index ()函数的例子函数的例子menulist = ['menulist = ['红烧肉红烧肉', '', '熘肝尖熘肝尖', '', '西红柿炒鸡西红柿炒鸡蛋蛋']']print(menulist.index('print(menulist.index('红烧肉红烧肉'))'))print(menulist.index('print(menulist.index('西红柿炒鸡蛋西红柿炒鸡蛋'))'))p运行结果如下:运行结果如下:0 02 29.遍历列表元素.遍历列表元素p遍历列表就是一个一个地访问列表元素,遍历列表就是一个一个地访问列表元素,这是使用列表时的常用操作这是使用列表时的常用操作p可以使用可以使用forfor语句和语句和range()range()函数遍历列表函数遍历列表索引,然后通过索引依次访问每个列表元索引,然后通过索引依次访问每个列表元素,方法如下:素,方法如下:foriinrange(len(list)):访问list[i]【【例例2-30】】 forfor语句和语句和range()range()函数遍历列表。
函数遍历列表list=['王二','张三','李四','王五'];foriinrange(len(list)):print(list[i]);程序的运行结果如下:程序的运行结果如下:王二王二张三张三李四李四王五王五使用使用for语句和语句和enumerate()函数同时遍函数同时遍历列表的元素索引和元素值历列表的元素索引和元素值for for 索引索引, , 元素值元素值in enumerate(list):in enumerate(list): 访问索引和元素值访问索引和元素值【【例例2-31】】 for语句和语句和enumerate()函数函数遍历列表遍历列表list=['王二','张三','李四','王五'];forindex,valueinenumerate(list):print("第%d个元素值是【%s】"%(index,value));p程序的运行结果如下:程序的运行结果如下:第0个元素值是【王二】第1个元素值是【张三】第2个元素值是【李四】第3个元素值是【王五】10.列表排序.列表排序p列表排序操作值按列表元素值的升序、降列表排序操作值按列表元素值的升序、降序或反序重新排列列表元素的位置。
序或反序重新排列列表元素的位置p可以使用可以使用sort()sort()函数对列表进行升序排列,函数对列表进行升序排列,其语法如下:其语法如下:列表.sort()【【例例2-32】】list = ['apple', 'banana', 'pear', 'grape'];list.sort()print(list)p程序的运行结果如下:程序的运行结果如下:['apple', 'banana', 'grape', 'pear']['apple', 'banana', 'grape', 'pear']reverse()函数函数p可以使用可以使用reverse()reverse()函数对列表进行反序排列,其语法函数对列表进行反序排列,其语法如下:如下:列表列表.reverse().reverse()p调用调用reverse ()reverse ()函数后,列表元素被反序排列函数后,列表元素被反序排列p【【例例2-332-33】】 使用使用reverse ()reverse ()函数对列表进行反序排列函数对列表进行反序排列list = ['apple', 'Banana', 'pear', 'grape'];list = ['apple', 'Banana', 'pear', 'grape'];list.reverse()list.reverse()print(list)print(list)p程序的运行结果如下:程序的运行结果如下:['grape', 'pear', 'Banana', 'apple']['grape', 'pear', 'Banana', 'apple']【【例例2-34】】list=['apple','banana','pear','grape'];list.sort()list.reverse()print(list)p程序的运行结果如下:程序的运行结果如下:['pear','grape','banana','apple']11.产生一个数值递增列表.产生一个数值递增列表p使用使用range()range()函数可以产生一个数值递增列表,函数可以产生一个数值递增列表,它的基本语法结构如下:它的基本语法结构如下:range(start,end)p参数说明如下。
参数说明如下p startstart:一个整数,指定产生的列表的起始:一个整数,指定产生的列表的起始元素值startstart为可选参数,默认值为为可选参数,默认值为0 0p endend:一个整数,指定产生的列表的结束元:一个整数,指定产生的列表的结束元素值prange()range()函数返回一个列表,该列表由从函数返回一个列表,该列表由从startstart开始至开始至endend结束的整数组成结束的整数组成【【例例2-35】】list1 = range(10)list1 = range(10)list2 = range(11, 20)list2 = range(11, 20)# #打印打印list1list1for index,value in enumerate(list1):for index,value in enumerate(list1): print("list1 print("list1的第的第%d%d个元素值是个元素值是【【%s%s】】" " %(index, value));%(index, value));# #打印打印list2list2for index,value in enumerate(list2):for index,value in enumerate(list2): print("list2 print("list2的第的第%d%d个元素值是个元素值是【【%s%s】】" " %(index, value));%(index, value));12.定义多维列表.定义多维列表p【【例例2-362-36】】 一个定义二维数列表的例子。
一个定义二维数列表的例子list2 = [["CPU", "list2 = [["CPU", "内存内存"], [""], ["硬盘硬盘","","声声卡卡"]];"]];【【例例2-36】】中列表中列表list2的内容的内容【【例例2-37】】 打印二维列表打印二维列表list2 = [["CPU", "list2 = [["CPU", "内存内存"], [""], ["硬盘硬盘","","声声卡卡"]];"]];for i in range(len(list2)):for i in range(len(list2)): print(list2[i]); print(list2[i]);p运行结果如下:运行结果如下:['CPU', '['CPU', '内存内存']']['['硬盘硬盘', '', '声卡声卡']']【【例例2-38】】list2 = [["CPU", "list2 = [["CPU", "内存内存"], [""], ["硬盘硬盘","","声卡声卡"]];"]];for i in range(len(list2)):for i in range(len(list2)): list1 = list2[i]; list1 = list2[i]; for j in range(len(list1)): for j in range(len(list1)): print(list1[j]) print(list1[j])运行结果如下:运行结果如下:CPUCPU内存内存硬盘硬盘声卡声卡使用下面的方法获取二维列表元素的值使用下面的方法获取二维列表元素的值列表名列表名[ [索引索引1] [1] [索引索引2]2]【【例例2-39】】list2 = [["CPU", "list2 = [["CPU", "内存内存"], [""], ["硬盘硬盘","","声声卡卡"]];"]];for i in range(len(list2)):for i in range(len(list2)): for j in range(len(list2[i])): for j in range(len(list2[i])): print(list2[i][j]) print(list2[i][j])运行结果运行结果CPUCPU内存内存硬盘硬盘声卡声卡2.4.2 元组(元组(tuple))元组与列表非常相似,它具有如下特性:元组与列表非常相似,它具有如下特性:p 一经定义,元组的内容不能改变。
一经定义,元组的内容不能改变p 元组元素可以存储不同类型的数据,元组元素可以存储不同类型的数据,可以是字符串、数字,甚至是元组可以是字符串、数字,甚至是元组p 元组元素由圆括号括起来,例如:元组元素由圆括号括起来,例如:pt = (1, 2, 3, 4)t = (1, 2, 3, 4)1.访问元组元素.访问元组元素p与列表一样,可以使用索引访问元组元素,方法如下:与列表一样,可以使用索引访问元组元素,方法如下:元组元组[ [索引索引] ]p【【例例2-402-40】】 访问元组元素的例子访问元组元素的例子t = (1, 2, 3, 4)t = (1, 2, 3, 4)print(t[0])print(t[0])print(t[3])print(t[3])p程序打印元组中索引为程序打印元组中索引为0 0和和3 3的元素,运行结果如下:的元素,运行结果如下:1 14 42.获取元组长度.获取元组长度p元组长度指元组中元素的数量可以通过元组长度指元组中元素的数量可以通过lenlen()()函数获取元组的长度,方法如下:函数获取元组的长度,方法如下:Len(Len(元组名元组名) )p【【例例2-412-41】】 打印元组的长度。
打印元组的长度t = (1, 2, 3, 4)t = (1, 2, 3, 4)print(len(t))print(len(t))p运行结果为运行结果为4 43.遍历元组元素.遍历元组元素for i in range(len(tuple)):for i in range(len(tuple)): 访问访问tuple [i]tuple [i]p【【例例2-422-42】】 for for语句和语句和range()range()函数遍历列表函数遍历列表t = ('t = ('王二王二', '', '张三张三', '', '李四李四', '', '王五王五');');for i in range(len(t)):for i in range(len(t)): print(t[i]); print(t[i]);p程序的运行结果如下:程序的运行结果如下:王二王二张三张三李四李四王五王五使用使用for语句和语句和enumerate()函数同时遍函数同时遍历列表的元素索引和元素值历列表的元素索引和元素值for for 索引索引, , 元素值元素值in in enumerate(list):enumerate(list): 访问索引和元素值访问索引和元素值。
【【例例2-43】】 for语句和语句和enumerate()函数函数遍历列表遍历列表list = ['list = ['王二王二', '', '张三张三', '', '李四李四', '', '王五王五'];'];for index,value in enumerate(list):for index,value in enumerate(list): print(" print("第第%d%d个元素值是个元素值是【【%s%s】】" %(index, " %(index, value));value));程序的运行结果如下:程序的运行结果如下:第第0 0个元素值是个元素值是【【王二王二】】第第1 1个元素值是个元素值是【【张三张三】】第第2 2个元素值是个元素值是【【李四李四】】第第3 3个元素值是个元素值是【【王五王五】】4.排序.排序p因为元组的内容不能改变,所以元组没有因为元组的内容不能改变,所以元组没有sortsort()()函数可以将元组转换为列表,然后再函数可以将元组转换为列表,然后再对列表排序,最后将排序后的列表赋值给对列表排序,最后将排序后的列表赋值给元组。
元组p可以使用下面的方法将元组转换为列表可以使用下面的方法将元组转换为列表列表对象列表对象 = list( = list(元组对象元组对象) )p将列表转换为元组的方法如下:将列表转换为元组的方法如下:元组对象=tuple(列表对象)【【例例2-44】】 对元组进行排列对元组进行排列t = ('apple', 'banana', 'pear', t = ('apple', 'banana', 'pear', 'grape');'grape');l = list(t);l = list(t);l.sort();l.sort();t = tuple(l);t = tuple(l);print(t)print(t)p程序的运行结果如下:程序的运行结果如下:('apple', 'banana', 'grape', 'pear')('apple', 'banana', 'grape', 'pear')使用使用reverse()函数对元组进行反序排列函数对元组进行反序排列元组元组.reverse().reverse()p调用调用reverse ()reverse ()函数后,元组元素被反序排列。
函数后,元组元素被反序排列p【【例例2-452-45】】 使用使用reverse ()reverse ()函数对元组进行函数对元组进行反序排列反序排列t = ('apple', 'banana', 'pear', 'grape');t = ('apple', 'banana', 'pear', 'grape');l = list(t);l = list(t);l.reverse()l.reverse()t = tuple(l);t = tuple(l);print(t)print(t)2.4.3 字典字典1.定义字典.定义字典p字典元素使用字典元素使用{}{}括起来,例如,下面的语括起来,例如,下面的语句可以定义一个空字典句可以定义一个空字典d1 = {};d1 = {};p也可以在定义字典时指定里面的元素,每也可以在定义字典时指定里面的元素,每个元素由键和值组成,键和值之间由冒号个元素由键和值组成,键和值之间由冒号((: :)分割,元素间由逗号()分割,元素间由逗号(, ,)分割例)分割例如:如:d2={'name':'d2={'name':'小明小明', 'sex':'', 'sex':'男男','age':'18', 'score':'80'}','age':'18', 'score':'80'}2.打印字典.打印字典p可以直接使用可以直接使用print()print()函数打印字典,方函数打印字典,方法如下:法如下:pprint(print(字典名字典名) )p【【例例2-462-46】】 打印字典的内容。
打印字典的内容d={'name':'d={'name':'小明小明', 'sex':'', 'sex':'男男','age':'18', 'score':'80'}','age':'18', 'score':'80'}print(d)print(d)p运行结果如下:运行结果如下:{'score': '80', 'name': '{'score': '80', 'name': '小明小明', ', 'age': '18', 'sex': ''age': '18', 'sex': '男男'}'}3.获取字典长度.获取字典长度Len(Len(字典名字典名) )p【【例例2-472-47】】 打印字典的长度打印字典的长度d={'name':'d={'name':'小明小明', 'sex':'', 'sex':'男男','age':'18', 'score':'80'}','age':'18', 'score':'80'}print(len(d))print(len(d))p运行结果为运行结果为4 44.访问字典元素.访问字典元素p字典由字典元素组成对字典的管理就是字典由字典元素组成对字典的管理就是对字典元素的访问和操作。
可以通过下面对字典元素的访问和操作可以通过下面的方法获取字典元素的值:的方法获取字典元素的值:字典名字典名[key][key]pkeykey是元素的键是元素的键【【例例2-48】】d={'name':'d={'name':'小明小明', 'sex':'', 'sex':'男男','age':'18', ','age':'18', 'score':'80'}'score':'80'}print(d['name'])print(d['name'])print(d['sex'])print(d['sex'])print(d['age'])print(d['age'])print(d['score'])print(d['score'])p程序打印列表中索引为程序打印列表中索引为0 0和和3 3的元素,运行结果如下:的元素,运行结果如下:小明小明男男181880805.添加字典元素.添加字典元素p可以通过赋值在字典中添加元素,具体方可以通过赋值在字典中添加元素,具体方法如下:法如下:字典字典[ [键键] = ] = 值值p如果字典中不存在指定键,则添加;否则如果字典中不存在指定键,则添加;否则修改键值。
修改键值【【例例2-49】】 添加字典元素的例子添加字典元素的例子d={'name':'d={'name':'小明小明', 'sex':'', 'sex':'男男','age':'18'}','age':'18'}d['score'] = '80'd['score'] = '80'print(d)print(d)p运行结果如下:运行结果如下:{'sex': '{'sex': '男男', 'age': '18', 'name': '', 'age': '18', 'name': '小明小明', 'score': '80'}', 'score': '80'}6.合并.合并2个字典个字典p可以使用可以使用update()update()函数将函数将2 2个字典合并,具体方法如下:个字典合并,具体方法如下:字典1.update(字典2)p【【例例2-502-50】】 合并合并2 2个字典的例子个字典的例子d1={'name':'小明','sex':'男'}d2={'age':'18','score':'80'}d1.update(d2)print(d1)p运行结果如下:运行结果如下:{'age': '18', 'name': '{'age': '18', 'name': '小明小明', 'score': '80', ', 'score': '80', 'sex': ''sex': '男男'}'}7.删除字典元素.删除字典元素使用使用pop()pop()方法可以删除指定的字典元素,并返回删除的方法可以删除指定的字典元素,并返回删除的元素值。
具体方法如下:元素值具体方法如下:字典名字典名.pop(.pop(键键) ) 【【例例2-512-51】】 使用使用pop()pop()方法删除字典元素的例子方法删除字典元素的例子d={'age': '18', 'name': 'd={'age': '18', 'name': '小明小明', 'score': '80', ', 'score': '80', 'sex': ''sex': '男男'}'}d.pop('score')d.pop('score')print(d)print(d)运行结果如下:运行结果如下:{'name': '{'name': '小明小明', 'sex': '', 'sex': '男男', 'age': '18'}', 'age': '18'}8.判断字典是否存在元素.判断字典是否存在元素p可以使用可以使用inin关键字判断字典中是否存在指定键的元素其基本语关键字判断字典中是否存在指定键的元素其基本语法如下:法如下:键键 in in 字典字典p如果字典中存在指定键的元素,则表达式返回如果字典中存在指定键的元素,则表达式返回TrueTrue;否则返回;否则返回FalseFalse。
p【【例例2-522-52】】 使用使用inin关键字的例子关键字的例子d={'age': '18', 'name': 'd={'age': '18', 'name': '小明小明', 'score': '80', 'sex': '', 'score': '80', 'sex': '男男'}'}if 'name1' in d: if 'name1' in d: print(d['name1']) print(d['name1'])else:else: print(' print('不包含键位不包含键位name1name1的元素的元素')')p运行结果如下:运行结果如下:不包含键位不包含键位name1name1的元素的元素9.遍历字典元素.遍历字典元素p可以使用可以使用for.. infor.. in语句遍历字典的键和值,语句遍历字典的键和值,方法如下:方法如下:for key in for key in 字典字典.keys(): # .keys(): # 遍历字典的遍历字典的键键 访问访问 字典字典[key][key]for key in for key in 字典字典.values(): # .values(): # 遍历字典遍历字典的值的值 访问访问 字典字典[key][key]【【例例2-53】】d={'age': '18', 'name': 'd={'age': '18', 'name': '小明小明', ', 'score': '80', 'sex': ''score': '80', 'sex': '男男'}'}for key in d.keys(): # for key in d.keys(): # 遍历字典的键遍历字典的键 print('print('键键'+key+ ''+key+ '的值:的值:'+ '+ d[key]);d[key]);p程序的运行结果如下:程序的运行结果如下:键键scorescore的值:的值:8080键键namename的值:小明的值:小明键键sexsex的值:男的值:男键键ageage的值:的值:1818【【例例2-54】】d={'age':'18','name':'小明','score':'80','sex':'男'}forvalueind.values():#遍历字典的值print(value);p程序的运行结果如下:程序的运行结果如下:小明18男8010.清空字典.清空字典p使用使用clear()clear()方法可以清空指定的字典所有元素。
方法可以清空指定的字典所有元素具体方法如下:具体方法如下:字典名.clear()p【【例例2-552-55】】 使用使用clear ()clear ()方法清空字典元素方法清空字典元素的例子d={'age':'18','name':'小明','score':'80','sex':'男'}d.clear()print(d)p运行结果如下:运行结果如下:{}11.字典的嵌套.字典的嵌套p字典里面还可以嵌套字典,例如字典里面还可以嵌套字典,例如{'name':{'first':'Johney','last':'Lee{'name':{'first':'Johney','last':'Lee'},'age':40}'},'age':40}p可以通过下面的方式访问嵌套字典可以通过下面的方式访问嵌套字典字典字典[ [键键][][键键] ]【【例例2-56】】d={'name':{'first':'Johney','last':'Ld={'name':{'first':'Johney','last':'Lee'},'age':40}ee'},'age':40}print(d['name'][ 'first'])print(d['name'][ 'first'])p运行结果如下:运行结果如下:JohneyJohney2.4.4 集合集合p集合由一组无序排列的元素组成,可以分集合由一组无序排列的元素组成,可以分为可变集合(为可变集合(setset)和不可变集合)和不可变集合((frozensetfrozenset)。
可变集合创建后可以添)可变集合创建后可以添加元素,修改元素和删除元素而不可变加元素,修改元素和删除元素而不可变集合创建后则不能改变集合创建后则不能改变1.创建集合.创建集合p创建可变集合的例子创建可变集合的例子s = set('python')s = set('python')p【【例例2-572-57】】 创建可变集合的例子创建可变集合的例子s = set('python')s = set('python')print(type(s))print(type(s))print(s)print(s)p运行结果如下:运行结果如下:{'t', 'o', 'y', 'p', 'n', 'h'}{'t', 'o', 'y', 'p', 'n', 'h'}使用使用frozenset ()方法创建不可变集合方法创建不可变集合s = frozenset('python')s = frozenset('python')p【【例例2-582-58】】 创建不可变集合的例子创建不可变集合的例子fs = frozenset('python')fs = frozenset('python')print(type(fs))print(type(fs))print(fs)print(fs)p运行结果如下:运行结果如下:frozenset({'n', 'y', 'h', 'o', 'p', frozenset({'n', 'y', 'h', 'o', 'p', 't'})'t'})2.获取集合长度.获取集合长度Len(Len(集合名集合名) )p【【例例2-592-59】】 打印集合的长度。
打印集合的长度s = set('python')s = set('python')print(len(s))print(len(s))p运行结果为运行结果为6 63.访问集合元素.访问集合元素p【【例例2-602-60】】 遍历集合元素的例子遍历集合元素的例子s = set('python')s = set('python')s = set('python')s = set('python')for e in s:for e in s: print(e) print(e) 运行结果如下:运行结果如下:n no ot ty yh hp p4.添加集合元素.添加集合元素p可以通过调用可以通过调用add()add()方法在集合中添加元方法在集合中添加元素,具体方法如下:素,具体方法如下:集合集合.add(.add(值值) ) 提示提示只只能能在在可可变变集集合合中中添添加加元元素素不不能能在在不不可可变变集集合合中中添添加加元元素【【例例2-61】】 添加一个集合元素的例子添加一个集合元素的例子s = set('python')s = set('python')s.add('0')s.add('0')print(s)print(s)p运行结果如下:运行结果如下:{'t', 'y', 'h', 'p', 'o', '0', 'n'}{'t', 'y', 'h', 'p', 'o', '0', 'n'}update()方法将另外一个集合的元素添方法将另外一个集合的元素添加到指定集合中加到指定集合中集合集合. update(. update(值值) )p【【例例2-622-62】】 添加多个集合元素的例子。
添加多个集合元素的例子s = set([1, 2, 3])s = set([1, 2, 3])s.update([4, 5, 6])s.update([4, 5, 6])print(s)print(s)p运行结果如下:运行结果如下:{1, 2, 3, 4, 5, 6}{1, 2, 3, 4, 5, 6}5.删除集合元素.删除集合元素p可以使用可以使用remove()remove()方法删除指定的集合元方法删除指定的集合元素具体方法如下:素具体方法如下:集合名集合名. remove(. remove(值值) ) p使用使用clear()clear()方法可以清空指定的集合所方法可以清空指定的集合所有元素具体方法如下:有元素具体方法如下:集合名集合名.clear() .clear() 【【例例2-63】】s = set([1, 2, 3])s = set([1, 2, 3])s.remove(1)s.remove(1)print(s)print(s)s.clear()s.clear()print(s)print(s)p运行结果如下:运行结果如下:{2 ,3}{2 ,3}set()set()6.判断集合是否存在元素.判断集合是否存在元素p可以使用可以使用inin判断集合中是否存在指定键的元素。
其基本判断集合中是否存在指定键的元素其基本语法如下:语法如下:值值 in in 集合集合p如果集合中存在指定值的元素,则表达式返回如果集合中存在指定值的元素,则表达式返回TrueTrue;否;否则返回则返回FalseFalsep【【例例2-642-64】】 判断集合是否存在元素的例子判断集合是否存在元素的例子s = set([1, 2, 3])s = set([1, 2, 3])if 2 in s: if 2 in s: print(' print('存在存在'])'])else:else: print(' print('不存在不存在')')p运行结果如下:运行结果如下:存在存在7.遍历集合元素.遍历集合元素p可以使用可以使用for.. infor.. in语句遍历集合的值,方法如下:语句遍历集合的值,方法如下:for element in for element in 集合集合: : 访问访问 elementelement【【例例2-652-65】】 使用使用for.. infor.. in语句遍历集合语句遍历集合s = set([1, 2, 3])s = set([1, 2, 3])for e in s: # for e in s: # 遍历集合遍历集合 print(e);print(e);p程序的运行结果如下:程序的运行结果如下:1 12 23 38.子集和超集.子集和超集操作符实例具体描述==A==B如果A等于B,则返回True;否则返回False!=A!=B如果A不等于B,则返回True;否则返回False< A A>B如果A是B的真超集,则返回True;否则返回False>=A>=B如果A是B的超集,则返回True;否则返回False【【例例2-66】】s1 = set([1, 2])s1 = set([1, 2])s2 = set([1, 2, 3])s2 = set([1, 2, 3])if s1!=s2:if s1!=s2: if s1s1: if s2>s1: print('s2 print('s2是是s1s1的超集的超集')')p运行结果如下:运行结果如下:s1s1是是s2s2的真子集的真子集s2s2是是s1s1的超集的超集9.集合的并集.集合的并集p可以使用可以使用| |操作符计算两个集合的并集。
例如:操作符计算两个集合的并集例如:s = s1 | s2s = s1 | s2p【【例例2-672-67】】 使用使用| |操作符计算两个集合的并集操作符计算两个集合的并集s1 = set([1, 2])s1 = set([1, 2])s2 = set([3, 4])s2 = set([3, 4])s = s1 | s2s = s1 | s2print(s)print(s)p运行结果如下:运行结果如下:{1, 2, 3, 4}{1, 2, 3, 4}使用使用union()方法计算两个集合的并集方法计算两个集合的并集s = s1.union(s2)s = s1.union(s2)p【【例例2-682-68】】 使用使用union()union()方法计算两个方法计算两个集合的并集集合的并集s1 = set([1, 2])s1 = set([1, 2])s2 = set([3, 4])s2 = set([3, 4])s = s1.union(s2)s = s1.union(s2)print(s)print(s)p运行结果如下:运行结果如下:{1, 2, 3, 4}{1, 2, 3, 4}10.集合的交集.集合的交集p集合的交集由所有既属于集合集合的交集由所有既属于集合A A又属于集又属于集合合B B的元素组成。
的元素组成p可以使用可以使用& &操作符计算两个集合的交集操作符计算两个集合的交集例如:例如:s = s1 & s2s = s1 & s2【【例例2-69】】s1 = set([1, 2, 3])s1 = set([1, 2, 3])s2 = set([3, 4])s2 = set([3, 4])s = s1 & s2s = s1 & s2print(s)print(s)p运行结果如下:运行结果如下:{3}{3}使用使用intersection ()方法计算两个集合的方法计算两个集合的并集并集s = s1. intersection (s2)s = s1. intersection (s2)p【【例例2-702-70】】 使用使用intersection()intersection()方法计方法计算两个集合的并集算两个集合的并集s1 = set([1, 2, 3])s1 = set([1, 2, 3])s2 = set([3, 4])s2 = set([3, 4])s = s1.intersection(s2)s = s1.intersection(s2)print(s)print(s)11.集合的差集.集合的差集p集合的差集由所有属于集合集合的差集由所有属于集合A A但不属于集合但不属于集合B B的元素组成。
的元素组成p可以使用可以使用- -操作符计算两个集合的差集例如:操作符计算两个集合的差集例如:s = s1 - s2s = s1 - s2p【【例例2-712-71】】 使用使用- -操作符计算两个集合的差集操作符计算两个集合的差集ps1 = set([1, 2, 3])s1 = set([1, 2, 3])ps2 = set([3, 4])s2 = set([3, 4])ps = s1 - s2s = s1 - s2pprint(s)print(s)p运行结果如下:运行结果如下:{1, 2}{1, 2}使用使用difference ()方法计算两个集合的差方法计算两个集合的差集集s = s1. difference(s2)s = s1. difference(s2)p【【例例2-722-72】】 使用使用difference()difference()方法计算方法计算两个集合的并集两个集合的并集s1 = set([1, 2, 3])s1 = set([1, 2, 3])s2 = set([3, 4])s2 = set([3, 4])s = s1. difference(s2)s = s1. difference(s2)print(s)print(s)。