Python程序设计-AI辅助编程-课件 第5章 序列类型_第1页
Python程序设计-AI辅助编程-课件 第5章 序列类型_第2页
Python程序设计-AI辅助编程-课件 第5章 序列类型_第3页
Python程序设计-AI辅助编程-课件 第5章 序列类型_第4页
Python程序设计-AI辅助编程-课件 第5章 序列类型_第5页
已阅读5页,还剩118页未读 继续免费阅读

下载本文档

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

文档简介

第五章

序列类型Python程序设计本章要点字符串类型序列类型序列通用操作range元组列表DeepSeek的使用学习目标了解Python中序列类型的分类及其通用操作方法;理解字符串、元组和列表的特点及适用场景;掌握索引、切片、拼接、重复等序列操作以及字符串格式化技巧;熟悉列表的创建、更新、删除、排序等操作,理解列表推导式和内置函数(map、zip、enumerate)的应用;培养数据组织与处理的能力,增强对程序逻辑结构的理解,树立高效利用资源和优化代码的意识。1序列类型序列类型在Python中,序列类型是一种重要的内置类型,它表示一系列有序的元素。常见的序列类型包括字符串(str)、列表(list)、元组(tuple)和range()函数返回整数序列。序列类型支持一些共同的操作,例如索引、切片、求长度、连接、重复、最大值、最小值和存在性测试等。s='2025年我要学习Python程序设计!'#字符串,可包含各类字符ls=[2025,'年','Python',[100,88]]#列表,可包含逗号分隔的各类数据t=(2025,'年','Python',[100,88])#元组,可包含逗号分隔的各类数据r=range(1,10,2)#range,整数序列1,3,5,7,92序列通用操作序列的通用操作操作符描述s[i]索引,返回序列s的第i项s[start:end[:step]]切片,返回由s[start]、s[start+step]、s[start+2*step]、…组成的s的子序列(索引不包括end);step缺省时,步长为1,返回由s中索引为start到end(不含end)的元素构成的子序列。len(s)返回序列s的长度(包含元素的个数)s.count(x)序列s中含x的个数s.index(x[,i[,j]])序列中第一个x的索引值,i值表示从索引i处开始查找x,j表示x查找范围在i和j之间。xins如果字符串x与字符串s中的某一子串相等,返回True,否则返回False;当x与s的某一元素相等时返回True,否则返回False。xnotins如果字符串x与字符串s中的任一子串均不相等,返回True,否则返回False;当x与s中任一元素均不相等返回True,否则返回False。s+t拼接两个序列s和ts*n或n*sn为整数,将序列s重复n次生成新序列min(s,*[,key,default])返回序列

s的最小值,key关键字缺省时按元素值比较max(s,*[,key,default])返回序列

