(一)数值
1.简单类型来表示值:整数int、浮点数float、复数complex、逻辑值bool、字符串str;
容器类型用来组织这些值:列表list、元组tuple、集合set、字典dict;
数据类型之间几乎都可以转换。
数据组织方式:没有组织;标签式组织数据;队列、栈、树、图等。
2.divmod(m,n):求整数除法的商和余数。
3.注意:浮点数运算时避免用相等判断,用他们之间的差小于一个很小的数,即:只要小于一个很小的数,就认为他们足够接近,就认为这两个浮点数是相等的。如;A-B<=10^(-17),即A=B。
3.复数:只能比较相等,不能比较大小。
应用:求平面上两个点(x1,y1)和(x2,y2)之间的距离:abs((x1,y1)-(x2,y2))
4.更多的数学模块;
(1)math模块(python内置模块):面向整数和浮点数,import math可以导入模块,dir(math)可以知道导入的模块中包含了什么内容;如:math中包含pi,引用时为math.pi;
(2)cmath模块:专门面向复数运算;可以实现直角坐标和极坐标之间的转换:cmath.polar(1+1j),cmath.rect(1,cmath.pi/2);
(二)逻辑值
1.单目运算符:例:N=2,那么-N等于-2。
2.优先级:not>and>or
3.字符串空串(" ")是“假”;空序列是“假”;空值None表示“无意义”或“不知道”,也是“假”。
(三)字符串
1.多行字符串:
用三个单引号表示:
‘’‘abc def
gfr hu’’’
2.特殊字符用转义符号“\”表示。
3.字符串基本操作:切片(slice)?[start?step],step缺省时为1,左闭右开;
4.判断字符串中是否包含某个子串(in)
例:>>>a=‘Hello’
'h’in a
False
5.split拆分;join合并;upper/lower/swapcase修改大小写;ljust/center/rjust(30)排版30位宽度左中右对齐;replace(“A”,“B”)将A替换成B
例:
(四)变量和引用
1.数据命名:字母和数字组成,下划线算字母,字母区分大小写;不带特殊字符(如:空格、标点、运算符等);第一个字符不能是数字,必须是字母(注:Python中,汉字算是字母)。
2.名字和变量:名字像一个标签,通过赋值语句“贴”在某个数据数值上,称为引用;如果一个标签没有经过赋值语句将他与对相关联,这个名字就叫做未定义的名字。
变量的类型随着指向的数据对象类型改变而改变。
(五)列表和元组
1.数据收纳盒:(1)列表可以删除、添加、替换、重排序列中的元素(可变类型)
(2)元组是不能再更新(不可变)
2.(1)创建列表:[];list();创建元组:();tuple();(创建空的列表和元组),元素类型没有限制。
(2)增长列表:append操作:末尾加一个数据对象;
insert:中间插入,按序号;
extend:把一个列表接在另一个后面。
(3)缩减列表:pop:不带参数时为移走列表中最后一位,pop(2)为根据序号移除;
remove:对数据对象本身的值移除;clear:列表清空。
(4)对象重新组织:reverse/sort
reverse:数据元素头尾反转重排;sort:大小顺序重排(从小到大);sort(reverse=True):从大到小
reversed/sorted:重排但不影响原列表
总结:
(5)索引:alist[n]/atuple[n];
切片:alist/atuple:左闭右开;
例:
(六)字典
1.标签收纳盒:通过标签来索引数据。
字典中保存着一系列key-value对,通过键值key来索引数值value.
2.创建字典:student={}/student = dict()
标签和数据项之间用冒号“:”连接;
批量添加数据项:student = dict.fromkeys((“name”,“age”))#由参数中所带的标签生成一个包含这些标签的字典;fromkeys中后面不加上参数时标签对应的值全部赋none,student = dict.fromkeys((“name”,“age”),10)这样就把标签绑定到10这个数据对象上。
字典是可变类型。
3.合并字典:update:如果新旧字典中key有重叠,用新的value更新旧的,如果没有重叠,直接添加进去。
增长字典:1>“关联操作”:以等于的形式直接把"name"这个标签和"Tom"这个value添加进student,若已经存在name这个标签,用新的值更新。
2>update操作:以key=value的形式批量添加数据项。例:friends加到字典里后变为字符串。
缩减字典:pop:可以实现逐项移走并以此返回该项的数据值;popitem:可以实现字典中数据项遍历的操作,逐项取出逐项处理。
4.访问字典的数据项
注意:get出来的value不能作为变量来用,不能实时更新。
(七)集合
1.标签袋:创建集合:{}/set(),可用set()从其他序列转换生成集合;不能加入可变类型数据;