收藏 分销(赏)

Python电子61组合数据类型.pptx

上传人:a199****6536 文档编号:4762782 上传时间:2024-10-12 格式:PPTX 页数:72 大小:461.92KB 下载积分:16 金币
下载 相关 举报
Python电子61组合数据类型.pptx_第1页
第1页 / 共72页
Python电子61组合数据类型.pptx_第2页
第2页 / 共72页


点击查看更多>>
资源描述
Python语言程序设计保湿成分:甘油,维他命B5,维他命E,乳酸,矿脂,海藻提取物,丙二醇,聚乙二醇,透明质酸(玻尿酸),荷荷芭油,氨基酸,水解胶原蛋白,天然保湿因子NMF,卵磷脂,神经酰胺,胆固醇,硬脂酸酯,豆蔻酸酯,棕榈酸酯,甘油酸酯,山梨醇,尿素,羟基酸和糖类等,不饱和亚油酸,亚麻酸,花生四烯酸,各种维生素等,各种植物油脂。美白成分:维他命B3,维他命C,果酸,曲酸,乳酸,鞣花酸,熊果苷,甘草、桑树的提取物,氨基酸多肽,VC及其衍生物、水杨酸及其衍生物、凝血酸、VB3、甘草黄酮、光苷草定,芦荟,樱桃,柠檬。抗皱成分:维他命A,维他命C,维他命E,胶原蛋白,弹力蛋白,植物胎盘素,六元胜肽,透明质酸(玻尿酸),氨基酸多肽(胜肽),石榴多酚,辅酶Q10,虾青素,原花青素,葡萄籽,橄榄叶,石榴,绿茶,白茶。还有中草药的人参,银杏,灵芝等。橄榄油、香料、皂基橄榄油、香料、皂基第6章组合数据类型组合数据类型概述序列类型计算机不仅对单个变量表示的数据进行处理,更多情况,计算机需要对一组数据进行批量处理。一些例子包括:给定一组单词python,data,function,list,loop,计算并输出每个单词的长度;给定一个学院学生信息,统计一下男女生比例;一次实验产生了很多组数据,对这些大量数据进行分析;序列类型组合数据类型能够将多个同类型或不同类型的数据组织起来,通过单一的表示使数据操作更有序更容易。根据数据之间的关系,组合数据类型可以分为三类:序列类型、集合类型和映射类型。序列类型序列类型是一个元素向量,元素之间存在先后关系,通过序号访问,元素之间不排他。集合类型是一个元素集合,元素之间无序,相同元素在集合中唯一存在。映射类型是“键-值”数据项的组合,每个元素是一个键值对,表示为(key,value)。序列类型序列类型序列类型是一维元素向量,元素之间存在先后关系,通过序号访问。当需要访问序列中某特定值时,只需要通过下标标出即可。序列类型由于元素之间存在顺序关系,所以序列中可以存在相同数值但位置不同的元素。序列类型支持成员关系操作符(in)、长度计算函数(len())、分片(),元素本身也可以是序列类型。序列类型Python语言中有很多数据类型都是序列类型,其中比较重要的是:str(字符串)、tuple(元组)和list(列表)。元组是包含0个或多个数据项的不可变序列类型。元组生成后是固定的,其中任何数据项不能替换或删除。列表则是一个可以修改数据项的序列类型,使用也最灵活序列类型序列类型有12个通用的操作符和函数操作符描述xins如果x是s的元素,返回True,否则返回Falsexnotins如果x不是s的元素,返回True,否则返回Falses+t连接s和ts*n或n*s将序列s复制n次si索引,返回序列的第i个元素si:j分片,返回包含序列s第i到j个元素的子序列(不包含第j个元素)si:j:k步骤分片,返回包含序列s第i到j个元素以j为步数的子序列len(s)序列s的元素个数(长度)min(s)序列s中的最小元素max(s)序列s中的最大元素s.index(x,i,j)序列s中从i开始到j位置中第一次出现元素x的位置s.count(x)序列s中出现x的总次数序列类型元组(tuple)是序列类型中比较特殊的类型,因为它一旦创建就不能被修改。元组类型在表达固定数据项、函数多返回值、多变量同步赋值、循环遍历等情况下十分有用。Python中元组采用逗号和圆括号(可选)来表示。creature=cat,dog,tiger,humancreature(cat,dog,tiger,human)color=(red,0 x001100,blue,creature)color(red,4352,blue,(cat,dog,tiger,human)color2bluecolor-12tiger序列类型deffunc(x):#函数多返回值returnx,x*3a,b=dog,tiger#多变量同步赋值a,b=(b,a)#多变量同步赋值,括号可省略importmathforx,yin(1,0),(2,5),(3,8):#循环遍历print(math.hypot(x,y)#求多个坐标值到原点的距离集合类型集合类型与数学中集合的概念一致,即包含0个或多个数据项的无序组合。集合中元素不可重复,元素类型只能是固定数据类型,例如:整数、浮点数、字符串、元组等,列表、字典和集合类型本身都是可变数据类型,不能作为集合的元素出现。集合类型由于集合是无序组合,它没有索引和位置的概念,不能分片,集合中元素可以动态增加或删除。集合用大括号()表示,可以用赋值语句生成一个集合。S=425,BIT,(10,CS),424S424,425,(10,CS),BITT=425,BIT,(10,CS),424,425,BITT424,425,(10,CS),BIT集合类型由于集合元素是无序的,集合的打印效果与定义顺序可以不一致。由于集合元素独一无二,使用集合类型能够过滤掉重复元素。set(x)函数可以用于生成集合。W=set(apple)e,p,a,lV=set(cat,dog,tiger,human)cat,human,dog,tiger集合类型集合类型有10个操作符操作符描述ST或 S.difference(T)返回一个新集合,包括在集合S中但不在集合T中的元素S-=T或S.difference_update(T)更新集合S,包括在集合S中但不在集合T中的元素S&T或S.intersection(T)返回一个新集合,包括同时在集合S和T中的元素S&=T或S.intersection_update(T)更新集合S,包括同时在集合S和T中的元素。ST或s.symmetric_difference(T)返回一个新集合,包括集合S和T中元素,但不包括同时在其中的元素S=T或s.symmetric_difference_update(T)更新集合S,包括集合S和T中元素,但不包括同时在其中的元素S|T或S.union(T)返回一个新集合,包括集合S和T中所有元素S=|T或S.update(T)更新集合S,包括集合S和T中所有元素S=T或S.issubset(T)如果S与T相同或S是T的子集,返回True,否则返回False,可以用S=T或S.issuperset(T)如果S与T相同或S是T的超集,返回True,否则返回False,可以用ST判断S是否是T的真超集集合类型上述操作符表达了集合类型的4种基本操作,交集(&)、并集(|)、差集(-)、补集(),操作逻辑与数学定义相同集合类型集合类型有10个操作函数或方法函数或方法描述S.add(x)如果数据项x不在集合S中,将x增加到sS.clear()移除S中所有数据项S.copy()返回集合S的一个拷贝S.pop()随机返回集合S中的一个元素,如果S为空,产生KeyError异常S.discard(x)如果x在集合S中,移除该元素;如果x不在,不报错S.remove(x)如果x在集合S中,移除该元素;不在产生KeyError异常S.isdisjoint(T)如果集合S与T没有相同元素,返回Truelen(S)返回集合S元素个数xinS如果x是S的元素,返回True,否则返回FalsexnotinS如果x不是S的元素,返回True,否则返回False集合类型集合类型主要用于三个场景:成员关系测试、元素去重和删除数据项,例子如下。BITinPYTHON,BIT,123,GOOD#成员关系测试成员关系测试Truetup=(PYTHON,BIT,123,GOOD,123)#元素去重元素去重set(tup)123,GOOD,BIT,PYTHONnewtup=tuple(set(tup)PYTHON)#去重同时删除数据项去重同时删除数据项(GOOD,123,BIT)集合类型与其他类型最大的不同在于它不包含重复元素,因此,当需要对一维数据进行去重或进行数据重复处理时,一般通过集合来完成。映射类型映射类型是“键-值”数据项的组合,每个元素是一个键值对,即元素是(key,value),元素之间是无序的。键值对(key,value)是一种二元关系。在Python中,映射类型主要以字典(dict)体现。列表类型和操作列表类型的概念列表(list)是包含0个或多个对象引用的有序序列,属于序列类型。与元组不同,列表的长度和内容都是可变的,可自由对列表中数据项进行增加、删除或替换。列表没有长度限制,元素类型可以不同,使用非常灵活。列表类型的概念由于列表属于序列类型,所以列表也支持成员关系操作符(in)、长度计算函数(len())、分片()。列表可以同时使用正向递增序号和反向递减序号,可以采用标准的比较操作符(、=、)进行比较,列表的比较实际上是单个数据项的逐个比较。列表类型的概念列表用中括号()表示,也可以通过list()函数将元组或字符串转化成列表。直接使用list()函数会返回一个空列表。ls=425,BIT,10,CS,425ls425,BIT,10,CS,425ls2-10Clist(425,BIT,10,CS,425)425,BIT,10,CS,425list(中国是一个伟大的国家中国是一个伟大的国家)中,国,是,一,个,伟,大,的,国,家list()列表类型的概念与整数和字符串不同,列表要处理一组数据,因此,列表必须通过显式的数据赋值才能生成,简单将一个列表赋值给另一个列表不会生成新的列表对象。ls=425,BIT,1024#用数据赋值产生列表用数据赋值产生列表lslt=ls#lt是是ls所对应数据的引用,所对应数据的引用,lt并不包含真实数据并不包含真实数据ls0=0lt0,BIT,1024列表类型的概念列表类型的操作函数或方法描述lsi=x替换列表ls第i数据项为xlsi:j=lt用列表lt替换列表ls中第i到j项数据(不含第j项,下同)lsi:j:k=lt用列表lt替换列表ls中第i到j以k为步的数据dellsi:j删除列表ls第i到j项数据,等价于lsi:j=dellsi:j:k删除列表ls第i到j以k为步的数据ls+=lt或ls.extend(lt)将列表lt元素增加到列表ls中ls*=n更新列表ls,其元素重复n次ls.append(x)在列表ls最后增加一个元素xls.clear()删除ls中所有元素ls.copy()生成一个新列表,复制ls中所有元素ls.insert(i,x)在列表ls第i位置增加元素xls.pop(i)将列表ls中第i项元素取出并删除该元素ls.remove(x)将列表中出现的第一个元素x删除ls.reverse(x)列表ls中元素反转列表类型的操作vlist=list(range(5)vlist0,1,2,3,4len(vlist2:)#计算从第3个位置开始到结尾的子串长度32invlist#判断2是否在列表vlist中Truevlist3=python#修改序号3的元素值和类型vlist0,1,2,python,4vlist1:3=bit,computervlist0,bit,computer,3,4列表类型的操作当使用一个列表改变另一个列表值时,Python不要求两个列表长度一样,但遵循“多增少减”的原则,例子如下。vlist1:3=new_bit,new_computer,123vlist0,new_bit,new_computer,123,python,4vlist1:3=fewervlist0,fewer,123,python,4列表类型的操作与元组一样,列表可以通过forin语句对其元素进行遍历,基本语法结构如下:forin:语句块列表类型的操作foreinvlist:print(e,end=)0fewer123python4列表是一个十分灵活的数据结构,它具有处理任意长度、混合类型的能力,并提供了丰富的基础操作符和方法。当程序需要使用组合数据类型管理批量数据时,请尽量使用列表类型。基本统计值计算基本统计值的计算以最简单的统计问题为例,求解一组不定长数据的基本统计值,即平均值、标准差、中位数。一组数据表示为S=s0,s1,sn-1,其算术平均值、标准差分别表示为:和基本统计值的计算由于平均数、标准差和中位数是三个不同的计算目标,使用函数方式编写计算程序。getNum()函数从用户输入获得数据mean()函数计算平均值dev()函数计算标准差median()函数计算中位数基本统计值的计算实例代码9.1e9.1CalStatistics.py123456789101112131415#e9.1CalStatistics.pyfrommathimportsqrtdefgetNum():#获取用户输入获取用户输入nums=iNumStr=input(请输入数字请输入数字(直接输入回车退出直接输入回车退出):)whileiNumStr!=:nums.append(eval(iNumStr)iNumStr=input(请输入数字请输入数字(直接输入回车退出直接输入回车退出):)returnnumsdefmean(numbers):#计算平均值计算平均值s=0.0fornuminnumbers:s=s+numreturns/len(numbers)基本统计值的计算实例代码9.1e9.1CalStatistics.py15161718192021222324252627282930defdev(numbers,mean):#计算方差计算方差sdev=0.0fornuminnumbers:sdev=sdev+(num-mean)*2returnsqrt(sdev/(len(numbers)-1)defmedian(numbers):#计算中位数计算中位数sorted(numbers)size=len(numbers)ifsize%2=0:med=(numberssize/2-1+numberssize/2)/2else:med=numberssize/2returnmedn=getNum()#主体函数主体函数m=mean(n)print(平均值平均值:,方差方差:.2,中位数中位数:.format(m,dev(n,m),median(n)基本统计值的计算请输入数字(直接输入回车退出):99请输入数字(直接输入回车退出):98请输入数字(直接输入回车退出):97请输入数字(直接输入回车退出):96请输入数字(直接输入回车退出):95请输入数字(直接输入回车退出):平均值:97.0,方差:1.6,中位数:97.程序先后调用getNum()、mean()、dev()和median()函数。利用函数的模块化设计能够复用代码并增加代码的可读性。每个函数内部都采用了简单的语句。基本统计值的计算列表在实现基本数据统计时发挥了重要作用,表现在:列表是一个动态长度的数据结构,可以根据需求增加或减少元素;列表的一系列方法或操作符为计算提供了简单的元素运算手段;列表提供了对每个元素的简单访问方式及所有元素的遍历方式。字典类型的计算字典类型的基本概念通过任意键信息查找一组数据中值信息的过程叫映射,Python语言中通过字典实现映射。Python语言中的字典可以通过大括号()建立,建立模式如下::,:,:其中,键和值通过冒号连接,不同键值对通过逗号隔开。字典类型的基本概念Dcountry=中国:北京,美国:华盛顿,法国:巴黎print(Dcountry)中国:北京,法国:巴黎,美国:华盛顿字典打印出来的顺序与创建之初的顺序不同,这不是错误。字典是集合类型的延续,各个元素并没有顺序之分。字典类型的基本概念字典最主要的用法是查找与特定键相对应的值,这通过索引符号来实现。Dcountry中国中国北京一般来说,字典中键值对的访问模式如下,采用中括号格式:=字典中对某个键值的修改可以通过中括号的访问和赋值实现:Dcountry中国中国=大北京大北京print(Dcountry)中国:大北京,法国:巴黎,美国:华盛顿字典类型的操作通过中括号可以增加新的元素 Dcountry=中国:北京,美国:华盛顿,法国:巴黎Dcountry英国=伦敦print(Dcountry)中国:北京,法国:巴黎,美国:华盛顿,英国:伦敦直接使用大括号()可以创建一个空的字典,并通过中括号()向其增加元素。Dp=Dp210=1024print(Dp)210:1024字典类型的操作函数和方法描述.keys()返回所有的键信息.values()返回所有的值信息.items()返回所有的键值对.get(,)键存在则返回相应值,否则返回默认值.pop(,)键存在则返回相应值,同时删除键值对,否则返回默认值.popitem()随机从字典中取出一个键值对,以元组(key,value)形式返回.clear()删除所有的键值对del删除字典中某一个键值对in如果键在字典中返回True,否则返回False字典类型的操作Dcountry=中国:北京,美国:华盛顿,法国:巴黎Dcountry.keys()dict_keys(中国,美国,法国)list(Dcountry.values()北京,华盛顿,巴黎Dcountry.items()dict_items(中国,北京),(美国,华盛顿),(法国,巴黎)中国中国inDcountry#只对键进行判断只对键进行判断TrueDcountry.get(美国美国,悉尼悉尼)#美国美国在字典中存在在字典中存在华盛顿Dcountry.get(澳大利亚澳大利亚,悉尼悉尼)#澳大利亚澳大利亚在字典中不存在在字典中不存在悉尼字典类型的操作与其他组合类型一样,字典可以通过forin语句对其元素进行遍历,基本语法结构如下:for in:语句块forkeyinDcountry:print(key)中国美国法国字典类型的操作字典是实现键值对映射的数据结构,请理解如下基本原则:字典是一个键值对的集合,该集合以键为索引,一个键信息只对应一个值信息;字典中元素以键信息为索引访问;字典长度是可变的,可以通过对键信息赋值实现增加或修改键值对。jieba库的使用jieba库的概述jieba是Python中一个重要的第三方中文分词函数库importjiebajieba.lcut(中国是一个伟大的国家中国是一个伟大的国家)中国,是,一个,伟大,的,国家jieba库是第三方库,不是安装包自带,需要通过pip指令安装:pipinstalljieba#或者或者pip3installjiebajieba库的解析函数描述jieba.cut(s)精确模式,返回一个可迭代的数据类型jieba.cut(s,cut_all=True)全模式,输出文本s中所有可能单词jieba.cut_for_search(s)搜索引擎模式,适合搜索引擎建立索引的分词结果jieba.lcut(s)精确模式,返回一个列表类型,建议使用jieba.lcut(s,cut_all=True)全模式,返回一个列表类型,建议使用jieba.lcut_for_search(s)搜索引擎模式,返回一个列表类型,建议使用jieba.add_word(w)向分词词典中增加新词wjieba库的解析importjiebajieba.lcut(中华人民共和国是一个伟大的国家中华人民共和国是一个伟大的国家)中华人民共和国,是,一个,伟大,的,国家jieba.lcut(中华人民共和国是一个伟大的国家中华人民共和国是一个伟大的国家,cut_all=True)中华,中华人民,中华人民共和国,华人,人民,人民共和国,共和,共和国,国是,一个,伟大,的,国家jieba.lcut_for_search(中华人民共和国是一个伟大的国家中华人民共和国是一个伟大的国家)中华,华人,人民,共和,共和国,中华人民共和国,是,一个,伟大,的,国家文本词频统计Hamlet英文词频统计实例代码10.1e10.1CalHamlet.py1234567891011121314151617#e10.1CalHamlet.pydefgetText():txt=open(hamlet.txt,r).read()txt=txt.lower()forchin!#$%&()*+,-./:;?_|:txt=txt.replace(ch,)#将文本中特殊字符替换为空格将文本中特殊字符替换为空格returntxthamletTxt=getText()words=hamletTxt.split()counts=forwordinwords:countsword=counts.get(word,0)+1items=list(counts.items()items.sort(key=lambdax:x1,reverse=True)foriinrange(10):word,count=itemsiprint(0:5.format(word,count)Hamlet英文词频统计the1138and965to754of669you550a542i542my514hamlet462in436观察输出结果可以看到,高频单词大多数是冠词、代词、连接词等语法型词汇,并不能代表文章的含义。进一步,可以采用集合类型构建一个排除词汇库excludes,在输出结果中排除这个词汇库中内容。实例代码10.2e10.2CalHamlet.py1234567891011121314151617181920#e10.2CalHamlet.pyexcludes=the,and,of,you,a,i,my,indefgetText():txt=open(hamlet.txt,r).read()txt=txt.lower()forchin!#$%&()*+,-./:;?_|:txt=txt.replace(ch,)#将文本中特殊字符替换为空格将文本中特殊字符替换为空格returntxthamletTxt=getText()words=hamletTxt.split()counts=forwordinwords:countsword=counts.get(word,0)+1forwordinexcludes:del(countsword)items=list(counts.items()items.sort(key=lambdax:x1,reverse=True)foriinrange(10):word,count=itemsiprint(0:5.format(word,count)Hamlet英文词频统计运行程序后,输出结果如下to754hamlet462it416that391is340not314lord309his296this295but269三国演义人物出场统计实例代码10.3e10.3CalThreeKingdoms.py123456789101112131415#e10.3CalThreeKingdoms.pyimportjiebatxt=open(三国演义三国演义.txt,r,encoding=utf-8).read()words=jieba.lcut(txt)counts=forwordinwords:iflen(word)=1:#排除单个字符的分词结果排除单个字符的分词结果continueelse:countsword=counts.get(word,0)+1items=list(counts.items()items.sort(key=lambdax:x1,reverse=True)foriinrange(15):word,count=itemsiprint(0:5.format(word,count)三国演义人物出场统计曹操953孔明836将军772却说656玄德585关公510丞相491二人469不可440荆州425玄德曰390孔明曰390不能384如此378张飞358三国演义人物出场统计观察输出结果,同一个人物会有不同的名字,这种情况需要整合处理。同时,与英文词频统计类似,需要排除一些人名无关词汇,如“却说”、“将军”等。三国演义人物出场统计实例代码10.4e10.4CalThreeKingdoms.py1234567891011121314151617#e10.4CalThreeKingdoms.pyimportjiebaexcludes=将军将军,却说却说,荆州荆州,二人二人,不可不可,不能不能,如此如此txt=open(三国演义三国演义.txt,r,encoding=utf-8).read()words=jieba.lcut(txt)counts=forwordinwords:iflen(word)=1:continueelifword=诸葛亮诸葛亮orword=孔明曰孔明曰:rword=孔明孔明elifword=关公关公orword=云长云长:rword=关羽关羽elifword=玄德玄德orword=玄德曰玄德曰:rword=刘备刘备elifword=孟德孟德orword=丞相丞相:rword=曹操曹操”三国演义人物出场统计实例代码10.4e10.4CalThreeKingdoms.py18192021222324252627else:rword=wordcountsrword=counts.get(rword,0)+1forwordinexcludes:del(countsword)items=list(counts.items()items.sort(key=lambdax:x1,reverse=True)foriinrange(5):word,count=itemsiprint(0:5.format(word,count)三国演义人物出场统计输出排序前5的单词,运行程序后,输出结果如下:曹操1451孔明1383刘备1252关羽784张飞358请继续完善程序,排除更多无关词汇干扰,总结出场最多的20个人物都有哪些。这里,给出参考答案。曹操(1451)、孔明(1383)、刘备(1252)、关羽(784)、张飞(358)、吕布(300)、赵云(278)、孙权(264)、司马懿(221)、周瑜(217)、袁绍(191)、马超(185)、魏延(180)、黄忠(168)、姜维(151)、马岱(127)、庞德(122)、孟获(122)、刘表(120)、夏侯惇(116)Python之禅Python之禅什么样的程序是好的?如何编写漂亮的代码?这都是学习编程一段时间最经常提出的问题,却最难回答。程序设计语言如同自然语言,好的代码就像文学作品,不仅达意,更要优美。那什么是“好”?什么是“优美”?领悟编程代码优美的过程类似参禅,除了不断练习,也需要理解一些原则。Python之禅Python编译器以函数库的形式内置了一个有趣的文件,被称为“Python之禅”(TheZenofPython)。当调用如下一行语句后,会出现一段有趣的运行结果。import thisTheZenofPython,byTimPetersBeautifulisbetterthanugly.Explicitisbetterthanimplicit.Simpleisbetterthancomplex.Complexisbetterthancomplicated.Flatisbetterthannested.Sparseisbetterthandense.Readabilitycounts.Specialcasesarentspecialenoughtobreaktherules.Althoughpracticalitybeatspurity.Errorsshouldneverpasssilently.Unlessexplicitlysilenced.Inthefaceofambiguity,refusethetemptationtoguess.Thereshouldbeone-andpreferablyonlyone-obviouswaytodoit.AlthoughthatwaymaynotbeobviousatfirstunlessyoureDutch.Nowisbetterthannever.Althoughneverisoftenbetterthan*right*now.Iftheimplementationishardtoexplain,itsabadidea.Iftheimplementationiseasytoexplain,itmaybeagoodidea.Namespacesareonehonkinggreatidea-letsdomoreofthose!Python之禅Python之禅作者:TimPeters优美胜于丑陋明了胜于隐晦简洁胜于复杂复杂胜于凌乱扁平胜于嵌套间隔胜于紧凑可读性很重要即便假借特例的实用性之名,也不要违背上述规则除非你确定需要,任何错误都应该有应对当存在多种可能,不要尝试去猜测只要你不是Guido,对于问题尽量找一种,最好是唯一明显的解决方案做也许好过不做,但不假思索就动手还不如不做如果你无法向人描述你的实现方案,那肯定不是一个好方案如果实现方案容易解释,可能是个好方案命名空间是绝妙的理念,要多运用译者心得以编写优美代码为目标,不多解释优美代码应该清晰明了,规范统一优美代码应该逻辑简洁,避免复杂逻辑如果必须采用复杂逻辑,接口关系也要清晰优美代码应该是扁平的,避免太多层次嵌套优美代码间隔要适当,每行代码解决适度问题优美代码必须是可读且易读的上述规则是至高无上的捕获异常,不让程序留有因错误退出的可能不要试图给出多种方案,找到一种实现它,几乎所有人都没有Guido那么牛编程之前要有思考能说清楚的往往才是对的适合复杂程序编程Python之禅除了Python之禅所表达的Python设计理念,该程序还有另一段魅力:实例代码11.1this.py12345678910111213s=GurMrabsClguba,olGvzCrgrefOrnhgvshyvforggregunahtyl.Rkcyvpvgvforggregunavzcyvpvg.Fvzcyrvforggregunapbzcyrk.Pbzcyrkvforggregunapbzcyvpngrq.Syngvforggregunaarfgrq.Fcnefrvforggregunaqrafr.Ernqnovyvglpbhagf.Fcrpvnypnfrfneragfcrpvnyrabhtugboernxgurehyrf.Nygubhtucenpgvpnyvglorngfchevgl.Reebeffubhyqarirecnfffvyragyl.Hayrffrkcyvpvgylfvyraprq.Python之禅实例代码11.1this.py14151617181920212223242526272829Vagursnprbsnzovthvgl,ershfrgurgrzcgngvbagbthrff.Gurerfubhyqorbar-naqcersrenoylbaylbar-boivbhfjnlgbqbvg.NygubhtugungjnlznlabgorboivbhfngsvefghayrfflbherQhgpu.Abjvforggregunaarire.Nygubhtuarirevfbsgraorggreguna*evtug*abj.Vsgurvzcyrzragngvbavfuneqgbrkcynva,vgfnonqvqrn.Vsgurvzcyrzragngvbavfrnflgbrkcynva,vgznlorntbbqvqrn.Anzrfcnprfnerbarubaxvatterngvqrn-yrgfqbzberbsgubfr!d=forcin(65,97):foriinrange(26):dchr(i+c)=chr(i+13)%26+c)print(.join(d.get(c,c)forcins)Python之禅密文:ABCDEFGHIJKLMNOPQRSTUVWXYZ原文:NOPQRSTUVWXYZABCDEFGHIJKLM密文:abcdefghijklmnopqrstuvwxyz原文:nopqrstuvwxyzabcdefghijklm这个算法可以看作是凯撒密码的一种扩展,相比凯撒密码,采用循环移动13个位置,加密和解密可以用同一个程序。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服