基础一步一步实践开始
编码
ANSI 最开始 是美国 那边针对 英语26个单词 几乎采用是1个字节编码 这样范围是256
之后 我们中国有中文 日本有日语 韩国有韩语 这样都出了对应的编码 可这太乱了
于是 unicode 应运而生 采用2个字节编码 但这样对那些英文字母只需1个字节编码的来说 浪费了空间
于是 utf-8 应运而生 采用可变编码UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节 对于英文被编码1个字节 中文通常3个字节 特别偏僻的一般4-6个字节
内存中的编码都是unicode 最后存储的时候转化为utf-8存储
编码 decode 主要是编成 unicode
解码 encode 主要是解编成 utf-8
格式化
格式化的四种形式
name = 'yinsheng'
print('欢迎 '+name+' 光临!')
# 多个参数
print('欢迎',name,'光临!')
# 占位符
print('欢迎 %s 光临!'%name)
# 格式化字符串
print(f'欢迎 {name} 光临!')
1
2
3
4
5
6
7
8
迭代
for 循环 也称为 迭代
列表生成式
[x*x for x in range(0,10)]
其实 字典也可以 {x*x for x in range(0,10)}
生成器
列表生成式 换成元组 其实就是 生成器了
g=(x*x for x in range(0,10))
然后通过 next(g) 或者for循环来 for x in g :
还可以弄成函数形式 其中 field就是一个标志
迭代器
生成器的对象 一定是迭代器
字典、集合 列表、元组 字符串 不是迭代器 但是可以通过iter()函数变成迭代器
字典 集合 列表 元组 字符串 生成器 都是可迭代的
返回值_闭包
闭包 就是 函数里面返回函数
调用闭包 创建的函数哪怕一模一样 也不相等
注意闭包函数 里面调用的变量 比如 i 这种有变化的 用函数封装 不要用 for 循环
里面 引用外面的变量要赋值的话 注意nonlocal 声明变量
访问限制
__开头的变量和函数 类外面调用不了
_开头的变量和函数 类外面可以调用 但是不要调用 它已经代表私有的意思在里面了
而要调用以及修改 则类要多加两个函数 get调用获取 和set 修改
继承和多态
当我们定义一个class的时候,我们实际上就定义了一种数据类型。我们定义的数据类型和Python自带的数据类型,比如str、list、dict没什么两样: ---------<廖雪峰>
继承(ocp原则 保持代码不变但是可扩展)
多重继承(排在前面的方法会覆盖后面的方法) 比如
class A(B,C):
pass
假如B和C中都有test方法 B中的test方法优先调用 相当于覆盖率C中的test方法
1
2
3
私有属性和私有方法
当属性和方法只需要在类定义内部使用时,就可以使用私有属性和私有方法特点:在类定义外部,无论是通过类对象还是实例对象均无法获取私有属性和调用私有方法
获取对象信息
dir 获取属性和方法
getattr 获得属性名称的值 getattr(obj,属性名称)
setattr 建立属性 setattr(obj,属性名称,值)
hasattr 判断是否有属性 hasattr(obj,属性名名称)
异常处理
Built-in Exceptions — Python 3.10.5 documentation
捕获异常 try: exception finally
1捕获成功 打印出对应的提示信息
2没有捕获成功 则一层一层抛出错误的信息 要学会定位到真正的地方 且接下来的不会执行 要想有错误信息且执行后面的语句 就要借助logging模块 logging.exception(错误信息)
抛出异常
1.捕获之后 也可以抛出异常
2.抛出的异常和捕获的异常不一样 相当于转化了异常错误类型
进制转换
二进制转十进制 用 int(a,2)
八进制 16进制转十进制 用int(a,8) int(a,16)
十进制转二进制 bin(a)
十进制转八进制 oct(a)
十进制转16进制 hex(a)
python一些内在的原理图片
————————————————
版权声明:本文为CSDN博主「BRAVE_Fighting」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/shijianzhihai/article/details/126682302