(完整版)Python兴趣之旅-第四期_第1页
(完整版)Python兴趣之旅-第四期_第2页
(完整版)Python兴趣之旅-第四期_第3页
(完整版)Python兴趣之旅-第四期_第4页
(完整版)Python兴趣之旅-第四期_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

Python兴趣之旅一

--Ron(郝永涛)0102列表、元组及字典的遍历Contents目录python集合类型及内置方法03字典与列表的区别04Python推导式05案例分解一.python集合类型及内置方法(1).Python数据类型回顾(相对于变量而言,可以理解为存放数据容器的类型),python有五大标准的数据类型:数字(Numbers):分为int(整型)、long(长整型)、float(浮点型)和complex(复数)字符串(String):由字母、数字或下划线组成的一串字符列表(List):用[]标识,有序,使用最频繁的数据类型;如l=[1,2,'aa',[1,2,'aa']]元组(Tuple):类似list,有序,用()标识,不能二次赋值,相当于只读列表;如t=(1,2,3,4,'aa’)字典(Dictionary):用{}标识,无序,以键值对进行存储,通过键进行查找;如d

={‘a’:‘b’,‘c’:‘d’}一.python集合类型及内置方法(2).

数字类型无内置函数,常被应用于数字或数学函数,如:数据类型转换:int(x)

:将x转换为一个整数;float(x):将x转换到一个浮点数;配合算术运算符进行算术运算:+、-、*、/、%等;配置数学函数进行数学运算:abs(x):返回x的绝对值,如abs(-10),返回10floor(x):对数字进行向下取整,如floor(4.9),返回4round(x):对数字进行四舍五入,如round(4.9),返回5ceil(x):对数字进行向上取整,如ceil(4.1),返回5一.python集合类型及内置方法(3).

字符串常用内置函数,如:str.isdigit():如果字符串只包含数字则返回True否则返回Falsestr.islower():字符都是小写,则返回True,否则返回Falsestr.isupper():字符都是大写,则返回True,否则返回Falsestr.lower():转换字符串中所有大写字符为小写str.upper():转换字符串中的小写字母为大写str.replace(old,new):将字符串中的old值替换成new值str.join(seq):将seq中所有的元素(的字符串表示)合并为一个新的字符串str.count(str):返回str在string里面出现的次数一.python集合类型及内置方法(4).

列表常用内置函数,如:list.append():追加成员list.count(x):计算列表中参数x出现的次数list.extend(L):向列表中追加另一个列表Llist.remove(x):删除列表中的元素xlist.reverse():将列表中成员的顺序颠倒list.sort():将列表中成员排序list.pop():移除列表中的一个元素,默认最后一个list.copy():复制列表一.python集合类型及内置方法(5).

元组:因为元组不可改变的特性,所以它仅能被一些公用的内置函数操作:如、len(tuple):计算元组元素个数、max(tuple):返回元组中元素最大值、min(tuple):返回元组中元素最小值等它和列表非常相似(索引、切片、运算符操作、遍历等)一.python集合类型及内置方法(6).

字典常用内置函数,如:adict.keys():返回一个包含字典所有KEY的列表adict.values():返回一个包含字典所有value的列表adict.items():返回一个包含所有(键,值)元祖的列表adict.copy():返回一个字典浅拷贝的副本adict.get(key,default=None):返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None)二.

列表、元组和字典的遍历列表的遍历:l=[1,3,5,7,9]foriinl:print(i)元组的遍历:t=(2,4,6,8,10)foriint:print(i)

字典的遍历:d={'a':'a','b':'b'}forkey,valind.itmes:print('key:'+str(key)+'val:'+str(val))三.

字典与列表的区别*两者都是可变容器,能完成元素的增、删、改、查;

.List是有序的,Dictionary是无序的;.List通过索引访问,Dictionary通过key访问;.List元素可以重复,Dictionary元素无重复;.List可以使用切片,Dictionary不使用切片;.Dictionary占用内存比List在,会在1.5倍左右;