s的最大值,key关键字缺省时按元素值比较索引对于字符串,其中的每个字符拥有一个序号,对于元组、列表或range对象等,序列中每个元素拥有一个序号。序列数据内部的字符或元素按照顺序有序存储,可以使用“序号”取得相应的数据项。所谓索引是指通过序列数据的序号返回其对应值的操作。索引的基本语法格式:序列名[序号]Python提供了两种索引方式:正向索引和逆向索引,这两种方式可以同时使用,使得对序列进行索引和切片操作更加灵活。索引#字符串序列s='HelloPython!'print(s[4])#按序号正向索引,返回索引号为5的字符'o'print(s[-1])#按逆向序号索引,返回最后一个字符'!'#序列类型—列表scores=[94,89,96,88,92,86,69,95,78,85]print(scores[0])#按序号正向索引,返回索引号为0的元素94print(scores[4])#按序号正向索引,返回索引号为3的元素92print(scores[-1])#按逆向序号索引,返回倒数第1个元素85print(scores[-3])#按逆向序号索引,返回倒数第3个元素95#序列类型—range()函数产生的数字序列r=range(10)#获得0,1,2,3,4,5,6,7,8,9的序列对象print(r[3])#按序号正向索引,返回索引号为3的元素3print(r[-3])#按逆向序号索引,返回倒数第3个元素7索引正向索引和逆向索引使得对序列的元素访问非常方便,尤其在需要同时从序列的开头和结尾进行操作时。这对于处理各种类型的序列数据非常有用。注意:当使用的索引值超出列表现有数据的索引范围时,Python将会产生“索引超出范围”的错误。索引值必须是整数。print(scores[10])#输出IdexError:listindexoutofrangeprint(scores[10/5])#输出TypeError:listindicesmustbeintegersorslices,notfloat索引cv=['李明',35,('博士','副教授'),[2003,7,30]]#包含字符串、数字、元组和列表等多种类型数据的列表print(cv[0])#序号为0的元素为字符串:'李明'print(cv[0][0])#序号为0的元素中序号为0的元素为:'李'print(cv[2])#序号为2的元素为元组('博士','副教授')print(cv[3])#序号为3的元素为列表[2003,7,30]print(cv[2][0])#序号为2的元素中序号为0的元素为:博士print(cv[3][1])#序号为3的元素中序号为1的元素为:7当索引结果依旧是序列类型的数据时,能够继续运用索引的办法获取结果序列里的数据。实例5.1索引方法实现百分制转五分制用字符串索引的方法对百分制成绩转五分制成绩的程序进行简化。将区间0-100划分为[0,10)、[10,20)、[20,30)、[30,40)、[40,50)、[50,60)、[60,70)、[70,80)、[80,90)、[90,100)、[100]共11个区间。各区间成绩分别对应五分制的“E、E、E、E、E、E、D、C、B、A、A”。如果将落在各区间的数分别对10做整除,正好可以得到0,1,2,3,4,5,6,7,8,9,10共11个数字,这些数字正好是字符串“EEEEEEDCBAA”中每个字符的序号。根据用户输入的分数整除10,去掉其个位上的数字,得到其十位上的数字“i”,字符串中以“i”值作为索引的字符正好对应该分数段的五分制成绩。实例5.1索引方法实现百分制转五分制score=float(input())#输入为非负浮点数degree='EEEEEEDCBAA'#序号0,1,2,3,4,5,6,7,8,9,10ifscore>100orscore<0:#排除不合法数据print('Dataerror!')else:i=int(score//10)#浮点数整除结果是浮点数,用int()取整使索引号为整数print(degree[i])#degree[i]返回其中序号为i的字符score接受的是浮点数的输入,而浮点数整除10的结果仍为浮点数,如float(85)//10=8.0;而索引号必须是整数,故需要使用int()对整除结果取整。实例5.1索引方法实现百分制转五分制score=float(input())degree='EEEEEEDCBAA'print('Dataerror!')if(score>100orscore<0)elseprint(degree[int(score//10)])使用条件表达式切片切片是指对序列数据(字符串、列表、元组或range等序列类型)通过索引获取序列数据中一定范围的数据。切片操作会将按照给定的索引和步长,截取序列中的对象组成的新的片段,单个索引返回值可以视为只含有一个对象的片段。Python提供切片的方法是:seq[start:end:step]参数说明:seq:字符串及列表、元组或range等序列类型数据对象名。start:表示切片开始位置的元素序号,是第一个要返回的元素的索引号,正索引位置默认为0,逆向索引位置默认为负的序列长度,即-len(seq);切片从第一个元素开始时,start可以省略。end:表示切片结束位置的元素序号,正向索引最后一个位置为序列长度减1,即:len(seq)-1;逆向索引结束位置序号默认为-1;切片到最后一个元素时,end可以省略。step:表示取值的步长,默认为1,步长值可以为负值,但不能为0。切片切片的过程是从第一个要返回的元素开始,到第一个不想返回的元素结束。即在切片seq[start:end:step]中,包含seq[start],不包括seq[end]。所以如果想返回包含最后一个元素(len(s)-1)的切片时,结束位置的序号end应该设为len(s)或省略结束位置序号,即应该使用切片seq[start:len(s)]或seq[start:]。对于序列类型的数据而言,能够从左、右两个方向来取值。索引正方向是从左往右取值,起始位置为0;逆向则是从右往左取值,起始位置为-1。所以,任意一个序列结构数据的索引范围是在-len(seq)到len(seq)-1范围内的连续整数。

