-
递归练习
-
遍历文件夹下的所有文件
-
查看文件夹的大小
-
斐波那契数列的练习
-
三级菜单
-
二分查找(未讲):从有序列表中找到某个元素及索引
- [1,2,3,4,5,6,7,8,9,10,27,38,49,58,63]
-
-
sys
- sys.path
- sys.argv:在执行python脚本的时候 加载python之后的所有内容,形成一个列表
- sys.modules:已经加载到内存中的所有模块
-
os模块
- 和文件 文件夹相关的
- 和工作目录相关的
- 和执行操作系统命令相关的
- .path系列
-
logging
- 排错 数据分析,操作审计
- 普通输出(文件/屏幕)
- 切分日志(时间/文件大小)
-
shutil
- 和文件相关的内容
2.今日内容
-
面向对象
-
初始面向对象:复杂的 拥有开放式结局的程序 比较适合使用面向对象开发
- 一种新的编程思路
- 一些概念
- 一些语法
-
楔子
-
游戏公司:人狗大战
-
角色:人:名字、性别、职业、等级、血条、武器、攻击力。技能:搓澡
狗:名字、品种、血条、攻击力。技能:
# alex = { # 'name':'alex', # 'sex':'不详', # 'job':'搓澡工', # 'level':0, # 'hp':'250', # 'weapon':'搓澡巾', # 'ad':1 # } # xiaohei = { # 'name':'xiaohei', # 'kind':'泰迪', # 'hp':5000, # 'ad':249, # } def Person(name,sex,job,hp,weapon,ad,level=0): def 搓(dog): # 此函数不是一个公共的函数,是一个有归属感的函数 dog['hp'] -= dic['ad'] print(f"{dic['name']}攻击了{dog['name']},{dog['name']}掉了{dic['ad']}滴血") dic = { 'name': name, 'sex': sex, 'job': job, 'level': level, 'hp': hp, 'weapon': weapon, 'ad': ad, 'action':搓 } return dic def Dog(name,kind,hp,ad): def 咬(person): person['hp'] -= dic['ad'] print(f"{dic['name']}咬了{person['name']},{person['name']}掉了{dic['ad']}滴血") dic = { 'name':name, 'kind':kind, 'hp':hp, 'ad':ad, 'action':咬 } return dic alex = Person('alex','不详','搓澡工',250,'搓澡巾',1) wusir = Person('wusir','male','法师',500,'打狗棒',1000) 小白 = Dog('小白','泰迪',5000,249) 小黑 = Dog('小黑','柯基',10000,499) 小白['action'](alex) alex['action'](小白)
-
-
-
面向对象编程
-
先来定义一个模子,用来描述一类具有相同属性和动作的事物
class Person: # 类名 def __init__(self): # 必须叫__init__这个名字,不能改变,所有的在一个具体的人物出现之后拥有的属性都可以写在这里 print('_'*20) self.name = 'alex' self.sex = '不详' self.job = '搓澡工' self.level = 0 self.hp = 250 self.weapon = '搓澡巾' self.ad = 1 print('*'*20) # print('in person') alex = Person() # alex 就是对象 alex = Person的过程:通过类获取一个对象的过程 - 实例化 # 类名() 会自动地调用类中的__init__方法
-
类名() 会自动地调用类中的
__init__
方法- 类和对象之间关系
- 类是一个大范围 是一个模子,它约束了事物有哪些属性,但不能约束具体的值
- 对象是一个具体的内容,是母子的产物,它遵循了类的约束,同时给类赋上具体的值
- 运行过程(类有一个空间:存储的是定义在class中所有类的名字,每个对象又拥有自己的空间,通过对象.
__dict__
就可以这个对象的属性和值)
- 类和对象之间关系
-
实例化所经历的步骤:
- 类名() 之后的第一件事:开辟一块内存空间
- 调用
__init__
方法把内存空间地址作为self参数传递到函数内部 - 这个对象需要使用的属性都需要和self关联起来
- 执行完init的逻辑之后,self变量会自动的被返回到调用处(发生实例化的地方)
-