1. 有用的BIF
a. 判断字符串中是否包含子字符串
1 if s_a in s_b:
b. pop()
描述:从指定的列表位置删除并返回一个数据项。
1 (sarah_name,sarah_dob)=l_rah.pop(0),l_rah.pop(0) 2 #pop(0)中0位置为list中第一个数据项 3 #第一次执行pop赋值给sarah_name
c. strip()
输入的是字符串,返回的是列表
d.open
- 读文件时可以多种方式打开文件,取出的数据是不同的,可以是文本也可以是二进制。
- 文件是文本文件时:
data=open('test.txt')#打开的是问本文件哦 s_a=data.readline()#读出文件中的一行数据,返回结果为string #遍历data for item in data: print(item)
2. 字典dict
也称映射,散列,关联数组。
字典是Python内置数据类型,允许将数据与名称(键)相关联,而不是与数字相关联。
a.使用字典
创建空字典:两种创建空字典的方式
1 d_a={} 2 d_b=dict()
向字典中添加数据:批量添加与逐个添加
1 d_a['name']='dest' 2 d_a['ex']='female' 3 4 d_b={'name':'michal','sex':'male'}
访问单个数据:
1 d_a['name']
扩展字典中数据:注意字典中不维持插入的顺序,只关注关联关系
d_a['hobby']='game' #在d_a中添加一个新的键hobby
3. 类
类将具有关联性的数据和处理数据的代码打包在一起。打包的好处在于降低复杂度,程序的结构更加清晰。
Python类包含元素:属性,方法,实例。
类的核心环节:如何定义类,属性、方法、实例的关系。
a.定义类
1 class Athlete:#类定义 2 def __init__(self,value):#类方法定义 3 self.name=value#类属性赋值 4
b. 创建实例
a=Athlete()
这里标识符a只是实例的引用哦。
实例可以调用类的方法,实例拥有自己的属性,这些操作都是通过引用实现的。
c. self
每个方法的第一个参数都是self。
为什么需要self?
- 类是可以创建多个实例的。
- 不同实例间共享类的方法,不共享自己的属性。
- 当实例调用共享的方法时,方法如何能够知道应该处理哪个实例的属性。
- self指示方法去处理调用它的实例的属性。
d. 实例、属性、方法的关系。
- 实例拥有自己的属性,
- 实例通过引用调用类的方法,
a=Athlete()
- a是实例的引用,实例存储在具体的存储空间中。
- 实例的属性在方法中处理,
- 方法通过self了解到该处理哪个实例的属性。
4. 类继承
1 class AthleteList(list): 2 def __init__(self,a_name,b_dob=none,a_times=[]): 3 #初始化list部分 4 list.__init__([]) 5 #初始化AthleteList的属性,self.name, self.dob是额外的属性,self是基类list的属性 6 self.name=a_name 7 self.dob=b_dob 8 self.extend(a_times) 9 10 def top3(self): 11 return(sorted(set([santitize(t) for t in self]))[0:3])#self属性中存储list的数据 12 13 vera=AthleteList('helo') 14 vera.append('1:32')# 相当于self.append('1:32')
AthleteList 相当于加入了额外属性和方法的List
AthleteList实例中既包含List属性又包含额外的属性,可以看成包含一个List实例。
AthleteList实例调用List的方法,相当于其List部分调用了List方法。