切片字符串序列类型切片示例s='HelloWorld!'print(s[6:8])#根据序号[6:8]切片,输出不包括结束序号的字符'Wo'print(s[:5])#从起点到序号为5的位置切片,不包括5,'Hello'print(s[6:])#从序号6向后到字符串结束切片,输出'World!'print(s[-3:-1])#负向索引,不包含右边界元素,输出'ld'print(s[6:-1])#混用正负索引,输出'World'print(s[::])#从字符串开始到结束进行切片,输出'HelloWorld!'print(s[-1::-1])#按步长为-1进行切片,输出'!dlroWolleH'print(s[::2])#步长为2,输出序号为偶数的元素,输出'HloWrd'切片列表类型切片示例scores=[94,89,96,88,92,86,69,95,78,85]print(scores[5:])#从5到序列结束的元素,输出[86,69,95,78,85]print(scores[1:-1])#混用索引[89,96,88,92,86,69,95,78]print(scores[1::2])#步长为2,隔一个,输出[89,88,86,95,85]print(max(scores[1:]))#切片返回除序号0的列表,max返回其最大值96print(sum(scores[1:]))#利用sum()函数对切片获取的序列求和,输出778#len()获得切片后的列表元素个数,输出切片后的序列元素的平均值86.44444444444444print(sum(scores[1:])/len(scores[1:]))切片range类型切片示例r=range(10)#获得0,1,2,3,4,5,6,7,8,9的序列print(r[3:6])#对range(10)切片,返回新对象range(3,6)print(sum(r[1::2]))#输出序号为奇数的元素的和25print(sum(r[0::2])/len(r[0::2]))#输出序号为偶数的元素的平均值4.0包含字符串、数字、元组和列表等多种类型数据的列表切片示例cv=['李明',35,('博士','副教授'),[2003,7,30]]print(cv[2:4])#切片得到新列表[('博士','副教授'),[2003,7,30]]实例5.2回文字符串一个字符串,如果各字符逆序排列与原字符串相同,则称为回文,如“12321”、“上海自来水来自海上”,用户输入一个字符串,判断该字符串是否为回文,如是回文输出“True”,否则输出“False”。切片s[start:end:step]参数设置,令步长step值为-1,从最后一个字符开始,到字符串开始字符结束进行切片,即构造切片s[-1::-1]或s[::-1],可以获得反转后的字符串。比较反转后的字符串与原字符串是否相同,相同则是回文。实例5.2回文字符串s=input()#输入一个字符串ifs==s[-1::-1]:#s[-1::-1]将字符串反转,判断反转后是否与原字符串相等print('True')else:print('False')序列拼接与重复序列拼接是通过“+”将两个相同类型的序列拼接为一个包含参与拼接的序列中所有元素的新序列。大多数序列类型,包括字符串、元组与列表等都支持拼接与重复的操作。但range序列类型不支持序列拼接或重复,尝试拼接或重复range对象时,会抛出一个异常。序列重复s*n是将一个序列s乘以一个整数n产生一个新序列,新序列是s中的元素重复n次。当n小于或等于0时会被当作0来处理,此时序列重复0次的操作将产生一个空序列。序列拼接与重复year=2023s='年'print('='*10) #字符串重复10次print(str(year)+s)#字符串拼接,整数参与拼接要先转为字符串print('='*10)序列重复操作只是多次引用原序列中的元素,不会影响原序列s中的项原序列s中元素发生变化将会导致通过序列重复操作产生的序列发生变化ls=[[]]*3#重复只包含一个空列表元素的列表3次print(ls)#重复引用空列表元素3次产生一个新列表[[],[],[]]ls[0].append(3)#向列表中序号为0的元素中增加一个元素3print(ls)#输出:[[3],[3],[3]],列表ls中的元素是重复引用实例5.3输出身份证信息中国的居民身份证号是一个18个字符的字符串,其各位上的字符代表的意义如下:第1、2位数字表示:所在省份的代码,例如江西的省份代码是36;第3、4位数字表示:所在地区的代码,例如南昌市代码是01;第5、6位数字表示:所在市县的代码,例如东湖区的代码是02;第7--14位数字表示:出生年、月、日;第15、16位数字表示:身份证注册地的派出所的代码;第17位数字表示性别:奇数表示男性,偶数表示女性;第18位数字是校检码,用来检验身份证号的正确性。校检码可以是0-9中的一个数字,也可能是字母X。输入一个身份证号,编程判断其长度是否正确;输出其出生年月日。(注:本书测试所用身份证号是用程序模拟生成的虚拟号码)实例5.3输出身份证信息#身份证中提取生日,涉及到判断、字符串长度、切片、拼接等知识点id_number=input()iflen(id_number)==18:#测试输入的字符串长度是否为18year=id_number[6:10]#id_number序号6、7、8、9字符串,年份month=id_number[10:12] #id_number序号为10、11的字符串,月份day=id_number[12:14]#id_number序号为12、13的字符串,日期print('出生于'+year+'年'+month+'月'+day+'日')#字符串拼接print(f'出生于{year}年{month}月{day}日')#f-string方法输出else:#输入的字符串长度不是18时,输出错误提示信息print('输入的身份证号位数错')使用len()函数测字符串的长度并判断长度是否为18;再使用字符串切片的方法获取身份证号码中代表出生年月日的子串,用“+”连接后输出。实例5.4约瑟夫环问题有11个人围坐在一张圆桌周围,从第1个人开始报数,数到3的那个人出列,他的下一个人又从1开始报数,数到3的那个人又出列;依此规律重复下去,直到圆桌周围的人数少于3时结束,输出剩下的人的序号。问题中要求每数到3的人出列,那么最后只剩2人时结束。11个人围成一个圈可以用一个列表来表示,每次将列表的第3个元素去除,同时将前2个元素拼接到列表的末尾,这样就可以循环执行,直至列表长度小于3为止。实例5.4约瑟夫环问题ls=list(range(1,12))#构造一个元素为1到11的列表whilelen(ls)>=3:#列表长度大于等于3时,去掉第3个元素print(ls[2],end='')#第3个元素序号为2,输出离开列表的序号ls=ls[3:]+ls[:3-1]#前2个元素拼接到第3个元素后的列表末尾print(ls)#循环内输出,查看剩余序号,最后剩[2,7][1,2,3,4,5,6,7,8,9,10,11]3[4,5,6,7,8,9,10,11,1,2]6[7,8,9,10,11,1,2,4,5]9[10,11,1,2,4,5,7,8]1[2,4,5,7,8,10,11]5[7,8,10,11,2,4]10[11,2,4,7,8]4[7,8,11,2]11[2,7,8]8[2,7][2,7]#剩余元素数据变化过程实例5.4约瑟夫环问题#长度为n的列表,循环删除元素m,把前m-1个元素拼接到列表末尾n,m=map(int,input().split())#输入切分为列表并映射为整数ls=list(range(1,n+1))#构造一个元素1到n的列表whilelen(ls)>m-1:#列表长度大于m-1时,去掉第m个元素

