Python学习 3day__基础知识
元组的函数
基本和list通用
1 a = (1, 2, 3, 4, 5, 6, 7, 8, 9) 2 print(len(a)) # 获取元组长度 3 print(max(a)) # 获取元组最大值 4 print(min(a)) # 获取元组最小值 5 l = [1, 5, 9] 6 t = tuple(l) # 将其他类型转换为tuple
元组变量交换法
1 a = 1 2 b = 2 3 a, b =b, a 4 print(a) 5 print(b)
集合 set
一堆确定的无序的唯一数据,每一个数据成为一个元素
1 a = set() # 定义一个空集合 2 print(type(a)) 3 print(a) 4 a = {1, 2, 3, 4} # 定义一个集合,这种方法必须有元素否则是一个dict类型 5 print(type(a)) 6 print(a)
集合的特征
数据无序,因此无法使用索引和切片
内部元素具有唯一性,无重复数据
集合序列操作
1 s = {9, 'I', 'Love', 'Python'} 2 print(s) 3 print('I' in s)
集合遍历操作
for循环
1 s = {9, 'I', 'Love', 'Python'} 2 for i in s: 3 print(i, end=" ")
带有元组的集合遍历
1 s = {(9, 6, 8), ('I', 'Love', 'Python')} 2 3 for k, m, n in s: 4 print(k, "---", m, "---", n) 5 for p in s: 6 print(p)
集合函数
intersection:交集
difference:差集
union:并集
issubset:检查一个集合是否是另一个子集
issuperset:检查一个集合是否为另一个超集
1 s1 = {1, 2, 3, 4, 5} 2 s2 = {5, 6, 7, 8, 9} 3 s_1 = s1.intersection(s2) 4 print(s1) 5 s_2 = s1.difference(s2) 6 print(s_2) 7 s_3 = s1.issubset(s2) 8 print(s_3)
冰冻集合 frozen set
不能修改的集合就叫做冰冻集合,是一种特殊集合
1 # 创建frozenset 2 s = frozenset() 3 print(type(s)) 4 print(s)
dict字典
字典是一种组合数据,没有顺序的组合数据,数据以键值对的形式出现
1 # 创建空字典 2 d = {} 3 print(type(d)) 4 d = dict() 5 print(type(d)) 6 # 创建有值的字典 7 d = {"first": 1, "second": 2, "third": 3} 8 print(type(d)) 9 print(d) 10 # 利用关键字创建字典 11 d = dict(first=1, second=2, third=3)
字典的特征
字典是序列类型,但是是无序序列,所以没办法分片和索引
key:必须是可哈希的值
value:可以是任何值
字典的常用操作
1 # 访问 2 d = {"first": 1, "second": 2, "third": 3} 3 print(d["first"]) 4 print(d["second"]) #注意中括号内是键值 5 d["first"] = 'one' 6 print(d["first"]) 7 # 删除 8 del d["first"] 9 print(d) 10 # 成员检测 in not in 11 # 成员检测检测的是key的内容 12 d = {"first": 1, "second": 2, "third": 3} 13 14 if 2 in d: 15 print("666") 16 if "first" in d: 17 print("999") 18 19 # 按key来使用for循环 20 d = {"first": 1, "second": 2, "third": 3} 21 for k in d: 22 print(k, d[k]) 23 24 # 和上面的代码是一个操作 25 for k in d.keys(): 26 print(k, d[k]) 27 28 # 只访问字典的值 29 for v in d.values(): 30 print(v) 31 # 特殊用法 32 for k, v in d.items(): 33 print(k, '---', v)
字典生成式
1 d = {"first": 1, "second": 2, "third": 3} 2 # 常规生成式 3 dd = {k:v for k,v in d.items()} 4 print(dd) 5 # 带条件表达式的生成式 6 dd = {k:v for k,v in d.items() if v % 2 ==0} 7 print(dd)
字典相关函数
1 # 通用函数: len,max,min,dict 2 #str(字典):返回字典的字符串格式 3 d = {"first": 1, "second": 2, "third": 3} 4 print(str(d)) 5 6 # clear:清空字典 7 d.clear() 8 print(d) 9 # iteams(): 返回字典的键值对组成的元组格式 10 d = {"first": 1, "second": 2, "third": 3} 11 i = d.items() 12 print(type(i)) 13 print(i) 14 # keys:返回字典的键组成的结构 15 k = d.keys() 16 print(type(k)) 17 print(k) 18 # values: 一个可迭代的结构 19 v = d.values() 20 print(type(v)) 21 print(v) 22 # get:根据制定键的返回相应的值,好处是可以设置默认值 23 d = {"first": 1, "second": 2, "third": 3} 24 print(d.get("aaaaa")) 25 print(d.get("first",80)) 26 print(d.get("aaaa", 8888)) 27 28 #formkeys:使用指定的序列作为键,使用一个值作为字典的所有的键的值 29 30 a = ["one", "two", "three"] 31 d = dict.fromkeys(a, "niubi") # 这里要注意传递的参数类型 32 print(d)
面向对象编程-OOP
思想:接触到任意一个任务,首先想到的是任务这个世界的构成,是由模型组成的
继承
封装
多态
类和对象的概念
抽象名词,代表一个大集合,共性的事物
对象:具象的事物,单个个体
类的基本实现
类的命名
遵守变量命名规范
避开和系统命名相似的命名
类的声明
必须用class关键字
类由属性和方法构成,其他不允许出现
类的实例化
变量 = 类命()
访问对象成员
obj.成员属性名称
obj.成员方法
可以通过内置变量检测类和对象的所有成员
对象所有成员检查
obj.__dict__
类所有的成员
class_name.__dict__
定义一个学生类
1 class Student(): # 类 2 pass 3 4 xiaowang = Student() # 对象
定义一个学PY的学生的类
1 class PyStdent(): 2 name = None 3 age = 16 4 course = "Python" 5 6 def doHomework(self): 7 print("俺在做作业") 8 return None 9 10 # 实例化一个学生 11 xiaozhang = PyStdent() 12 print(xiaozhang.name) 13 print(xiaozhang.age) 14 xiaozhang.doHomework()