第二章
第一节
1.数据类型:数字、字符串、列表、元祖、字典、集合
2.数据结构:容器(包括以下)
数字类型(整型、非整型)
序列类型(字符串、元祖、列表)
映像类型(字典)
集合类型(可变集合、不可变集合)
3.数字类型
普通整数(二进制 八进制 十六进制0-9 a-f )
长整数(结尾+L)
浮点数(用科学计数法表示,小数点位置可变,会有四舍五入的误差,10用e代替)
复数(由实数和虚数的和,一般用cmath模块处理复数)
第二章
第一节
1.数据类型:数字、字符串、列表、元祖、字典、集合
2.数据结构:容器(包括以下)
数字类型(整型、非整型)
序列类型(字符串、元祖、列表)
映像类型(字典)
集合类型(可变集合、不可变集合)
3.数字类型
普通整数(二进制 八进制 十六进制0-9 a-f )
长整数(结尾+L)
浮点数(用科学计数法表示,小数点位置可变,会有四舍五入的误差,10用e代替)
复数(由实数和虚数的和,一般用cmath模块处理复数)
序列:列表、元组、字符串
列表最常见,可以改值,其余两种序列不可以,要想改值,必须先转成列表,而转列表就要用list
递归函数(1)
递归就是引用、调用自身的意思
例如:计算n的阶乘
这节又称世界灭亡教程
取模:取余数
地板除:对小数点后进行处理(被除数与除数中有一个精度更高,结果也会保留相应精度)
=赋值;==判断是不是相等,相等True或1
a!=b 检查两个操作数的值是否不相等,不相等的话结果为真
运算符只是返回True or False
赋值运算符,更为复杂,先做一个操作 然后再赋值
什么是位运算符?
and or not 布尔变量
标识运算符 is(是不是一个房子?/空间?) not
id 看看是不是真的一个空间(浅层拷贝与深层拷贝)
基本运算符 运算符有优先级
5.字典
·唯一内建的映射类型
·字典中的值并没有特殊的顺序,但是都储存在一个特定的键里面。可以区分键值对,但是无法排序
·字典对象是可变的,它是一个容器类型
5.1字典的创建
(1)方法一:直接创建
由多个 键及与其对应的值构成的对组成
大括号{键:值,键:值,键:值.....}
(2)方法二:使用dict函数通过其他映射(比如其他字典)或者(键,值)这样的序列对建立字典
通过键可以索引相应的值
dict函数也可以通过关键字参数创建字典
5.2字典基本操作
(1)len(d)返回d中项(键-值对)的数量
d【k】返回关联到键k上的值
d[k]=v将值v关联到键k上
de丨d[k]删除键为k的项
k in d检查d中是否有含有键为k的项
·字典可以改值,但是键不可以修改(键就相当于值对应的序号)
·字典与列表的区别
键类型:字典的键不一定为整型数据,也可能是其他不可变类型,例如浮点型、字符串或者元祖
自动添加:即使键在字典中不存在,在索引时,字典就会自动为它分配一个值,建立新的项。而列表中是不可以将值关联到列表范围之外的索引上的。
成员资格:表达式k in d(d为字典)查找的是键,而不是值。 表达式v in l (l为列表)则用来查找值,而不是索引。
(2)第一点——键可以为任何不可变类型——是字典最强大的地方
第二点
5.3字典的格式化字符串的
字典会使字符串格式化更高效一些。在每个转换说明符后面,可以加上(用圆括号括起来)键,后面再跟上其他说明元素。
5.4字典常用方法——
1.clear方法(1)
clear方法:清除字典中所有的项,是个原地操作(类似于list.sort),所以无返回值(或说返回None)
原地操作即是说原本的结果已经改变,而不是会产生新的结果。
每一个操作都会带来新的变化和结果,会有两两种可能。一种是原本的值发生改变,一种产生了新的值。
clear方法(2)
门牌号与房子
copy方法
·返回一个具有相同键-值对的新字典,这个方法实现的浅复制(shalllow copy)
2.deep copy
3.fromkeys方法
·使用给定的键建立新的字典,每个键默认对应的值为None
{}.formkeys([’键‘,’键‘])
·也可以直接在所有字典的类型dict上面调用方法
dict.formkeys(['键','键'])
4.get方法
更宽松的访问字典项方法
5.items keys values方法
6.pop&popitem方法 (弹出)
既有原地操作,又有新操作
字典操作以键为主
7.setdefault方法
8.update方法
6、集合
(1)集合set 由序列(或者其他可迭代的对象)构建的。主要用于检查成员资格,因此集合中相同的元素会被忽略。列表中因为元素在不同位置所以允许有相同的值
集合是无序的
(2)求并集和交集
(3)
(4)集合可变,不可做字典中的键。集合的规模可以增加或减少,集合中的元素不可改变。因此不可集合套集合
frozenset类型 将集合冻结,成为不可变的集合
7.1基本运算符
(1)算术运算符
(2)
(3)比较运算符
deepcopy避免副本修改值(原地修改而不是替换)时改变原始字典
副本进行替换值不会改变原始字典
UTF-8编码方式
字符串:用一对引号表示,用绿色高亮标记;长字符串用三引号
\(转义符):\之后的部分变成了第二语义
原始字符串:在前面加上r
元组:list、tuple
列表:一种可以改变数值的序列
元组和字符串:不可以改变值
元组和字符串想要改值用list函数变成列表改值即可
列表的其他操作:append、count、extend、index、insert、reverse、sort、sorted(非原地操作)
序列分类:列表、字符串、元组
序列[ ]实现二维的办法:
edward=['Esward Gumby',42]
john=['John Smith',50]
database=[edward,john]
database
[['Esward Gumby', 42], ['John Smith', 50]]
序列的其他的操作:索引、分片、加、乘、检查元素
序列索引:用变量、字符串、函数值来索引都可以
序列分片:第一个数字是开始取的位置,最后一个数字代表停下的位置(该位置对应的位置不取);只有起点在终点左侧时分片才能取出序列
变量名的取法:大小写英文字母、数字(数字不能)、下划线
第二章
第一节
1.数据类型:数字、字符串、列表、元祖、字典、集合
2.数据结构:容器(包括以下)
数字类型(整型、非整型)
序列类型(字符串、元祖、列表)
映像类型(字典)
集合类型(可变集合、不可变集合)
3.数字
普通整数(二进制 八进制 十六进制0-9 a-f )
长整数(结尾+L)
浮点数(用科学计数法表示,小数点位置可变,会有四舍五入的误差,10用e代替)
复数(由实数和虚数的和,一般用cmath模块处理复数)
4.序列:在需要操作一组数值时,用来表示一串数字、一行数字。
·用【】表示
·表示的一行数值可以不是一种类型(例如第一个是字符串,第二个是数字)
·序列也可以包含其他序列
4.1序列通用操作
索引、分片、加、乘、检查某个元素是否属于序列的成员(成员资格)、计算序列长度、找出最大元素和最小元素的内建函数
(1) 索引
序列中的元素是有编号的(从0开始递增),通过编号可以分别访问这些元素。
·从左至右 01234···
·负数索引 从右至左 最后一个是-1
·序列可以用变量索引,也可以直接使用索引
·用具体函数的返回来索引
(2)分片
·使用分片操作来访问一定范围内的元素
·通过冒号相隔的两个索引来实现【9:30】
注意:30是停的位置,是不取的
·确保起点在终点的左侧
·起点缺失即从第零个位置开始取;终点缺失即一直取到结尾
·步长:步长不能为零,可以为负
(3)相加
两种相同类型的序列才能进行连接操作
(4)相乘
None“这里什么也没有”
(5)成员资格检查
in(在序列中是否)
(6)长度 len
最大值max
最小值min
内建函数 (紫色)
4.2列表操作-List函数
常见的数据类型:
数字、字符串、列表、元组、字典、集合
面向对象,分类,但都有着共同的祖先——容器
序列和映射是最主要的两类容器,序列中每个元素有编号,映射中每个元素有名字(健)。而此外的集合就是一个非序列与非映射的容器。
列表可以被改值
list("XXX")
删除:del XXX[2]
利用分片来改值:
XX=list("jdiosj")
name[1:]=list(hfidahf)
lst.append(4) 是在lst后面加上一个4
序列[].count(某) 数出序列中有多少个某
a+b不改变a、b的值
a.extend(b),会让a的值改成a+b
a.index(4),在a里索引4
a.insert(3,“four"),在a序列中的3后面插入”four"
x=[1,2,3] x.reverse() 就会逆序
x.sort()对x的值进行排序
括号内填排序的依据,比如key=len
另一种排序方法:
x[2,5,3,2]
y=sorted(x)
x不改变y是排序后的
序列的基本操作对列表、元组、字符串都有用
序列的表示:edward=[ ],一个序列表示一串数据,但是数据可以不是一个类型。
序列的操作:索引
1. 序列中元素的编号从0开始递增
greeting="XXX"
greeting[数字]
2.负数索引,序列最右边的元素编号是-1,向左依次递减。
3.也可以直接索引。"XXX"[1]
4.input函数会把键盘输入的字符保存为一个数列
XXX=input("Year")[3]
序列的操作:分片
访问一定范围内的元素而非一个元素
XXX=ajdioahfds
XXX[数字1:数字2]
会提取两数字编号中间的元素。且前取等后面不取。所以这个方法无法访问最后一个元素。
缺失终点,可以包含最后一个元素。[-3:]
步长:
[起点 : 终点(不含):步长]
如果步长是正数,起点必须在终点的左侧
如果步长是负数,起点必须在终点的右侧
序列的操作:相加
[ajiodfa]+[djioapf]
但是不能跨数据类型相加,只能是数字加数字,文字加文字
序列的操作:相乘
用[数字]*数字
初始化长度为10的列表:
XXX=[Nome]*数字
检查值是否在一个序列中:in
XXX='ahfidoh'
"h"in XXX
序列的操作:长度、最小值和最大值
长度len()
最大值max()
最小值min()
十六进制 0x 开头
八进制 0开头
普通数字不能大于2147483647
长整数:结尾放L
浮点数(小数):
通常用e来代替10。1.23的十的九次方=1.23e9
但是浮点数的运算可能会有四舍五入的误差。
复数:
开根号:
from math import sqrt
sqrt( ) 但是括号内不能是负数,会报错
一般用cmah处理复数
import cmath
cmath. sqrt(-1)
序列:列表、元组、字符串
[ ]表示序列
Python也有序列套序列的操作
编号从0开始递增,从-1开始抵减
序列不仅可以用变量名索引,也可以直接用序列值索引
分片操作,通过[ ]相隔的两个索引来实现,取左不取右
Python分片操作的时候,要确保起点在终点的左侧,倒着取数,取不到
如果要取到包括序列结尾的元素,可以置空最后一个索引;同理也可以置空第一个索引和全部索引
步长
序列加、减、乘
数据类型:数字、字符串、列表、元组、字典、集合
列表是用的最多的数据类型
数字:
整数(int)长整数(long)浮点实数(float)复数(complex)
Python数字的上限是2的31次方
在整数的结尾写大写L,可以表示长整数
浮点数可能会有四舍五入的误差
复数要用cmath的模块处理
数字 字符串 列表 元组 字典 集合
容器:序列(列表和元组)
映射(字典)
其他(集合)
python 可以表达哪些数字
1、整数 int 有符号整数
十六进制(0x 开头 0-9 a-f)和八进制(0 开头 0-7)
2、long 长整数 ,L在末尾表示。
普通整数不能大于2^31
3、浮点数(小数)
e代替10
存储不准确
4、复数
实数和虚数的和