ls=ls[m:]+ls[:m-1]#前m-1个元素拼接到m以后的列表末尾print(ls)#循环结束后,输出列表中剩下的元素约瑟夫环问题可以扩展为一圈共有n个人,从1开始报数,报到m的人出列,然后重新开始报数,剩余人数小于m时停止,输出每次出列的人的序号。成员测试Python提供了“in”和“notin”运算符,用于测试某对象是否为字符串、列表或元组等序列或集合、字典的成员,返回布尔值(True或False)。应用“in”测试时,如果该对象在指定的序列等中存在,则返回True,否则返回False。应用“notin”测试时,正好相反,如果该对象在指定序列等中不存在,则返回True,否则返回False。成员测试一般用于条件运算,根据测试结果决定执行后续程序中的某个分支。famous_book=['水浒传','三国演义','西游记','红楼梦']new_book=input()ifnew_bookinfamous_book:print('这是中国四大名著之一')else:print('不是中国四大名著之一')实例5.5温度转换温度的表示有摄氏度(Celsius)和华氏度(Fabrenheit)两个体系。用户输入带单位的温度数值和单位,请编写程序将用户输入的华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度。‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬转换算法如下:(C表示摄氏度、F表示华氏度)‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬C=(F-32)/1.8‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬F=C*1.8+32‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬要求输入输出的摄氏度单位用大写字母“C”或小写字母“c”,华氏度单位用大写字母“F”或小写字母“f”。温度可以是整数或小数,如:12.34C指摄氏12.34度;87.65F指华氏87.65度。输出转换后的温度,保留小数点后2位小数。‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬实例5.5温度转换temperature=input()#输入数度数值,以温度单位符号结尾iftemperature[-1]in'Ff':#符号是否在'Ff'中存在,也可用['F','f']C=(float(temperature[:-1])-32)/1.8#用华氏转摄氏公式计算print("{:.2f}C".format(C))#输出转换后温度和单位eliftemperature[-1]in'Cc':#符号是否在'Cc'中存在F=1.8*float(temperature[:-1])+32#用摄氏转华氏公式计算print("{:.2f}F".format(F))#输出转换后温度和单位else:#末位不是“Cc”和“Ff”中的字符print('Dataerror!')#输出错误提示3字符串类型字符串类型字符串是Python中最常用的数据类型,可以使用下面提及符号将0个或多个字符括起来字符串。01使用一对单引号('')02一对双引号("")03一对三引号(''''''或"""""")字符串的创建1.将一个或多个字符放在引号中用单引号创建的字符串中可以包含双引号,例如:'这是字符串,允许包含"双引号"'用双引号创建的字符串中可以包含单引号,例:"这是字符串,允许包含'单引号'"用三个引号括起的字符也可以作为字符串来进行处理,其间可以包含单引号、双引号和回车符。如下述程序可以把一首宋词以字符串形式赋值给变量s,输出时会保留原文中的换行等格式。三引号也用于Python的注释,当把这段三引号引起来的内容赋值给变量或作为函数的参数时,按字符串处理;当三引号作为单独一条语句出现时,按注释处理。字符串的创建1.将一个或多个字符放在引号中#三引号用于字符串可以保留原有格式不变s='''