*Dictionary内部存放的顺序和key放入的顺序是没有关系的,和list比较:查找和插入的速度极快,不会随着key的增加而变慢;需要占用大量的内存,内存浪费多;而list正好相反;所以,dict是用空间来换取时间的一种方法四.Python的推导式1.列表推导式;l=[iforiinrange(1,9)]

2.字典推导式;d={str(i):iforiinrange(1,9)}

3.列表推导式案例(用一行代码打印九九乘法口诀):print('\n'.join([''.join([str(y)+'*'+str(x)+'='+str(x*y)foryinrange(1,x+1)])forxinrange(1,10)]))四.Python的推导式综合案例:案例:录入三个学生成绩信息,并完成按成绩从低到高的顺序输出学生信息和根据学号查询学生信息!(为了更好地理解面向对象编程,我们用类的方式完成)

解决思路:<1>.创建一个学生类,包括四个对象属性(schoolNum-学号、name-姓名、sex-性别、score-成绩),通过构造方法给三个对象属性赋值;<2>.创建一个类属性(列表)studentsList,用于保存学生信息;<3>.创建一个类属性(字典)studentsDict,用于查找学生信息,以学号为键,学生信息为值;<4>.利用类的内置方法__repr__,打印学生信息;<5>.创建一个方法studentsAdd(obj),将学生信息保存在列表;<6>.创建一个方法studentsIndex,创建学生索引信息,用于根据学号查询;<7>.创建一个方法scoreSort(),完成学生成绩的排序;<8>.创建一个方法scorePrint(),完成学生成绩的打印;四.Python的推导式第一步:创建学生类Student,类属性studentDict和studentsList,构造方法并初始化对象属性的值。classStudent(object):

studentDict={}

studentsList=[]

#构造方法:初始化学生信息

def

__init__(self,schoolNum,name,sex,score):

self.schoolNum=schoolNum

=name

self.sex=sex

self.score=score四.Python的推导式第二步:创建输入对象的方法__repr__。#打印方法

def

__repr__(self):

return'schoolNum:'+str(self.schoolNum)+'name:'++'sex:'+self.sex+'score:'+str(self.score)四.Python的推导式第三步:创建保存学生信息的静态方法。#保存学生信息

@staticmethod

def

studentsAdd(obj):

ifobj

andisinstance(obj,Student):

Student.studentsList.append(obj)

else:

print('Studentsobjecterror!')四.Python的推导式第四步:利用字典推导式创建学生信息索引。#创建学生信息索引

@staticmethod

def

studentsIndex():

ifStudent.studentsList:

Student.studentDict={student.schoolNum:studentforstudentinStudent.studentsList}

else:

print('Nostudents!')四.Python的推导式第五步:创建查询学生信息的方法。#根据学号查询学生信息

@staticmethod

def

queryStudent(schoolNum):

ifStudent.studentDict

andschoolNum

inStudent.studentDict.keys():

print(Student.studentDict[schoolNum])

else:

print('schoolNumerror!')四.Python的推导式第六步:创建学生成绩排序的方法。#将学生信息按成绩进行排序

@staticmethod

def

scoreSort():

ifStudent.studentsList:

Student.studentsList.sort(key=lambdaobj:obj.score,reverse=False)

else:

print('Nostudents!')四.Python的推导式第七步:创建打印所有学生信息的方法。#打印学生信息

@staticmethod

def

scorePrint():

ifStudent.studentsList:

forstudentinStudent.studentsList:

print(student)

else:

print('Nostudents!')四.Python的推导式第八步:实例化学生信息,并完成操作。

#实例化三个学生信息,并添加到学生信息列表中s1=Student(10001,‘biaobiao’,‘男’,10)

s2=Student(10002,‘jingjing’,‘女’,99)

s3=Student(10003,‘tingting’,‘女’,95)

Student.studentsAdd(s1)

Student.studentsAdd(s2)

Student.studentsAdd(s3)

Student.studentsIndex()

#查询学号为10001的学生

Student.queryStudent(10001)

#输出所有学生信息

Student.scorePrint()

温馨提示

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

评论

0/150

提交评论