版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
主要内容1数据构造(30)
序列:字符串(10)、列表(5)和元组(5)
字典(5)
集合(5)2选择和分支构造(10)3循环(10)4函数(10)5面向对象编程(15)6文献操作(15)7图形编程(10)2023年1月29日1第1页序列序列通用办法可变序列:list,支持办法不可变序列:tuplestr,支持办法2023年1月29日2第2页序列通用办法2023年1月29日3第3页通用办法举例2023年1月29日4s='hello_world_111'print(s*2)print(len(s))print(min(s))print(max(s))print(s[0])print(s[0:5:2])print(s.index('l',3,6))print(s.count('h'))print(s[:-1])print(s[::-1])print(s[5:3])print(s[-len(s):-3])print(s[-2:-8:-1])运行成果:hello_world_111hello_world_111151whhlo31hello_world_11111_dlrow_ollehhello_world_11_dlr第4页可变类型支持操作序列2023年1月29日5第5页可变类型支持操作2023年1月29日6第6页可变序列示例s=['1',(4,5),5,[7.8],'pa']s[0]=1print(s)s[0:1]=[2]print(s)s[0::2]=[2,3,4]print(s)s[0:3]='hello'print(s)print(s+[2,3])2023年1月29日7运行成果:[1,(4,5),5,[7.8],'pa'][2,(4,5),5,[7.8],'pa'][2,(4,5),3,[7.8],4]['h','e','l','l','o',[7.8],4]['h','e','l','l','o',[7.8],4,2,3]第7页创建列表使用方括号,用逗号分隔各条目:[],['a'],[a,b,c]使用类型构造函数:list(),list(iterable)使用列表生成式:[xforxiniterable]list1=[]#空列表list2=["Tom","Jerry","Lucy","Peter"]#非空列表list3=list()#列表构造函数创建空列表list4=list(list2)list5=[xforxinlist2]#列表生成式(list2能够是其序列,如元组和字符串)2023年1月29日8第8页列表支持额外操作排序办法:s.sort(*,key=None,reverse=None)
key
:指定一种函数,该函数用于从每个列表元素提取用于进行比较操作键,如key=str.lower。列表中每一种条目对应键都会被计算一次,然后用于整个排序过程。默认值None表达列表条目将会被直接排序,而不会计算出一种单独用于比较键值。reverse
:是一种布尔值,假如其值为True,则列表中元素将会按照比较办法反序进行排序。sorted(s,key=None,reverse=None)2023年1月29日9第9页排序举例1s=['a','e','b','D']s.sort()print(s)s=['a','e','b','D']s.sort(key=str.lower,reverse=True)print(s)s=['a','e','b','D']s1=sorted(s,key=str.lower,reverse=True)print(s1,s)2023年1月29日10运行成果:['D','a','b','e']['e','D','b','a']['e','D','b','a']['a','e','b','D']第10页排序举例2实例化某类几个实例,要求根据实例中某个关键字进行升序排列。classDog():def__init__(self,age,name):self.age=age=namedefgetInfo(self):print('nameis'++',andageis'+str(self.age))d1=Dog(8,'yellow')d2=Dog(10,'red')d3=Dog(5,'green')s=[d1,d2,d3]s.sort(key=lambdad:d.age)fordins:d.getInfo()2023年1月29日11运行成果:nameisgreen,andageis5nameisyellow,andageis8nameisred,andageis10第11页创建元组使用一对小括号表达空元组:()对单个元组要使用逗号结尾:a,或(a,)多种条目要使用逗号分隔:a,b,c或(a,b,c)使用内置函数tuple()或tuple(iterable)2023年1月29日12第12页元组创建示意a=(1,)print(a)a=(1)print(a)a=()print(a)a=tuple()print(a)a=tuple([1,2,4])#非空数组print(a)a=(1,2,4)print(a)a=1,2,3print(a)2023年1月29日13运行成果:(1,)1()()(1,2,4)(1,2,4)(1,2,3)第13页rangeRange表达不可变数字序列,一般用于for循环中特定次数。a=list(range(10))#start没有指定,默认值为0,即start=0,end=10print(a)a=list(range(1,11))#start=1,end=11print(a)a=list(range(0,11,2))#要指定step就必须要指定startprint(a)a=list(range(0,-10,-1))#step为负数print(a)a=list(range(0))print(a)a=list(range(10,5))#假如end<start,则range对象为空print(a)2023年1月29日14运行成果:[0,1,2,3,4,5,6,7,8,9][1,2,3,4,5,6,7,8,9,10][0,2,4,6,8,10][0,-1,-2,-3,-4,-5,-6,-7,-8,-9][][]第14页字符串字符串是一种不可变序列,因此前面不可变序列办法,都能够应用。字符串格式化,格式化字符串一般采取‘%s’。%s称为转换说明符,标识了需要插入转换值位置。若需要在字符串中包括百分号,则必须使用%%1.%字符:标识转换说明符开始
2.转换标志(可选):如s
3.最小字段宽度(可选):转换后字符串最少应当具有指定宽度,假如是*,则宽度会从值元组中读出
4.点(.)后跟精度值(可选):假如转换是实数,精度值就表达出目前小数点后位数。假如转换是字符串,那么该数字就表达最大字段宽度。2023年1月29日15第15页字符串格式化转换类型2023年1月29日16第16页字符串特有办法2023年1月29日17第17页2023年1月29日18第18页2023年1月29日19第19页示例#capitalize()'hello'.capitalize(),'-*-HELLO'.capitalize()运行成果:('Hello','-*-hello’)
#ljust()、center()和rjust()a='hello'print(a.ljust(2),a.ljust(10),a.ljust(10,'='))print(a.center(2),a.center(10),a.center(10,'='))print(a.rjust(2),a.rjust(10),a.rjust(10,'='))2023年1月29日20运行成果:hellohellohello=====hellohello==hello===hellohello=====hello第20页#startswith()和endswith()s='hello,python'print(s.startswith('lo'),s.startswith('lo',3))print(s.startswith('he'),s.startswith('he',3))print(s.endswith('py'),s.endswith('py',0,-4))print(s.endswith('python'),s.endswith('python',0,-4))2023年1月29日21运行成果:FalseTrueTrueFalseFalseTrueTrueFalse第21页#isupper()、islower()、upper()、lower()和swapcase()s='RussellLuo'print(s.isupper(),s.upper())print(s.islower(),s.lower())print(s.swapcase())#istitle()和title()print(s.istitle(),s.title())2023年1月29日22运行成果:FalseRUSSELLLUOFalserussellluorUSSELLlUOFalseRussellluo第22页2023年1月29日23#join()l=['how','are','you']print(''.join(l))print(''.join(l))print('...'.join(l))#lstrip()、rstrip()和strip()s=u'人人为我,我为人人'print(s.lstrip(u'人'))print(s.rstrip(u'人'))print(s.strip(u'人'))运行成果:howareyouhowareyouhow...are...you为我,我为人人人人为我,我为为我,我为第23页#partition()和rpartition()s='whereareyou,hereyouare'print(s.partition('you'))print(s.rpartition('you'))print(s.partition('him'))print(s.rpartition('him'))#replace()s='goooooooooogle'print(s.replace('o','u'),s.replace('o','u',5))2023年1月29日24运行成果:('whereare','you',',hereyouare')('whereareyou,here','you','are')('whereareyou,hereyouare','','')('','','whereareyou,hereyouare')guuuuuuuuuugleguuuuuooooogle第24页#split()和rsplit()s='howareyou'print(s.split())print(s.rsplit())print(s.split('o'))print(s.rsplit('o'))print(s.split('o',1))print(s.rsplit('o',1))#splitlines()s='abc\n\ndefg\rkl\r\n'print(s.splitlines())print(s.splitlines(True))2023年1月29日25运行成果:['how','are','you']['how','are','you']['h','warey','u']['h','warey','u']['h','wareyou']['howarey','u']['abc','','defg','kl']['abc\n','\n','defg\r','kl\r\n']第25页字符串格式化输出1、%对于字符串格式化,我们一般使用%操作符。在%操作符中,参数类型和格式由转换限定符(conversionspecifier)来指定,而参数值能够支持两种输入形式:元组和字典。print('hello,%s,myageis%d'%('lily',10))print('hello,%(name)s,myageis%(age)d'%{'name':'lily','age':10})2023年1月29日26第26页2format相比于传统%操作符,str.format()有下列几个特点:不需要指定
参数类型通过
位置参数(positionalargument)和
关键字参数(keywordargument)来指定参数值在格式化字符串中,使用以{}包围
替代域(replacementfields)为预期参数占位在替代域中,支持访问参数属性或组员,并且能够对参数调用str()或repr()2023年1月29日27第27页举例#位置参数print('{}has{}quotetypes.'.format('Python',2))print('{0}has{1}quotetypes.'.format('Python',2))#关键字参数print('{language}has{number}quotetypes.'.format(language='Python',number=2))#访问参数属性classN:value=2passprint('{0}has{1.value}quotetypes.'.format('Python',N))#访问参数组员print('{data[0]}has{data[1]}quotetypes.'.format(data=['Python',2]))2023年1月29日28第28页正则体现式2023年1月29日29第29页预定义字符集2023年1月29日30第30页主要办法importres=pile(pattern,flags=0)pattern:编译时用体现式字符串。s.match(string,flags=0)s.findall(string,flags=0)s.search(string,flags=0)re.match(pattern,string,flags=0)决定re是否在字符串刚开始位置匹配re.search(pattern,string,flags=0)re.search函数会在字符串内查找模式匹配,只要找到第一种匹配然后返回,假如字符串没有匹配,则返回None。re.findall(pattern,string,flags=0)re.findall遍历匹配,能够获取字符串中所有匹配字符串,返回一种列表。31第31页思考上次作业登录直接改为注册,在顾客注册时顾客名和密码都有格式要求:1顾客名中只能由数字、下划线、字母、减号组成,且长度4-12位2023年1月29日32第32页entr1=Entry(w,textvariable=svar1,validate='focusout',validatecommand=btn3func)focus:当entry组件取得或者失去焦点时候验证focusin:当entry组件取得焦点时候验证focusout:当entry组件失去焦点时候验证
key:当输入框被编辑时候验证all:当出现上面任何一种情况时候验证none:关闭验证功能。默认设置为该选项validatecommand选项指定一种验证函数,该函数只能返回True或者False表达验证成果2023年1月29日33第33页正则体现式匹配举例defbtn3func():s=svar1.get()pat=pile(r'[a-zA-Z0-9_-]{4,10}_$')v=pat.match(s)if(v==None):lb3.config(text='顾客名格式错误')returnFalseelse:lb3.config(text='')returnTrue2023年1月29日34第34页2023年1月29日35第35页当满足匹配条件后2023年1月29日36第36页字典除了列表以外,字典(dictionary)是Python之中最灵活内置数据构造类型。列表是有序,字典是无序,他们主要差异是:字典当中元素是通过键来存取,列表是通过偏移量存取。通过键而不是偏移量来读取任意对象无序集合:与列表不一样,保存在字典中项并没有特定次序。可变长、异构、任意嵌套:与列表相同,字典能够在原处增加或缩短(无需生成一份拷贝)。他们能够包括任何类型对象,并且他们支持任意深度嵌套(能够包括列表和其他字典等)。属于可变映射类型:通过给索引赋值,字典能够在原处修改(可变),但不支持用于字符串和列表中序列操作。由于字典是无序集合,因此根据固定次序进行操作是行不通(例如合并和分片操作)。字典是唯一内置映射类型(键映射到值得对象)。2023年1月29日37第37页字典常用办法2023年1月29日38第38页字典常用办法2023年1月29日39第39页运行成果keylist=['spam','eggs']valuelist=[2,3]D=dict(zip(keylist,valuelist))print(D)成果:{'eggs':3,'spam':2D={x:x*2forxinrange(4)}print(D)成果:{0:0,1:2,2:4,3:6}D=dict.fromkeys(['a','b','c'],0)print(D)成果:{'b':0,'a':0,'c':0}2023年1月29日40第40页集合list1=[3,3,3,4,5,3]str2='hello's1=set(list1)s2=set(str2)print(s1,s2)集合并、交、差和对称差:
s1|s2s1|=s2s1.union(s2)s.update(s1,s2,……,sn)s1&s2ersection(s2)ersection_update(s1,s2,……,sn)s1-s2s1.difference(s2)s.difference_update(s1,s2,……,sn)s1^s2s1.symmetric_difference(s2)s.symmetric_difference_update(s1)2023年1月29日41第41页集合其他办法s1.issubset(s2)s1.issuperset(s2)s1.isdisjoint(s2)s.remove(x)s.discard(x)s.pop()s.clear()s.add(x)2023年1月29日42第42页思考删除一种长列表中反复元素。#列表去重比较简单list1=[3,3,3,4,5,3]set1=set(list1)print("list1去重后set集合:",set1)#将如中后集合在转化成一种新列表new_list=[iforiinset1]print("list1去重后list列表:",new_list)成果为:list1去重后set集合:{3,4,5}list1去重后list列表:[3,4,5]2023年1月29日43第43页函数定义一种函数你能够定义一种由自己想要功能函数,下列是简单规则:函数代码块以def关键词开头,后接函数标识符名称和圆括号()。任何传入参数和自变量必须放在圆括号中间。圆括号之间能够用于定义参数。函数第一行语句能够选择性地使用文档字符串—用于寄存函数说明。函数内容以冒号起始,并且缩进。return[体现式]结束函数,选择性地返回一种值给调用方。不带体现式return相称于返回None。deffunctionname(parameters):"函数_文档字符串“function_suitereturn[expression]2023年1月29日44第44页函数参数传递可更改(mutable)与不可更改(immutable)对象在python中,strings,tuples,和numbers是不可更改对象,而list,dict等则是能够修改对象。不可变类型:类似c++值传递,如整数、字符串、元组。如fun(a),传递只是a值,没有影响a对象本身。例如在fun(a)内部修改a值,只是修改另一种复制对象,不会影响a本身。可变类型:类似c++引用传递,如列表,字典。如fun(la),则是将la真正传过去,修改后fun外部la也会受影响2023年1月29日45第45页参数使用方式下列是调用函数时可使用正式参数类型:必备参数关键字参数默认参数不定长参数匿名函数:sum=lambdaarg1,arg2:arg1+arg22023年1月29日46第46页函数返回值当函数体内有return语句时,是有返回,这时候调用函数时就能够取得返回成果。#可写函数说明defprintinfo(arg1,*vartuple):print(arg1)forvarinvartuple:print(var)return;#调用printinfo函数printinfo(10);printinfo(70,60,50);2023年1月29日47第47页返回值#可写函数说明defprintinfo(arg1,*vartuple):returnarg1,vartuple#调用printinfo函数s=printinfo(10)print(s)s=printinfo(70,60,50)print(s)2023年1月29日48运行成果:(10,())(70,(60,50))第48页#可写函数说明defprintinfo(arg1,*vartuple):return5*arg1#调用printinfo函数s=printinfo(10)print(s)s=printinfo(70,60,50)print(s)2023年1月29日49运行成果:50350第49页Python中运算符1.算术运算符+-*/(取商)%(取余数)**2.赋值运算符num=100
num=num+903.组员关系运算符in
not
in
4.比较运算符><>=<===!=<>3和4组成关系体现式,能够通过and,or,not组成更复杂关系体现式。1.任何非零和非空对象都为真解释为True2.数字0、空对象和特殊对象None均为假解释为False3.比较和相等测试会应用到数据构造中4.返回值为True或False2023年1月29日50第50页s=['a','b','c']print('a'insand'hello')print('a'notinsand'hello')print('a'insor'hello')print('a'notinsor'hello')2023年1月29日51运行成果:helloFalseTruehello第51页选择构造if条件:if语句块elif条件:
elif语句块else:else语句块其一,在不加括号时候,and优先级大于or其二,xory值只也许是x或y.x为真就是x,x为假就是y其三,xandy值只也许是x或y.x为真就是y,x为假就是x2023年1月29日52第52页循环语句foriinrange():foriinlist1:foriintuple1:while(Ture):if(条件): breakwhile(a<=b)a变化2023年1月29日53第53页break语句break退出循环用for循环或者while循环时,假如要在循环体内直接退出循环,能够使用break语句。例如计算1至100整数和,我们用while来实现:sum=0x=1whileTrue:sum=sum+xx=x+1ifx>100:breakprintsum2023年1月29日54第54页Continue语句在循环过程中,能够用break退出目前循环,还能够用continue跳过后续循环代码,继续下一次循环对于某个班同窗成绩,老师只想统计及格同窗成绩L=[75,98,59,81,66,43,69,85]sum=0.0n=0forxinL:ifx<60:continuesum=sum+xn=n+12023年1月29日55第55页面向对象编程类,对象概念如何定义类,如何实例化对象构造函数定义类属性、实例属性类办法、实例办法继承2023年1月29日56第56页定义圆类frommathimportpiclassCircle:'''定义了一种圆形类提供计算面积(area)和周长(perimeter)办法
'''def__init__(self,radius):self.radius=radiusdefarea(self):returnpi*self.radius*self.radiusdefperimeter(self):return2*pi*self.radius2023年1月29日57第57页运行成果circle=Circle(10)#实例化一种圆area1=ci
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年金融分析师股票市场股票投资策略与风险管理模拟题
- 2026年海洋生态保护法律知识问答
- 2026年快递公司派送员面试题路线规划与货物运输
- 2026年高性能计算机硬件与系统结构中级水平认证考试题
- 2026年音乐教师音乐基础理论与演唱技巧进阶试题
- 2026年汽车维修技师考试题库汽车维修技术及故障诊断题
- 2026年MBA入学考试数学思维训练与强化题库
- 烟叶收购精准预约制度
- 2026年工商管理专业经典教材配套习题集
- 消防控制中心上墙制度
- 2026年标准版离婚协议书(有财产)
- 养老院电气火灾培训课件
- 中国工商银行2025年度春季校园招聘笔试历年典型考题及考点剖析附带答案详解
- 2026年类器官芯片技术项目商业计划书
- 2026北京西城初二上学期期末数学试卷和答案
- 中国家庭财富与消费报告2025年第三季度
- (标准)档口转让合同协议书模版
- 杭州物业外卖管理办法
- 红外线治疗的操作流程讲课件
- 过去进行时(总结)
- 物业节前安全教育培训
评论
0/150
提交评论