python知识点

二进制:0b(bin()) 八进制:0o(oct()) 十六进制:0x(hex()) 十进制:int()
转换成ascll码:ord()
序列
字符串:str
原始字符串:在字符串前加r
子字符:与数组相同,整数都可
子字符串[起点位置:n(n=最后一位+1) /-n(从字符串末尾往回读 n位)/不输入(截取到末尾)]
[-n:不输入]从倒数第n位到最后
列表list 引用类型:[1,2,3,4,5,…],列表中各元素的数据类型可不同 二维数组=嵌套列表
截取与字符串相同,若是用了冒号,截取的结果为列表
元组 tuple: (1,2,3,4,5,…) 单个元素的元组后面要加,不可变类型
检验某个元素是否在序列中:n (not) in 序列
序列长度:len(序列) 最大/最小元素:max/min(序列)
集合(无序) set引用类型:{1,2,3,4,5…} 空集 set()
字典 dict 引用类型:{key1:value1,key2:value2,key3:value3},dict[key],不能有相同的key值,空字典{},key值不可以是列表、集合、字典(可变的数据类型)
遍历字典的key和value:
for key,value in dictname.items():
print(key+”:”+value)
不可变数据类型:数、元组、字符串
区别:内存地址是否发生改变
元组里面若有列表元素,该元素可变
———————————————————————————————————————————————————————
**:次方
成员运算符:int/not in,字典在作成员运算符判断时,是判断该值是否是其的一个键
身份运算符:is/is not,比较两个变量的身份是否相等(内存地址是否相等)
id():返回内存地址
位运算符:把变量当作二进制数进行运算(& | ~ ^ << >>),注意位运算符与逻辑运算符(and or not)的区别
判断变量类型:isinstance(变量名,类型名),类型名可以是元组
type(变量名)不可以判断该变量的子类是否是某个类型

运算符优先级
python注意缩进
条件语句:
if 条件 :
执行语句…
else :

———————————————————————————————————————————————————————
一个包文件内必须有__init__.py,init.py模块的名字即为包的名字
用import.模块名导入模块,当调用模块内的变量及函数时,要使用模块名.变量/函数。若模块不与源文件在同名包中,import和调用时必须带包名及点操作符
import a as b:调用时可以用b.函数/变量
from a import b:b为函数或变量名或模块名,可直接使用函数或变量或模块名,b若为*,则引入所有函数、变量或模块
模块的内置变量
例:a中有__all__=[‘将被调用的变量名’,‘将被调用的函数名’],当被from a import *时,不在all内部的变量或函数不被导入
导入包,实际上只导入了包内的__init__.py
init.py可通过__all__决定当当使用from 包名 import *时,哪些模块被导入,
当用all方法在__init__.py导入了一些模块时,若要使用该模块,则要使用模块名.函数/变量
导入任何模块时,都会执行模块中的代码
查看模块内置变量:dir(),dir()可加入已导入的模块作为实参,返回该模块的内置变量
name:查看该文件的命名空间(由.操作符及包名组成的路径名),若为入口文件,则为__main__
package:查看模块所处的包,若为入口文件,则为null
doc:查看模块注释,若无,则为null
file:从终端当前目录查看模块路径
if name==”main”:
作为入口文件执行的程序
作为模块执行的程序
以上方式能提高模块的复用性
import -m 入口文件的命名空间:此操作必须在入口文件的上级目录进行,若入口文件导入了其他模块,则其他模块的命名空间也要改变
将要引入模块的顶级包概念:由控制台位置与被引入模块的相对路径决定,是包含引入模块的与控制台位置同目录下的包
入口文件的导入一定要是绝对导入,其他模块可用from xxx import xxx进行相对导入,.表示同文件目录,…表示上级文件目录,以此类推。该方法引入的模块不能高于该模块的顶级包
———————————————————————————————————————————————————————

