Python基础教程第2章



《Python基础教程第2章》由会员分享,可在线阅读,更多相关《Python基础教程第2章(133页珍藏版)》请在装配图网上搜索。
1、Click to edit Master text styles,,Second level,,Third level,,Fourth level,,Fifth level,,Click to edit Master title style,,,Python,程序设计教程,授课教师:,,职务:,第,2,章,Python,语言基础,课程描述,,,本章将介绍,Python,语言的基本语法和编码规范,并重点讲解,Python,语言的数据类型、运算符、常量、变量、表达式和常用语句等基础知识,为使用,Python,开发应用程序奠定基础。,本章知识点,,2.1,常量和变量,,2.2,运算符和表达式,,2.
2、3,常用语句,,2.4,序列数据结构,2.1,常量和变量,,2.1.1,常量,,2.1.2,变量,2.1.1,常量,,变量是内存中命名的存储位置,与常量不同的是变量的值可以动态变化。,Python,的标识符命名规则如下:,,标识符名字的第,1,个字符必须是字母或下划线(,_,);,,标识符名字的第,1,个字符后面可以由字母、下划线(,_,)或数字(,0~9,)组成;,,标识符名字是区分大小写的。也就是说,Score,和,score,是不同的。,【,例,2-1】,,在下面的代码中,定义了一个字符串变量,a,、数值变量,b,和布尔类型变量,c,。,,a = ",这是一个常量,";,,b = 2;,
3、,c = True,,【,例,2-2】,变量值传递的例子。,,a = ",这是一个变量,";,,b = a;,,print(b);#,此时变量,b,的值应等于变量,a,的值,,print ("\n");,,a = ",这是另一个变量,";,,print(b); #,对变量,$a,的操作将不会影响到变量,b,,运行结果如下:,,这是一个变量,,这是一个变量,变量赋值过程的示意图,,id(),函数,可以使用,id(),函数输出变量的地址,语法如下:,,id(,变量名,),,【,例,2-3】,用,id(),函数输出变量地址的示例程序:,,str1 = ",这是一个变量,";,,print(",变量
4、,str1,的值是:,"+str1);,,print(",变量,str1,的地址是:,%d" %(id(str1)));,,str2 = str1;,,print(",变量,str2,的值是:,"+str2);,,print(",变量,str2,的地址是:,%d" %(id(str2)));,,str1 = ",这是另一个变量,";,,print(",变量,str1,的值是:,"+str1);,,print(",变量,str1,的地址是:,%d" %(id(str1)));,,print(",变量,str2,的值是:,"+str2);,,print(",变量,str2,的地址是:,%d",%(
5、id(str2)));,2.1.3,类型转换,1,.转换为数字,1,.转换为数字,(,1,)使用,int(),函数将字符串转换为整数,语法如下:,,int(x [,base ]),,参数,x,是待转换的字符串,参数,base,为可选参数,指定转换后整数的进制,默认为,10,进制。,,(,2,)使用,long(),函数将字符串转换为长整数,语法如下:,,long(x [,base ]),,参数的含义与,int(),函数相同。,,(,3,)使用,float(),函数将字符串或数字转换为浮点数,语法如下:,,float (x),,参数,x,是待转换的字符串或数字。,,(,4,)使用,eval (),
6、函数计算字符串中的有效,Python,表达式,并返回结果,语法如下:,,eval(str),,参数,str,是待计算的,Python,表达式字符串。,,【,例,2-4】,,a = "1";,,b = int(a)+1;,,print(b);,,,【,例,2-5】,,a = "1+2";,,print(eval(a));,,运行结果为,3,。,2,.转换为字符串,,(,1,)使用,str (),函数将数值转换为字符串,语法如下:,,str (x),,参数,x,是待转换的数值。,,(,2,)使用,repr (),函数将对象转换为可打印字符串,语法如下:,,repr(obj),,参数,obj,是待转
7、换的对象。,,,1.2.2,执行,Python,脚本文件,,(,3,)使用,chr (),函数将一个整数转换为可对应,ASCII,的字符,语法如下:,,chr(,整数,),,(,4,)使用,ord(),函数将一个字符转换为对应的,ASCII,,语法如下:,,ord(,字符,),,,【,例,2-6】,print(chr(65));,,print(ord('A'));,,运行结果为。,,A,,65,,,(,5,)使用,hex(),函数将一个整数转换为一个十六进制字符串,语法如下:,,chr(,整数,),,(,6,)使用,oct(),函数将一个整数转换为一个八进制字符串,语法如下:,,oct(,字符
8、,),【,例,2-7】,,使用,hex(),函数和,oct(),函数打印,8,的十六进制字符串和八进制字符串。,,print(hex(8));,,print(oct(8));,,输出的结果如下:,,0x8,,0o10,,十六进制字符串以,0x,开头,八进制字符串以,0o,开头。,2.2,运算符和表达式,,运算符是程序设计语言的最基本元素,它是构成表达式的基础。本节将介绍,Python,语言运算符和表达式。,,2.2.1,运算符,,Python,支持算术运算符、赋值运算符、位运算符、比较运算符、逻辑运算符、字符串运算符、成员运算符和身份运算符等基本运算符。,1,.算术运算符,位运算符,具体描述,
9、例,,子,+,相加运算,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 =
10、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 =3,,x += 3,,print(x),,x -= 3,,print(x),,x *= 3,,print(x),,x /= 3,,print(x),,运行结果如下:,,6,,3,,9,,3.0,,3,.位运算符,,,位运算符,具体描述,&,按位与运算,,,运算符查看两个表达式的二进制表示法的值,并执行按位,“,与,”,操作。只要两
11、个表达式的某位都为,,1,,则结果的该位为,,1,;否则,结果的该位为,,0,|,按位或运算,,,运算符查看两个表达式的二进制表示法的值,并执行按位,“,或,”,操作。只要两个表达式的某位有一个为,,1,,则结果的该位为,,1,;否则,结果的该位为,,0,^,按位异或运算。异或的运算法则为:,0,异或,0=0,,,1,异或,0=1,,,0,异或,1=1,,,1,异或,1=0,~,按位非运算。,0,取非运算的结果为,1,;,1,取非运算的结果为,0,<<,,位左移运算,即所有位向左移,>>,,位右移运算,即所有位向右移,4,.比较运算符,,比较运算符,具体描述,==,等于运算符(两个,=,)。例
12、如,a==b,,如果,a,等于,b,,则返回,True,;否则返回,False,!=,不等运算符。例如,a!=b,,如果,a,不等于,b,,则返回,True,;否则返回,False,,,不等运算符,与,!=,相同,<,,小于运算符,>,,大于运算符,<=,小于等于运算符,>=,大于等于运算符,5,.逻辑运算符,,,逻辑运算符,具体描述,and,逻辑与运算符。例如,a and b,,当,a,和,b,都为,True,时等于,True,;否则等于,False,or,逻辑或运算符。例如,a or b,,当,a,和,b,至少有一个为,True,时等于,True,;否则等于,False,not,逻辑非运算
13、符。例如,not a,,当,a,等于,True,时,表达式等于,False,;否则等于,True,【,例,2-9】,x =True,,y = False,,print("x and y = ", x and y),,print("x or y = ", x or y),,print("not x = ", not x),,print("not y = ", not y),,运行结果如下:,,x and y = False,,x or y = True,,not x = False,,not y = True,,6,.字符串运算符,,逻辑运算符,具体描述,+,字符串连接,*,重复输出字符
14、串,[],获取字符串中指定索引位置的字符,索引从,0,开始,[ start, end],截取字符串中的一部分,从索引位置,start,开始到,,end,结束,in,成员运算符,如果字符串中包含给定的字符则返回,,True,not in,成员运算符,如果字符串中包含给定的字符返回,,True,r,或者,R,指定原始字符串。原始字符串是指所有的字符串都是直接按照字面的意思来使用,没有转义字符、特殊字符或不能打印的字符。 原始字符串字符串的第一个引号前加上字母,"r",或,"R",【,例,2-10】,b = "hello ";,,a = b + "world!";,,print(a);,,print
15、 (a*2);,,print (r"hello\nworld!");,,运行结果如下:,,hello world!,,hello world!hello world!,,hello\nworld!,,7,.运算符优先级,,,运算符,具体描述,**,指数运算的优先级最高,~ + -,逻辑非运算符和正数,/,负数运算符。注意,这里的,+,和,-,不是加减运算符,* / % //,乘、除、取模和取整除,+ -,加和减,>> <<,位右移运算和位左移运算,&,按位与运算,^ |,按位异或运算和按位或运算,> == !=,大于、等于和不等于,%= /= //= -= += *= **=,赋值运算符,is
16、,,is 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 += 1;,,b = a**2;,2.3,常用语句,,2.3.1,赋值语句,,2.3.2,条件分支语句,,3.3.3,循环语句,,2.3.4 try-except,语句,,2.3.1,赋值语句,,赋值语句是,Python,语言中最简单、最常用的语句。通过赋值语句可以定义变量并为其赋初始值。在,2.2.1,小节介绍赋值运算符时,已经涉及到了赋值语句,
17、例如:,,a = 2;,,b = a + 5;,,,【,例,2-11】,,a = 10;,,a += 1;,,print (a);,,a*= 10;,,print (a);,,a**= 2;,,print (a);,,运行结果如下:,,11,,110,,12100,,2.3.2,条件分支语句,,1,.,if,语句,,1,.,if,语句,,if,条件表达式,:,,,语句块,,【,例,2-12】 if,语句的例子,,if a > 10:,,print(",变量,a,大于,10");,,如果语句块中包含多条语句,则这些语句必须拥有相同的缩进。例如:,,if a > 10,:,,print(",变量
18、,a,大于,10");,,a = 10;,,【,例,2-13】,嵌套,if,语句的例子,,if a > 10,:,,,print(",变量,a,大于,10");,,if a > 100:,,print(",变量,\$a,大于,100");,,},,2,.,else,语句,,if,条件表达式,:,,,语句块,1,,else:,,,语句块,2,,3,.,elif,语句,,if,条件表达式,1,,,语句块,1,,elif,条件表达式,2,,,语句块,2,,elif,条件表达式,3,,,语句块,3,,……,,else,,,语句块,n,,【,例,2-15】,,import datetime,,str =
19、 ",今天是,";,,,d=datetime.datetime.now(),,print(d.weekday()),,if d.weekday()==0:,,str += ",星期一,";,,elif d.weekday()==1:,,str += ",星期二,";,,elif d.weekday()==2:,,str += ",星期三,";,elif d.weekday()==3:,,str += ",星期四,";,,elif d.weekday()==4:,,str += ",星期五,";,,elif d.weekday()==5:,,str += ",星期六,";,,else:,,str
20、 += ",星期日,";,,,print(str),weekday(),方法的返回值,,返回值,具体描述,0,星期一,1,星期二,2,星期三,3,星期四,4,星期五,5,星期六,6,星期日,3.3.3,循环语句,,1,.,while,语句,1,.,while,语句,,while,条件表达式,:,,,循环语句体,,3.3.3,循环语句,,1,.,while,语句,,2,.,for,语句,,3,.,continue,语句,,4,.,break,语句,,,,,1,.,while,语句,,while,条件表达式,:,,,循环语句体,,【,例,2-16】,,i = 1;,,sum = 0;,,while
21、 i<11:,,sum += i;,,i+= 1;,,print(sum),,2,.,for,语句,,for i in range(start, end):,,,循环体,,【,例,2-17】,,i = 1;,,sum = 0;,,for i in range(1, 11):,,print(i),,sum+=i,,,print(sum),,3,.,continue,语句,,【,例,2-18】,如果只计算,1~100,之间偶数之和,可以使用下面的代码:,,i = 1;,,sum = 0;,,for i in range(1, 101):,,if i%2 == 1:,,continue,,sum+
22、=i,,,print(sum),,4,.,break,语句,,【,例,2-19】,将,【,例,2-16】,修改为使用,break,语句跳出循环体。,,i = 1;,,sum = 0;,,while True:,,if i== 11:,,break;,,sum += i;,,i+= 1;,,print(sum),,2.3.4 try-except,语句,,try:,,
23、,print(30 / (i - 10));,,程序中存在一个,30/0,的错误,运行该程序会出现下面的报错信息。,,Traceback (most recent call last):,,File "D:\MyBooks\2014\python\,源代码,\02\,例,2-20.py", line 2, in ,,print(30 / (i - 10));,,【,例,3.21】,,print(30 / (i - 10)),,except Exception as e:,,print(e);,,finally:,,print(",执行完成,");,2.4,序列数据结构,,2.4.1,列表,,2
24、.4.2,元组(,tuple,),,2.4.1,列表,,列表(,List,)是一组有序存储的数据。例如,饭店点餐的菜单就是一种列表。列表具有如下特性:,, 和变量一样,每个列表都有一个唯一标识它的名称。,, 一个列表的元素应具有相同的数据类型。,, 每个列表元素都有索引和值两个属性,索引是一个从,0,开始的整数,用于标识元素在列表中的位置;值当然就是元素对应的值。,,1,.定义列表,,下面就是一个列表的定义。,,menulist = [',红烧肉,', ',熘肝尖,', ',西红柿炒鸡蛋,', ',油焖大虾,'],,2,.打印列表,,print(,列表名,),,【,例,2-22】,打印列
25、表的内容。,,menulist = [',红烧肉,', ',熘肝尖,', ',西红柿炒鸡蛋,', ',油焖大虾,'],,print(menulist),,运行结果如下:,,[',红烧肉,', ',熘肝尖,', ',西红柿炒鸡蛋,', ',油焖大虾,'],,3,.获取列表长度,,Len(,数组名,),4,.访问列表元素,,列表名,[index],【,例,2-23】,访问列表元素的例子,,menulist = [',红烧肉,', ',熘肝尖,', ',西红柿炒鸡蛋,', ',油焖大虾,'],,print(menulist[0]),,print(menulist[3]),,程序打印列表中索引为,0,
26、和,3,的元素,运行结果如下:,,红烧肉,,油焖大虾,,5,.添加列表元素,,列表,.append(,新值,),,【,例,2-24】,通过,append(),函数添加列表元素的例子。,,menulist = [',红烧肉,', ',熘肝尖,', ',西红柿炒鸡蛋,', ',油焖大虾,'],,menulist.append(',北京烤鸭,'),,print(menulist),,程序调用,append(),函数在列表,menulist,的尾部添加元素,',北京烤鸭,',,运行结果如下:,,[',红烧肉,', ',熘肝尖,', ',西红柿炒鸡蛋,', ',油焖大虾,', ',北京烤鸭,'],,in
27、sert(),函数,,列表,. insert(,插入位置,,,新值,),,【,例,2-25】,通过,insert(),函数添加列表元素的例子。,,menulist = [',红烧肉,', ',熘肝尖,', ',西红柿炒鸡蛋,', ',油焖大虾,'],,menulist.insert(4, ',北京烤鸭,'),,print(menulist),,,运行结果如下:,,[',红烧肉,', ',北京烤鸭,', ',熘肝尖,', ',西红柿炒鸡蛋,', ',油焖大虾,'],,extend(),函数,,列表,1.extend(,列表,2),,【,例,2-26】,通过,extend(),函数添加列表元素的例
28、子。,,menulist1 = [',红烧肉,', ',熘肝尖,'],,menulist2 = [',西红柿炒鸡蛋,', ',油焖大虾,'],,menulist1. extend (menulist2),,print(menulist1),,运行结果如下:,,[',红烧肉,', ',北京烤鸭,', ',熘肝尖,', ',西红柿炒鸡蛋,', ',油焖大虾,'],,,6,.合并,2,个列表,,可以使用,+,将,2,个列表合并,得到一个新的列表,具体方法如下:,,列表,3=,列表,1 +,列表,2,,【,例,2-27】,合并,2,个列表的例子。,,menulist1 = [',红烧肉,', ',熘肝
29、尖,', ',西红柿炒鸡蛋,'],,menulist2 = [',北京烤鸭,', ',西红柿炒鸡蛋,', ',油焖大虾,'],,menulist3 = menulist1 + menulist2,,print(menulist3),,运行结果如下:,,[',红烧肉,', ',熘肝尖,', ',西红柿炒鸡蛋,', ',北京烤鸭,', ',西红柿炒鸡蛋,', ',油焖大虾,'],,7,.删除列表元素,,del,列表名,[,索引,],,【,例,2-28】,使用,del,语句删除列表元素的例子。,,menulist = [',红烧肉,', ',熘肝尖,', ',西红柿炒鸡蛋,'],,del menul
30、ist[0],,print(menulist),,运行结果如下:,,,[',熘肝尖,', ',西红柿炒鸡蛋,'],,7,.删除列表元素,,del,列表名,[,索引,],,【,例,2-28】,使用,del,语句删除列表元素的例子。,,menulist = [',红烧肉,', ',熘肝尖,', ',西红柿炒鸡蛋,'],,del menulist[0],,print(menulist),,运行结果如下:,,,[',熘肝尖,', ',西红柿炒鸡蛋,'],,8,.定位列表元素,,可以使用,index(),函数获取列表中某个元素的索引。其基本语法如下:,,列表,.index(,元素值,),,函数返回元素值
31、在列表中某个元素的索引,如果不存在,则会抛异常。,,【,例,2-29】,使用,index (),函数的例子。,,menulist = [',红烧肉,', ',熘肝尖,', ',西红柿炒鸡蛋,'],,print(menulist.index(',红烧肉,')),,print(menulist.index(',西红柿炒鸡蛋,')),,运行结果如下:,,0,,2,,9,.遍历列表元素,,遍历列表就是一个一个地访问列表元素,这是使用列表时的常用操作。,,可以使用,for,语句和,range(),函数遍历列表索引,然后通过索引依次访问每个列表元素,方法如下:,,for i in range(len(li
32、st)):,,,访问,list[i],,【,例,2-30】,,for,语句和,range(),函数遍历列表。,,list = [',王二,', ',张三,', ',李四,', ',王五,'];,,for i in range(len(list)):,,print(list[i]);,,程序的运行结果如下:,,王二,,张三,,李四,,王五,,使用,for,语句和,enumerate(),函数同时遍历列表的元素索引和元素值,,for,索引,,,元素值,in enumerate(list):,,,访问索引和元素值,【,例,2-31】 for,语句和,enumerate(),函数遍历列表。,,lis
33、t = [',王二,', ',张三,', ',李四,', ',王五,'];,,for index,value in enumerate(list):,,print(",第,%d,个元素值是,【%s】" %(index, value));,,程序的运行结果如下:,,第,0,个元素值是,【,王二,】,,第,1,个元素值是,【,张三,】,,第,2,个元素值是,【,李四,】,,第,3,个元素值是,【,王五,】,,,10,.列表排序,,列表排序操作值按列表元素值的升序、降序或反序重新排列列表元素的位置。,,可以使用,sort(),函数对列表进行升序排列,其语法如下:,,列表,.sort(),,【,例,2
34、-32】,,list = ['apple', 'banana', 'pear', 'grape'];,,list.sort(),,print(list),,程序的运行结果如下:,,['apple', 'banana', 'grape', 'pear'],,reverse(),函数,,可以使用,reverse(),函数对列表进行反序排列,其语法如下:,,列表,.reverse(),,调用,reverse (),函数后,列表元素被反序排列。,,【,例,2-33】,使用,reverse (),函数对列表进行反序排列。,,list = ['apple', 'Banana', 'pear', 'grap
35、e'];,,list.reverse(),,print(list),,程序的运行结果如下:,,['grape', 'pear', 'Banana', 'apple'],,【,例,2-34】,,list = ['apple', 'banana', 'pear', 'grape'];,,list.sort(),,list.reverse(),,print(list),,程序的运行结果如下:,,['pear', 'grape', 'banana', 'apple'],,11,.产生一个数值递增列表,,使用,range(),函数可以产生一个数值递增列表,它的基本语法结构如下:,,range(start
36、, end),,参数说明如下。,,,start,:一个整数,指定产生的列表的起始元素值。,start,为可选参数,默认值为,0,。,,,end,:一个整数,指定产生的列表的结束元素值。,,range(),函数返回一个列表,该列表由从,start,开始至,end,结束的整数组成。,,【,例,2-35】,,list1 = range(10),,list2 = range(11, 20),,#,打印,list1,,for index,value in enumerate(list1):,,print("list1,的第,%d,个元素值是,【%s】" %(index, value));,,#,打印
37、,list2,,for index,value in enumerate(list2):,,print("list2,的第,%d,个元素值是,【%s】" %(index, value));,12,.定义多维列表,,【,例,2-36】,一个定义二维数列表的例子。,,list2 = [["CPU", ",内存,"], [",硬盘,",",声卡,"]];,,【,例,2-36】,中列表,list2,的内容,,,【,例,2-37】,打印二维列表,,list2 = [["CPU", ",内存,"], [",硬盘,",",声卡,"]];,,for i in range(len(list2)):,,print
38、(list2[i]);,,运行结果如下:,,['CPU', ',内存,'],,[',硬盘,', ',声卡,'],,【,例,2-38】,,list2 = [["CPU", ",内存,"], [",硬盘,",",声卡,"]];,,for i in range(len(list2)):,,list1 = list2[i];,,for j in range(len(list1)):,,print(list1[j]),,运行结果如下:,,CPU,,内存,,硬盘,,声卡,,使用下面的方法获取二维列表元素的值,,列表名,[,索引,1] [,索引,2],【,例,2-39】,,list2 = [["CPU",
39、",内存,"], [",硬盘,",",声卡,"]];,,for i in range(len(list2)):,,for j in range(len(list2[i])):,,print(list2[i][j]),,运行结果,,CPU,,内存,,硬盘,,声卡,,2.4.2,元组(,tuple,),,元组与列表非常相似,它具有如下特性:,, 一经定义,元组的内容不能改变。,, 元组元素可以存储不同类型的数据,可以是字符串、数字,甚至是元组。,, 元组元素由圆括号括起来,例如:,,t = (1, 2, 3, 4),,1,.访问元组元素,,与列表一样,可以使用索引访问元组元素,方法如下:,,
40、元组,[,索引,],,【,例,2-40】,访问元组元素的例子。,,t = (1, 2, 3, 4),,print(t[0]),,print(t[3]),,程序打印元组中索引为,0,和,3,的元素,运行结果如下:,,1,,4,,2,.获取元组长度,,元组长度指元组中元素的数量。可以通过,len(),函数获取元组的长度,方法如下:,,Len(,元组名,),,【,例,2-41】,打印元组的长度。,,t = (1, 2, 3, 4),,print(len(t)),,运行结果为,4,。,,3,.遍历元组元素,,for i in range(len(tuple)):,,,访问,tuple [i],,【,例
41、,2-42】 for,语句和,range(),函数遍历列表。,,t = (',王二,', ',张三,', ',李四,', ',王五,');,,for i in range(len(t)):,,print(t[i]);,,程序的运行结果如下:,,王二,,张三,,李四,,王五,,使用,for,语句和,enumerate(),函数同时遍历列表的元素索引和元素值,,for,索引,,,元素值,in enumerate(list):,,,访问索引和元素值,,。,,【,例,2-43】 for,语句和,enumerate(),函数遍历列表,,list = [',王二,', ',张三,', ',李四,',
42、',王五,'];,,for index,value in enumerate(list):,,print(",第,%d,个元素值是,【%s】" %(index, value));,,程序的运行结果如下:,,第,0,个元素值是,【,王二,】,,第,1,个元素值是,【,张三,】,,第,2,个元素值是,【,李四,】,,第,3,个元素值是,【,王五,】,,4,.排序,,因为元组的内容不能改变,所以元组没有,sort(),函数。可以将元组转换为列表,然后再对列表排序,最后将排序后的列表赋值给元组。,,可以使用下面的方法将元组转换为列表。,,列表对象,= list(,元组对象,),,将列表转换为元组的方法
43、如下:,,元组对象,= tuple(,列表对象,),,【,例,2-44】,对元组进行排列。,,t = ('apple', 'banana', 'pear', 'grape');,,l = list(t);,,l.sort();,,t = tuple(l);,,print(t),,程序的运行结果如下:,,('apple', 'banana', 'grape', 'pear'),,使用,reverse(),函数对元组进行反序排列,,元组,.reverse(),,调用,reverse (),函数后,元组元素被反序排列。,,【,例,2-45】,使用,reverse (),函数对元组进行反序排列。,,t
44、 = ('apple', 'banana', 'pear', 'grape');,,l = list(t);,,l.reverse(),,t = tuple(l);,,print(t),,2.4.3,字典,,,1,.定义字典,,字典元素使用,{},括起来,例如,下面的语句可以定义一个空字典。,,d1 = {};,,也可以在定义字典时指定里面的元素,每个元素由键和值组成,键和值之间由冒号(,:,)分割,元素间由逗号(,,,)分割。例如:,,d2={'name':',小明,', 'sex':',男,','age':'18', 'score':'80'},,2,.打印字典,,可以直接使用,print
45、(),函数打印字典,方法如下:,,print(,字典名,),,【,例,2-46】,打印字典的内容。,,d={'name':',小明,', 'sex':',男,','age':'18', 'score':'80'},,print(d),,运行结果如下:,,{'score': '80', 'name': ',小明,', 'age': '18', 'sex': ',男,'},,3,.获取字典长度,,Len(,字典名,),,【,例,2-47】,打印字典的长度。,,d={'name':',小明,', 'sex':',男,','age':'18', 'score':'80'},,print(len(d))
46、,,运行结果为,4,。,,4,.访问字典元素,,字典由字典元素组成。对字典的管理就是对字典元素的访问和操作。可以通过下面的方法获取字典元素的值:,,字典名,[key],,key,是元素的键。,,【,例,2-48】,,d={'name':',小明,', 'sex':',男,','age':'18', 'score':'80'},,print(d['name']),,print(d['sex']),,print(d['age']),,print(d['score']),,程序打印列表中索引为,0,和,3,的元素,运行结果如下:,,小明,,男,,18,,80,,5,.添加字典元素,,可以通过赋值在字
47、典中添加元素,具体方法如下:,,字典,[,键,] =,值,,如果字典中不存在指定键,则添加;否则修改键值。,,【,例,2-49】,添加字典元素的例子。,,d={'name':',小明,', 'sex':',男,','age':'18'},,d['score'] = '80',,print(d),,运行结果如下:,,{'sex': ',男,', 'age': '18', 'name': ',小明,', 'score': '80'},,6,.合并,2,个字典,,可以使用,update(),函数将,2,个字典合并,具体方法如下:,,字典,1.update(,字典,2),,【,例,2-50】,合并,2
48、,个字典的例子。,,d1={'name':',小明,', 'sex':',男,'},,d2={'age':'18', 'score': '80'},,d1.update(d2),,print(d1),,运行结果如下:,,{'age': '18', 'name': ',小明,', 'score': '80', 'sex': ',男,'},,7,.删除字典元素,,使用,pop(),方法可以删除指定的字典元素,并返回删除的元素值。具体方法如下:,,字典名,.pop(,键,),,【,例,2-51】,使用,pop(),方法删除字典元素的例子。,,d={'age': '18', 'name': ',小明,
49、', 'score': '80', 'sex': ',男,'},,d.pop('score'),,print(d),,运行结果如下:,,{'name': ',小明,', 'sex': ',男,', 'age': '18'},,8,.判断字典是否存在元素,,可以使用,in,关键字判断字典中是否存在指定键的元素。其基本语法如下:,,键,in,字典,,如果字典中存在指定键的元素,则表达式返回,True,;否则返回,False,。,,【,例,2-52】,使用,in,关键字的例子。,,d={'age': '18', 'name': ',小明,', 'score': '80', 'sex': ',男,'}
50、,,if 'name1' in d:,,print(d['name1']),,else:,,print(',不包含键位,name1,的元素,'),,运行结果如下:,,不包含键位,name1,的元素,,9,.遍历字典元素,,可以使用,for.. in,语句遍历字典的键和值,方法如下:,,for key in,字典,.keys(): #,遍历字典的键,,访问 字典,[key],,for key in,字典,.values(): #,遍历字典的值,,访问 字典,[key],,【,例,2-53】,,d={'age': '18', 'name': ',小明,', 'score': '80', 'sex'
51、: ',男,'},,for key in d.keys(): #,遍历字典的键,,,print(',键,'+key+ ',的值:,'+ d[key]);,,程序的运行结果如下:,,键,score,的值:,80,,键,name,的值:小明,,键,sex,的值:男,,键,age,的值:,18,,【,例,2-54】,,d={'age': '18', 'name': ',小明,', 'score': '80', 'sex': ',男,'},,for value in d.values(): #,遍历字典的值,,,print(value);,,程序的运行结果如下:,,小明,,18,,男,,80,,10,
52、.清空字典,,使用,clear(),方法可以清空指定的字典所有元素。具体方法如下:,,字典名,.clear(),,【,例,2-55】,使用,clear (),方法清空字典元素的例子。,,d={'age': '18', 'name': ',小明,', 'score': '80', 'sex': ',男,'},,d. clear(),,print(d),,运行结果如下:,,{},,11,.字典的嵌套,,字典里面还可以嵌套字典,例如,,{'name':{'first':'Johney','last':'Lee'},'age':40},,可以通过下面的方式访问嵌套字典。,,字典,[,键,][,键,],
53、,【,例,2-56】,,d={'name':{'first':'Johney','last':'Lee'},'age':40},,print(d['name'][ 'first']),,运行结果如下:,,Johney,,2.4.4,集合,,集合由一组无序排列的元素组成,可以分为可变集合(,set,)和不可变集合(,frozenset,)。可变集合创建后可以添加元素,修改元素和删除元素。而不可变集合创建后则不能改变。,,1,.创建集合,,创建可变集合的例子。,,s = set('python'),,【,例,2-57】,创建可变集合的例子。,,s = set('python'),,print(ty
54、pe(s)),,print(s),,运行结果如下:,,,,{'t', 'o', 'y', 'p', 'n', 'h'},,使用,frozenset (),方法创建不可变集合,,s = frozenset('python'),,【,例,2-58】,创建不可变集合的例子。,,fs = frozenset('python'),,print(type(fs)),,print(fs),,运行结果如下:,,,,frozenset({'n', 'y', 'h', 'o', 'p', 't'}),,2,.获取集合长度,,Len(,集合名,),,【,例,2-59】,打印集合的长度。,,s = set('pyth
55、on'),,print(len(s)),,运行结果为,6,。,,3,.访问集合元素,,【,例,2-60】,遍历集合元素的例子。,,s = set('python'),,s = set('python'),,for e in s:,,print(e),,运行结果如下:,,n,,o,,t,,y,,h,,p,,4,.添加集合元素,,可以通过调用,add(),方法在集合中添加元素,具体方法如下:,,集合,.add(,值,),,,,,,提示,只能在可变集合中添加元素。不能在不可变集合中添加元素。,【,例,2-61】,添加一个集合元素的例子,,s = set('python'),,s.add('0'),,
56、print(s),,运行结果如下:,,{'t', 'y', 'h', 'p', 'o', '0', 'n'},,update(),方法将另外一个集合的元素添加到指定集合中,,集合,. update(,值,),,【,例,2-62】,添加多个集合元素的例子。,,s = set([1, 2, 3]),,s.update([4, 5, 6]),,print(s),,运行结果如下:,,{1, 2, 3, 4, 5, 6},,5,.删除集合元素,,可以使用,remove(),方法删除指定的集合元素。具体方法如下:,,集合名,. remove(,值,),,使用,clear(),方法可以清空指定的集合所有元素
57、。具体方法如下:,,集合名,.clear(),,【,例,2-63】,,s = set([1, 2, 3]),,s.remove(1),,print(s),,s.clear(),,print(s),,运行结果如下:,,{2 ,3},,set(),,6,.判断集合是否存在元素,,可以使用,in,判断集合中是否存在指定键的元素。其基本语法如下:,,值,in,集合,,如果集合中存在指定值的元素,则表达式返回,True,;否则返回,False,。,,【,例,2-64】,判断集合是否存在元素的例子。,,s = set([1, 2, 3]),,if 2 in s:,,print(',存在,']),,else
58、:,,print(',不存在,'),,运行结果如下:,,存在,,7,.遍历集合元素,,可以使用,for.. in,语句遍历集合的值,方法如下:,,for element in,集合,:,,,访问,element,,【,例,2-65】,使用,for.. in,语句遍历集合。,,s = set([1, 2, 3]),,for e in s: #,遍历集合,,,print(e);,,程序的运行结果如下:,,1,,2,,3,,8,.子集和超集,,操作符,实例,具体描述,==,A==B,如果,A,等于,B,,则返回,True,;否则返回,False,!=,A!=B,如果,A,不等于,B,,则返回,Tru
59、e,;否则返回,False,<,,A,,A>B,如果,A,是,B,的真超集,则返回,True,;否则返回,False,>=,A>=B,如果,A,是,B,的超集,则返回,True,;否则返回,False,【,例,2-66】,,s1 = set([1, 2]),,s2 = set([1, 2, 3]),,if s1!=s2:,,if s1
60、是,s1,的超集,'),,运行结果如下:,,s1,是,s2,的真子集,,s2,是,s1,的超集,,9,.集合的并集,,可以使用,|,操作符计算两个集合的并集。例如:,,s = s1 | s2,,【,例,2-67】,使用,|,操作符计算两个集合的并集。,,s1 = set([1, 2]),,s2 = set([3, 4]),,s = s1 | s2,,print(s),,运行结果如下:,,{1, 2, 3, 4},,使用,union(),方法计算两个集合的并集,,s = s1.union(s2),,【,例,2-68】,使用,union(),方法计算两个集合的并集。,,s1 = set([1, 2
61、]),,s2 = set([3, 4]),,s = s1.union(s2),,print(s),,运行结果如下:,,{1, 2, 3, 4},,10,.集合的交集,集合的交集由所有既属于集合,A,又属于集合,B,的元素组成。,,可以使用,&,操作符计算两个集合的交集。例如:,,s = s1 & s2,,【,例,2-69】,s1 = set([1, 2, 3]),,s2 = set([3, 4]),,s = s1 & s2,,print(s),,运行结果如下:,,{3},,使用,intersection (),方法计算两个集合的并集,s = s1. intersection (s2),,【,例
62、,2-70】,使用,intersection(),方法计算两个集合的并集。,,s1 = set([1, 2, 3]),,s2 = set([3, 4]),,s = s1.intersection(s2),,print(s),,11,.集合的差集,集合的差集由所有属于集合,A,但不属于集合,B,的元素组成。,,可以使用,-,操作符计算两个集合的差集。例如:,,s = s1 - s2,,【,例,2-71】,使用,-,操作符计算两个集合的差集。,,s1 = set([1, 2, 3]),,s2 = set([3, 4]),,s = s1 - s2,,print(s),,运行结果如下:,,{1, 2},,使用,difference (),方法计算两个集合的差集,s = s1. difference(s2),,【,例,2-72】,使用,difference(),方法计算两个集合的并集。,,s1 = set([1, 2, 3]),,s2 = set([3, 4]),,s = s1. difference(s2),,print(s),,
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。