0--python 没有char 只有chr
1. python /除取小数(多位) //整除 %取余
2---is 和 == 的区别
两个都可以判断是否相等
is 比较id 2== 比较值
3---python浮点数 不精确 1.2-1.0=0.1999
4字符串 ‘a' 可以和 ‘b’比较
5.divmod(a,b) 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。
6.赋值与id 对象=对象id相等 a=1 b=1 id不等 https://blog.csdn.net/weixin_40322020/article/details/85941916
7.深浅拷贝 https://blog.csdn.net/weixin_40636692/article/details/79783771
A = copy.copy(B) 此时A对象相当于把B对象中的内容给完成的拷贝了一份,存储在了一份新的内存地址当中。 浅拷贝
问题 不同内存空间 修改后值不变 但是只是一维的 拷贝的是二维的指向地址 改变一个对应的二维内容会变
深拷贝
cp_name = copy.deepcopy(name)
独立空间
8.python 数据结构 dict toulp list 属性
9.Python中变量可以不指定类型,会自动根据赋值语句来决定类型
同时,使用前必须赋值,在赋值的同时变量也就创建了
10.关于**kwargs与位置参数、*args、默认参数混着用的问题:(注意顺序)
位置参数、*args、**kwargs三者的顺序必须是位置参数、*args、**kwargs,不然就会报错:
11.线程由操作系统控制,协程由程序自身控制
12 局部变量和全局变量 (函数中才是局部的 循环是全局的)
函数会优先调用其里面的的局部变量 给局部变量赋值不会改变全局变量
https://blog.csdn.net/zhaogeno1/article/details/80298702
定义 一个全局变量a 在函数声明同名a 如果不给a 赋值直接使用会报错 如a*=a
global 声明局部变量
13 list pop 默认为最后一个 -1
14.python 的三元运算符 x if (条件)a>b else y
15.元组中只包含一个元素时,需要在元素后面添加逗号(1,)
16.try-finally 语句无论是否发生异常都将执行最后的代码。
try:
正常的操作
except(Exception1[, Exception2[,...ExceptionN]]]):
发生以上多个异常中的一个,执行这块代码
finally:
<语句> #退出try时总会执行
else:
如果没有异常执行这块代码
17.Python使用缩进作为语法边界,一般四个空格缩进
18.高级程序设计语言必须由 编译器或解释器翻译成低级语言。
19.
1. 在python中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。
2. python中的标识符是区分大小写的。
3. 以下划线开头的标识符是有特殊意义的。
以单下划线开头(_foo)的代表不能直接访问的类属性,需通 过类提供的接口进行访问,不能用"from xxx import *"而导入;
以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(__foo__)代表python里 特殊方法专用的标识,如__init__()代表类的构造函数。
20.0**0 1*0 等于1
21.
对于python而言,python的一切变量都是对象,变量的存储,采用了引用语义的方式,存储的只是一个变量的值所在的内存地址,而不是这个变量的值本身。
对于Python变量(基本类型:int, float)的赋值,仅仅是引用的赋值,所指向的对象并不改变。
对于Python的复杂数据类型(数据结构:list, set, dict)的赋值:
其所存储的是每个item所指向的变量的地址,因此对于数据结构内部元素的改变,是将该元素引用指向新的变量,而列表本身不会改变,e.g. a[i] = 7, id(a)不变。
然而若有对一个列表有新的赋值操作, 为引用重新初始化(赋值)的时候,就给这个变量重新赋予了一个地址,e.g.a = [1,2], id(a)变了。
22.表与数组的首要区别:数组是同类的
23.使用head查看数据,若不设数值,默认5行
24.可随机访问任一元素 只有顺序表可以
25 int('101',2) 后面参数(整形) 表示第一个参数是什么类型
36.关于函数的可变参数,可变参数*args传入函数时存储的类型是tuple 传入 list和tuple都可以 但是会转化为tuple
37.Python集合中的元素不可以是列表 可以是元组。
38.在Python 3.x中可以使用中文作为变量名。
39.有布尔型值参与运算时,true将转化为整型1,flase将转化为整型0后再参与运算
40.Python中有很多包管理工具,以下哪种不是? ports不是 是 pip yolk setuptools
41.python通常是一行写完一条语句,但是若语句很长,可以通过“\”来实现多行语句。
42.
python中主要存在四种命名方式:
1、object #公用
方法
2、_object #半保护:
#被看作是“protect”,意思是只有类对象和子类对象自己能访问到这些变量,
在模块或类外不可以使用,不能用’from module import *’导入。
#__object 是为了避免与子类的方法名称冲突, 对于该标识符描述的方法,父类的方法不能轻易地被子类的方法覆盖,他们的名字实际上是
_classname__methodname。
__foo解析器用_classname__foo来代替这个名字,以区别和其他类相同的命名
3、_ _ object #全私有,全保护
#私有成员“private”,意思是只有类对象自己能访问,连子类对象也不能访
问到这个数据,不能用’from module import *’导入。
4、_ _ object_ _ #内建方法,用户不要这样定义
43.and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 20。
or x or y 布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。 (a or b) 返回 10。
not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False
44.子类可以继承多个父类
45
abc isinstance(object,classinfo),用于判断object是否是classinfo的一个实例,或者object是否是classinfo类的子类的一个实例,如果是返回True. issubclass(class,classinfo),用于判断class是否是classinfo类的子类,如果是返回True.
46.循环读文件把[ ]变成() python读取文件内容并且生成迭代器,(f for f in file('testfile', 'r'))
47.
__init__是当实例对象创建完成后被调用的,然后设置对象属性的一些初始值。
__new__是在实例创建之前被调用的,因为它的任务就是创建实例然后返回该实例,是个静态方法。
即,__new__在__init__之前被调用,__new__的返回值(实例)将传递给__init__方法的第一个参数,然后__init__给这个实例设置一些参数。
__new__是一个静态方法,而__init__是一个实例方法
__new__方法会返回一个创建的实例,而__init__什么都不返回
只有在__new__返回一个cls的实例时,后面的__init__才能被调用
当创建一个新实例时调用__new__,初始化一个实例时用__init__
48.#%a.bf,a表示浮点数的打印长度,b表示浮点数小数点后面的精度