round(a,n):将a化简到小数点后n位
函数返回的多个值用逗号隔开,返回的是一个元组。可以在赋值符号的左边由多个变量以逗号隔开,接受多个返回值
关键字参数:在调用函数时,可以指明实参的赋值
默认参数:在定义形参时,为形参赋予默认值
可变参数:在定义形参时,在形参前加上号,该形参在函数内部是一个元组。也可在调用函数时,将元组作为实参
若形参是可变参数,实参也是可变参数,则会变成二维元组,解决方法:在变量实参前加上

在形参前加上**,实参列表为a=b,c=d,e=f…则形参是一个字典
如果是形参要传字典,则dictname
Python没有块级作用域

global关键字
若在函数块中声明一个global类的变量,在执行一次该函数后,该变量在函数外可以调用
在局部变量中加上global关键字,会使其变成全局变量,若是存在同名全局变量,则对其赋值会改变全局变量的值。
不声明局部变量为global,若在调用语句前无赋值语句,则将调用认作全局变量;若调用语句后有赋值语句,不改变全局变量,会报错;若有赋值语句,则不会报错,后续的调用语句会使用局部变量
所以说如果想在方法内部修改全局变量,必须要用global关键字,如果没有global关键字,就只能有调用,或者先赋值一个局部变量再调用
———————————————————————————————————————————————————————
类中的实例函数(方法)形参列表中必须有一个self形参
构造函数:def init(self,形参列表)
类或实例的变量及方法列表:dict
区分类变量/实例变量
若要修改实例变量,则必须在方法中的变量前增加self.
若要修改类变量,则必须在方法中的变量前增加类名.或self.class.
若啥都不加,则毛用没有
若要访问一个实例的变量,先查找实例字典中是否有该变量,若无,则查找类变量
实例变量可以不声明
类方法:操作类变量的一些方法
@classmethod
def method(cls…):
以cls为前缀调用的变量是类变量
一般来说,调用类方法时要用类名.
静态方法:不需要指向自己的形参
@staticmethod
对象和类都可以调用静态方法,可以访问类变量
静态方法和类方法不能调用实例变量
将方法或变量设为private:在方法或变量名字前加__
但是若进行对象名.私有变量赋值操作仍会成功,此操作为该对象新建了一个新的同名实例变量(动态语言特性)
实质上python类中的私有变量只是在内存中改了一下名字

继承
在类名的括号中加入被继承的类名
被继承的变量、方法可以直接访问
在子类的构造函数中,用父类名.init(self,形参列表)调用父类的构造函数。一定要加入self,否则形参列表无法对应。类调用实例方法,必须存在指针self
也可用super(本类名,指针).父类函数(除self以外的形参列表)调用父类的函数
开闭原则:封装后的类对接口开源,对修改自身的操作关闭
———————————————————————————————————————————————————————
python中的枚举类型
类Enum,存储于enum模块中
在定义某个枚举类时,必须继承Enum类,用于将同性质的某个“类型”(枚举类型)映射到特定的数字或字符(枚举值)上,建议枚举名为全大写,当使用print函数输出该枚举类型时,输出类名.枚举类型,是一个枚举类型的类,而不是枚举类型对应的枚举值
枚举类可以防止印射重复及代码对印射的修改
不同枚举类型可以有相同的枚举值,但此时后面的枚举类型为前面枚举类型的别名,遍历时不会出现
若要遍历时将所有别名也遍历:in 类名.members.items()
获取枚举值:类名.枚举类型.value 获取枚举类型:类名.枚举类型.name
可以使用for循环遍历枚举类型中的所有枚举名或枚举值
查询枚举值对应的枚举类型:类名(枚举值)
枚举类型本身可以作is运算,不同枚举类型之间的is运算为false
枚举值可以做大小运算

enum模块中有IntEnum类型,继承其的枚举类枚举值必须为数字
enum模块中有unique关键字,在声明继承类的头上加上@unique,该枚举类内部不能有带别名的枚举类型
枚举类是单例,不能实例化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值