驿外断桥边,寂寞开无主。已是黄昏独自愁,更著风和雨。无意苦争春,一任群芳妒。零落成泥碾作尘,只有香如故。'''print(s)字符串的创建2.应用Python提供的str()类,返回一个对象的字符串形式str()的语法为:str(object=b'',encoding='utf-8',errors='strict')如果encoding或errors均缺省时,str(object)返回object对象的“非正式”或格式良好的字符串表示,如果str()参数为空则返回空字符串。如果encoding或errors至少给出其中之一时,则object对象应该是一个字节类对象,如bytes或bytearray。print(type(str(1234)),str(1234)[1])#<class'str'>2print(type(str(1.234)),str(1.234)[0:3])#浮点数转字符串<class'str'>'1.2'print(type(str(1234)),str(1234)[1])#整数转字符串<class'str'>'2'print(type(str([1,2,3])),str([1,2,3])[1])

#列表转字符串<class'str'>'1'print(type(str((1,2,3))),str((1,2,3))[1])

#元组转字符串<class'str'>'1'print(type(str({1,2,3})),str({1,2,3})[1])

#集合转字符串<class'str'>'1'#字典转字符串<class'str'>'a'print(type(str({'a':1,'b':2,'c':3})),str({'a':1,'b':2,'c':3})[1:4])#传入encoding参数,函数将以此编码读取二进制流的内容“人生苦短,我用Python!”s=b'\xe4\xba\xba\xe7\x94\x9f\xe8\x8b\xa6\xe7\x9f\xad\xef\xbc\x8c\xe6\x88\x91\xe7\x94\xa8Python!'print(str(s,encoding='utf-8'))字符串常量Python内置了一些字符串常量,当需要构建下表右侧字符集时可以使用与之相对应的字符串常量,如string.digits代表'0123456789',可用于测试一个字符是不是属于'0123456789'这个字符集。若要使用字符串常量时,则需要先importstring字符串常量字符集string.ascii_letters'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'string.ascii_lowercase'abcdefghijklmnopqrstuvwxyz'string.ascii_uppercase'ABCDEFGHIJKLMNOPQRSTUVWXYZ'string.digits'0123456789'string.hexdigits'0123456789abcdefABCDEF'string.octdigits'01234567'.string.punctuation'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'string.printable'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~\t\n\r\x0b\x0c'string.whitespace'\t\n\r\x0b\x0c'实例5.6分类统计字符个数用户输入一个字符串,以回车结束,统计字符串里英文字母、数字字符和其他字符的个数(回车符代表结束,不计入统计)。string.ascii_letters:

'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'string.digits:

'0123456789'实例5.6分类统计字符个数importstringstr=input()letter,digit,other=0,0,0#用于计数的变量设初值为0forsinstr:#对字符串进行遍历,s依次取值为字符串中的字符ifsinstring.ascii_letters:#如果s在字母常量中存在letter=letter+1#字母数量增加1个elifsinstring.digits:#如果s在数字常量中存在digit=digit+1#数字数量增加1个else:other=other+1#否则其他增加1个print("letter={},digit={},other={}".format(letter,digit,other))字符串的表示Python3.x完全支持中文,默认使用UTF-8编码。ASCII字符用一个字节表示。UTF-8编码是可变长度的编码,它用1到6个字节编码Unicode字符。常用中文字符用UTF-8编码占用3个字节(大约2万多字),但超大字符集中的更大多数汉字要占4个字节,某些生僻字可能用六个字节表示。在UTF-8编码环境下,任何一个数字、英文字母、汉字都被按一个字符进行对待和处理。s1='江西省南昌市'#6个中文字符s2='jiangxi'#5个英文字符print(len(s1),len(s2))#len()是测试长度函数,可返回括号中字符串的字符数字符串的遍历字符串的遍历是指用循环的方法依次获取字符串中的每个字符,可按如下方法遍历字符串。

string为字符串,变量c依次被赋值为字符串中的字符,循环次数为字符串中字符个数#字符串遍历forcinstring:语句块实例5.7字符串加密在一行中输入一个包括大小写字母和数字的字符串,编程将其中的大写字母用该字母后的第4个字母替代,其他字符原样输出,实现字符串加密。原串与加密串之间的关系:大写字母用该字母后的第4个字母替代:原串的字符ABCD…VWXYZ加密后的字符EFGH…ZABCD可得出结论:加密前的字符与加密后的字符在不同串的同一位置。实例5.7字符串加密#将其中的大写字母用该字母后的第4个字母替代,其他字符原样输出p='ABCDEFGHIJKLMNOPQRSTUVWXYZ'#原字符序列s='EFGHIJKLMNOPQRSTUVWXYZABCD'#替换字符序列plaincode=input()#输入的明文字符串ciphertext=''#空字符串,用于存放加密字符串forcinplaincode:#遍历输入的明文字符串n=p.find(c)#返回c在字符串p中的位置序号,找不到时返回-1ifn==-1:#表示字符c在序列p中不存在,不是大写字母ciphertext=ciphertext+c#将原字符拼接到ciphertext上else:#字符为大写字母时,用序列s中对应位置的字母替换ciphertext=ciphertext+s[n]#将替换的字符拼接到ciphertext上print(ciphertext)#输出加密后的字符串字符串序列操作字符串是文本序列类型数据,支持序列的拼接(+)、重复(*)、索引[i]、切片[m:n]、测试长度(len(s))、最大值(max(s))、最小值(min(s))和存在性测试等操作。字符串在进行比较运算时遵循的规则:首先比较两个字符串中的第一个字符,如果相等则继续比较下一个字符,依次比较下去,直到两个字符串中的字符不相等时,其比较结果就是两个字符串的比较结果,后续字符将不再被比较。两字符进行比较时,比较的是字符的Unicode值,它可用函数ord(x)获得。字符串序列操作s1='2023年's2='新年快乐!'print('='*15)#字符串重复12次print(s1+s2)#字符串拼接操作print('='*15)print(max(s1+s2))#输出字符串中unicode值最大的字符,!print(min(s1+s2))#输出字符串中unicode值最小的字符,0print(ord('年'),ord('0'))#输出“年”的unicode值24180和0的unicode值48字符串序列操作ls=['a','baa','bcde','de']print(max(ls))#比较字符串中各字符的ASCII值,d最大,输出deprint(min(ls))#比较字符串中各字符的ASCII值,a最小,输出aprint(max(ls,key=len))#比较列表中各字符串长度,bcde最大print(min(ls,key=len))#比较列表中各字符串长度,a最小,输出al=['01','9','10','5']print(max(l))#比较列表中各字符串,'9'最大print(max(l,key=int))#按各元素转整型后比较,'10'转整型为10,最大常用字符串处理方法方法名描述str.upper()转换字符串str中所有字母为大写str.lower()转换字符串str中所有字母为小写str.strip()用于移除字符串头尾指定的字符(缺省时去掉空白字符,包括\t、\n、\r、\x0b、\x0c等)str.join(iterable)以字符串str作为分隔符,将可迭代对象iterable中所有的字符串元素拼接为一个新的字符串。当iterable中存在非字符串元素时,抛出一个TypeError异常。str.split(sep=None,maxsplit=-1)通过指定分隔符sep对字符串str进行切片,将一个字符串切分成包含多个字符串的列表,缺省时根据空格切分,可指定逗号或制表符等。maxsplit值存在且非-1时,最多切分maxsplit次。str.count(sub[,start[,end]])返回sub在字符串str里面出现的次数,如果start或者end指定则返回指定范围内sub出现的次数str.find(sub[,start[,end]])检测sub是否包含在字符串str中,如果start和end指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1str.replace(old,new[,count])把字符串str中的old替换成new,如果count指定,则替换不超过count次,否则有多个old子串时全部替换为new。str.index(sub[,start[,end]])返回子串存在的起始位置。跟find()方法一样,只不过如果sub不在字符串str中会抛出一个异常.for<var>in<string>对字符串string进行遍历,依次将字符串string中的字符赋值给前面的变量var常用字符串处理方法示例:strip()函数,用于移除字符串头尾指定的字符s='0089840'print(s)s=s.strip('0')#去除字符串首尾的指定字符,参数为空时,去除所有空白字符print(s)当strip()函数的参数缺省时,默认去掉字符串首尾的空白字符(不可见字符),包括“\t(制表符)”、“\n(换行符)”、“\r(回车符)”等实例5.8隐私信息处理身份证号和手机号属于个人隐私信息,编一个程序,将用户输入的手机号的4~7位和身份证号的7~14位用“*”替换。为简化问题,设定用户输入身份证号或手机号带中文描述,中间不加空格或其他符号,即输入格式为:身份证号+18位数字或手机号+11位数字。例如:身份证机例5.8隐私信息处理可以用切片输出与字符串拼接方法实现;也可以使用replace()函数完成指定字符的替换,用replace()函数时,注意要加参数限定只替换一次,否则,当字符串中有与需替换的字符串相同的子串时,也会被替换掉。#隐私处理s=input()#用户输入一个字符串,赋值给字符串变量sif'身份证号'ins:#若“身份证号”在字符串s中在,执行下面语句块

print(s[:10]+'*'*8+s[-4:])#用字符串切片和字符串连接的方法实现

print(s.replace(s[10:18],'*'*8))

#用字符串替换的方法实现,用8个*替换切出来的部分print(s)#未重新赋值给s,输出s,查看其值未改变elif'手机号'ins:#若“手机号”在字符串s中,执行下面语句块

print(s[:6]+'*'*4+s[-4:])#用字符串切片和连接的方法实现

print(s.replace(s[6:10],'****',1))#用字符串替换的方法实现,1表示只替换1次

s=s.replace(s[6:10],'****',1)#用替换后的字符串重新给s赋值print(s)#输出新的s值else:print('不包含身份证号或手机号')实例5.9恺撒密码在密码学中,恺撒密码是一种最简单且广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都替换为按字母表向后/前偏移一定位置后所对应的字母。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。输入一个字符串明文,再输入一个正整数,代表偏移量,用恺撒密码对明文进行加密后输出。实例5.9恺撒密码实现的方法有很多,这里给出一种用字符映射转换方法实现的方案#字符映射转换方法实现importstringstr=input()number=int(input())lower=string.ascii_lowercase

#小写字母序列upper=string.ascii_uppercase#大写字母序列before=string.ascii_letters

#所有字母序列after=lower[number:]+lower[:number]+upper[number:]+upper[:number]#密码序列table=''.maketrans(before,after)#创建映射表print(str.translate(table))字符串格式化使用format函数格式化字符串。调用format()方法后会返回一个新的字符串,其语法格式:<模板字符串>.format(<逗号分隔的参数>)print("{},{}是最受欢迎的语言,年薪{}万元。".format("2023年","PYTHON",21.4))print("{2},{1}是最受欢迎的语言,年薪{0}万元。".format(21.4,"PYTHON","2023年"))print("{}{}{}{}".format("圆周率",3.1415926,"...",'是无理数'))字符串格式化模板字符串部分使用多个用大括号“{}”表示可填充数据的位置,用于接收不同类型的变量或数据。大括号中没有序号时,按照format()中参数值出现的顺序进行替换;大括号中有序号时,按照format()中实参进行替换。注意:参数序号从0开始。字符串格式化format()方法中<模板字符串>的大括号中除了包括参数序号,还可以包括格式控制信息,其语法格式:{<参数序号>:<格式控制标记>}其中,<格式控制标记>用来控制参数显示时的格式,

包括:<填充><对齐><宽度>,<.精度><类型>6个字段整数:<填充><对齐><宽度><,><.精度><类别>参数序号引导符号填充字符默认使用空格</>/^依次为左/右/居中对齐输出字符宽度数字千位分隔符浮点数小数位数字符串最大输出长度b/d/o/x/X2/10/8/16/16进制c字符

n与d相同,但会使用当前区域设置来插入适当的数字分隔符e/E浮点数科学记数法形式f/F浮点数定点表示法形式g/G浮点数通用形式%浮点数百分比形式字符串格式化print('{:b}'.format(15))#b表示将整数转为二进制print('{:>22,.3f}'.format0))#占22字符,居右,千位分隔,保留3位小数print("{}{:.2f}{:.4}".format("圆周率",3.1415926,'是无理数的一个典型例子'))#.2f表示浮点数截取2位小数;.4表示将传入的字符串截取4个字符print('{:*<20}'.format('开始注释'))#占位宽度20字符,传入的字符居左,其他位置用*填充print('{:*^20}'.format('这是注释'))#居中print('{:^20}'.format('无填充字符'))#居中,无填充print('{:*>20}'.format('注释结束'))#居右对齐转义字符反斜杠(\)是一个特殊字符,在字符串中表示转义,该字符与后面相邻的一个字符共同组成了一个特定的含义。在格式化输出字符串时,可以用转义字符实现一些特殊的格式控制。Python中有很多的转义字符符号描述示例\n换行n:newline,用于行末,表示输出时到当前位置本行结束,后面字符在新的一行输出\r回车r:return,回车,Macos下表示换下一行\t水平制表符功能与键盘上tab键相同,光标水平移动若干个字符,一般3个字符,也有解析成4或6个字符\(在行尾时)续行符为避免一行太长,排版时在前一行末尾加“\”,解释器会将下一行内容接在前行末尾。\\反斜杠符号用于在字符串中输出一个反斜杠“\”\'单引号用于在字符串中输出一个单引号\"双引号用于在字符串中输出一个双引号\b退格(Backspace)使光标回退一格,清除前面一个字符转义字符示例print("Hesaid:\"We'vebeengoodfriends,haven'twe?\"")print('Hesaid:"We\'vebeengoodfriends,haven\'twe?"')print('\t静夜思\n\t李白\n床前明月光,疑是地上霜。\n举头望明月,低头思故乡。\n')4rangerangerange()函数可以产生一个不可变的等差数列(算术级数),常用于for循环中。在需要使用一个等差数列时,可以使用range()函数生成;range()函数产生数字序列的既可用于控制循环,又可应用于很多数学问题的求解。range()函数语法:range(stop)

range(start,stop[,step])range生成的内容r[i]=start+step*i当step为正数,要求i>=0且r[i]<stop当step为负数,要求i>=0且r[i]>stoprangerange()具有一些特性:①start、stop、step都必须是整数,否则抛出TypeError异常。当start值小于stop值时,返回的序列为空。②如果start参数缺省,默认值为0;如果step参数缺省,默认值为1;当试图设置step为0时,会抛出ValueError异常。③当step是正整数时,产生的序列递增;当step为负整数时,生成的序列递减。④range()函数产生一个左闭右开的序列

如:range(4)生成一个序列:0,1,2,3。rangerange()具有一些特性:⑤要全部输出range()生成的数字序列,可以用print(list(range(n)))或print(tuple(range(n)))的方法,将生成的序列转成列表或元组的形式输出,也可以用“*”将其内容解包输出。⑥range()函数产生的可迭代对象是不可变数据类型,只支持索引、切片、成员测试,求长度等对序列的读取操作,但不可修改其中的数据。rangeprint(range(5))#输出range(0,5)print(list(range(5)))#输出[0,1,2,3,4]print(*range(5))#输出01234foriinrange(5):print(i,end='')#01234print(tuple(range(0,-10,-1)))#输出(0,-1,-2,-3,-4,-5,-6,-7,-8,-9)print(list(range(1,11)))#输出[1,2,3,4,5,6,7,8,9,10]print(list(range(0,40,5)))#输出[0,5,10,15,20,25,30,35]print(list(range(0)))#range(0)输出[]print(list(range(1,0)))#步长为1,stop<start时,输出[]rangerange()函数相对于列表和元组的优点在于占用内存固定,且较小,它仅存储start、stop和step值,在需要时通过计算生成序列中的每个值。r=range(10)print(list(r[2:4]))#输出[2,3]r=range(0,20,2)print(list(r))#输出[0,2,4,6,8,10,12,14,16,18]print(list(r[:5]))#输出[0,2,4,6,8]print(11inr)#测试11是否在r对象中,输出Falseprint(10inr)#测试10是否在r对象中,输出True5元组元组元组使用一对圆括号“()”来存放一组数据,数据项之间用逗号“,”隔开。元组和列表最大的区别在于:列表是可变数据类型(mutable),而元组是不可变数据类型(immutable)。元组数据产生后,其内部元素无法增加、删除和修改,可近似将元组看作为“常量列表”。元组中的每个数据项称为一个元素,各元素类型可以相同,也可以不同,也可以将列表或元组作为元组的元素。tupa=(1,2,3,

温馨提示

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

评论

0/150

提交评论