课时64: os.path
课时64: os.path
课时63: os模块
课时62: sys模块
课时61:系统工具
课时60:综合应用
替换
引用
引用时定义名称再替换
返回替换的数量
课时59: group编组
命名
课时58
课时57:
加r可以不用转译
match 默认从开始的位置开始匹配
课时56
a
课时:bom处理
字节顺序标记,导致读取之后出现额外的不需要的东西
读取时,忽略标记,encoding = 'utf-8-sig'
写入时,加上标记,也是encoding = 'utf-8-sig'
将特定内容转换成字节
将序列转换成字节 记得加s
直接申明一个字节
字节对象不支持原位改变
bytearray支持原位改变
课时51: 编码与解码
获取默认的字节编码
文件操作时,是根据电脑系统默认的字节编码去编码
“GBK即汉字内码扩展规范,K为扩展的汉语拼音中“扩”字的声母。英文全称Chinese Internal Code Specification。GBK编码标准兼容GB2312,共收录汉字21003个、符号883个,并提供1894个造字码位,简、繁体字融于一库。
课时50: ASCII UTF8等常用字符串编码
ASCII:存储在一个字节里,一个字节就是1个byte,一个byte就是8个比特位
乱码是因为使用了错误的字符编码
内存里是文本(优)
存储到硬盘里时或中间状态时是字节(b'\xe4\xbc\x98')
课时48:shelve应用
将多个对象存到一个文件时,维护起来比较麻烦
这时候可以用shelve,并且可以区别访问,给不同对象加上不同的键,利用键值来访问
自己创建一个类,
如果要读取,
将当前的状态存储在一个媒介上,这叫序列化
将存储的数据还原到之前的状态,这叫反序列化
课时26:包与模块管理及面向对象初步
表达式声明或改变一个对象
表达式嵌套在语句里
多条语句构成一个函数
多个函数+局部变量+全局变量构成了脚本
多个脚本就构成了程序
便于维护,把各种函数放到不同到文件里
built-in 内置
调用别的模块的值和函数
只调用别的模块的变量
如何省略别的模块的名字
名字重名怎么办?
也可以取个别名
为什么要管理包和模块?
代码重用、命名空间、实现数据或服务共享
步骤:
搜索模块文件的时候,怎么搜索?
先从当前项目开始找
定义名称的时候要小心,重名时,自定的模块会覆盖掉系统的
为什么改了模块的内容后,调用时候没有显示修改后的内容?因为没有重新找模块,重新编译
import importlib
importlib.reload(模块)
使用reload方法时,只能使用import 模块的方式
不能识别from import
包里有一个叫__init__.py
只有第一次调用的时候才会执行
以c语言为代表的面向过程的编程语言
核心思想是:人围绕计算机
核心是算法和数据结构
按照特定的流程把房子建造出来
如果房子要改造,需要重新推倒重来
面向对象编程
如果房子要改造,了解了怎么拼接不同的模块即可
核心思想是:计算机围绕着人的思想,尽量以符合人的思想去分解问题
先确定什么是对象,鼠标、杯子、一个人的想法、一门课程都是一个对象
买手机关心什么?
价格 内存大小 外观 品牌 屏幕尺寸 等等
这些都是对象的特征
开机 关机 装软件都不行,你还会要这台手机吗?
开机 关机 装软件这些都是对象的行为
把一个杯子从桌子上推下去,打碎了,从面向对象的角度解释这个问题?
杯子是对象
特征是什么?材质、容量
行为是什么?
属性?完整性,打碎了,完整性就被破坏了
桌子是一个对象
特征?高度、桌面厚度、有没有抽屉、颜色、材质等
人也是一个对象
特征?姓名、年龄、身高、起始点、终点
驾驶员也是一个对象
没有绝对标准的答案,只有相对合理的分析
面对对象之间有什么关系?
依赖
人开车,人依赖车
公交车
车窗、车轮和车是聚合的关系
驾驶员和乘客
人是驾驶员和乘客的负累