一、对象比较
Python中有两种对象比较方式:
- 值比较。使用比较符号(==、>、<等)
- 标识符比较。使用 is、not 关键字。标识符就是对象在内存中的有效地址,使用 id() 函数可以得到对象的标识符。
二、None 对象
这是一个特殊对象,可以分配给任何变量。表示该变量没有具体的值。
三、Python动态类型的特点
1、可以把任何对象绑定到任何变量。“=”执行的是绑定操作。
x = 33
x = "hello"
先创建一个int对象,然后将它绑定给变量x。
x的类型先是int,然后是字符串类型,即x的类型由与之绑定的内容决定。
2、不允许不同类型间进行计算
如果是两个相互兼容的类型则可以计算,如int和float可以计算。
四、绑定
给变量赋值,实际上是吧名称绑定到对象上。
给已经绑定的对象再次绑定称为重绑定。
对象若是没有具体的变量绑定,其占用的内存空间会被垃圾回收程序处理,即可能从内存中删除。
x = "hello"
x = 666 //字符串对象"hello"被回收
五、整数类型
- bool:作为数字时为0和1
- int:长度太长时会自动转成long类型
- long:长度只受内存限制,所以可以很长。数字后面加上L表示long类型
六、平方运算
**表示数字的平方运算。
print(3**3) //27
七、整除运算
//表示数字的整除运算
print(7 // 2) //3
八、浮点数和小数
1、float:双精度浮点型
2、Decimal模块浮点数,用于处理高精度小数,传递值时传递的是字符串
3、complex:复数
九、字符串注意事项
- 没有“字符”类型,一个单字符就是一个长度为1的字符串
- 可用“+”连接字符串
- 字符串用单引号或双引号包括字符串都可以
- 多行字符串可通过"""表示
十、索引访问单个字符
a = "hello world"
print(a[0])
print(a[3])
负数索引表示从右往左访问,最右边的字符索引是-1,往左是-2,以此类推。
超出范围会报错:
十一、切片
格式是:[::]。三部分是:
- 切片开始位置,为空则默认为开头。
- 切片结束位置,为空则默认为结尾。
- 切片间隔。
十二、集合
集合内部的元素不要求都是同一种类型。
十三、元组
由0个或多个对象组成的有序序列。特点是内容不可变。元素用括号括起来。
a = ("ha",12,"4444")
可嵌套,即其中的元素也可以是一个元组。
十四、列表
与元组类似,特点是内容可变,元素用方括号括起来。
十五、字典
键值对,键必须是唯一的。
键必须是不可变的类型,所以元组可以作为键,列表则不可。
十六、集
集中的元素是无序的。
分成两种:
- set:可变的,可进行元素添加和删除
- frozenset:创建后元素不可变
十七、pass 关键字
表示一个分支什么都不做。
a = 100if a < 200:pass
如果是C语言加个分号就完事,Python没有分号所以需要这个关键字。
十八、lambda 函数
匿名函数,不能有分支、循环、return语句,其结果为表达式的计算结果。
fun = lambda x,y : x*yprint(fun(4,6)) //24
lambda 后面跟的是参数。
十九、闭包
将函数A及一部分参数封装成一个新的函数B,调用B时用封装了的参数和所需的其他参数一起传递给函数A。
二十、类的若干知识点
- 任何方法在其子类中都可以重写。
- 不支持重载。
- 语法上可以从类的内部和外部访问所有方法和属性。但有如下约定:
- 名称以“_”开头的对象认为是私有的。
- 名称以“__”开头的方法和属性,Python解释器会改编它们的名字,以避免不小心访问它们。
- self 变量相相对于c++的this,需要把self放在每个非static方法参数列表的第一个位置。
- super()函数初始化基类,此函数返回初始化的基类对象。