内置数据类型

数字: Bool,Complex,Float,IntegerTrue/False; z=a+bj; 1.23; 123
字符串: String'123456'
元组: Tuple(123456)
集合: Set
字典: Dict{1:'123456'}
文件:File
数组:Array
字节数组:Bytearray
graph TD; 存储方式划分-->可变对象; 存储方式划分-->不可变对象; 可变对象-->字典; 可变对象-->列表; 可变对象-->可变集合; 不可变对象-->数字; 不可变对象-->字符串; 不可变对象-->元组; 不可变对象-->不可变集合;
graph TD;操作划分-->数字;操作划分-->序列;操作划分-->映射;数字-->整数;数字-->浮点数;数字-->二进制数;数字-->分数;数字-->...;序列-->字符串;序列-->列表;序列-->元组;映射-->字典;

数字数据

abs(x):取得传递的值的绝对值abs(-2) = 2
pow(x,y):进行平方计算pow(2,2) = 4
max(x[,x1,x2]):求多个传递的值的最大值max(1,22,5,3) = 22
min(x[,x1,x2]):求多个传递的值的最小值min(1,2,3,4,6) = 1
sum([x1,x2[,x3],y]):计算传递的多个值的和sum([1,2,3],2) = 8 ; sum([1,2,3]) = 6
math.sqrt():进行开方运算math.sqrt(4) = 2
math.pi:数字π3.1415926...
math.sin():得到数据参数内的正弦函数math.sin(1) = 0.8414709848078965
import sys
a = sys.getsizeof(None)
b = sys.getsizeof(False)
c = sys.getsizeof(0)
d = sys.getsizeof(1)
print(a,b,c,d)

# 16 24 24 28
# int为长整型,sys.getsizeof(0)数组元素为0.此时占用24字节(PyObject_VAR_HEAD的大小),sys.getsizeof(1)需使用一个元素所以为28

import operator as op
op.eq(0,False)
op.eq('',False)
op.eq(None,False)

# True
# False
# False

内置数据运算

算术运算**+, -, *, /, //, %, ****
逻辑运算and, or, not
比较运算==, !=, >, <, >=, ⇐,
位运算in, not in
成员运算is, is not
赋值运算
=s = 44
+=s += 45
-=s -= 4-3
*=s *= 44
/=s /= 40.25
%=s %= 4,1
//=s //= 40
**=s **=41

类型转换

int(x[,base])int('3'); int('1101',2)3; 13
float(x)float(3)3.0
chr(x)chr(3)'\x03'
hex(x)hex(3)'0x3'
oct(x)oct(3)'0o3'

字符串数据

转义字符

\续航符\ \反斜杠
\ '单引号\ "双引号
\a响铃\b退格
\e转义\000
\n执行\v纵向制表符
\t横向制表符\r回车
\f换页\0yy八进制数
\xyy十六进制数\other其他字符以普通格式输出

字符串方法

内建函数
find()s.find('s')0
join()s.join('abc'); s.join('a')'asosbsosc'; 'a'
len()len(s)3
count()s.count('s')2
split()s.split('o')['s', 's']
replace()s.replace('o','a')'sas'
dir()dir(s)["__ add __",< br/>...]
字符串转换
str()str(today)'2019-11-23'
repr()repr(today)'datetime.date(2019, 11, 23)'
索引分片
str[i]str[2]'l'
str[i:j:k]str[1:7:2]'el_'
格式化

%[(name)] [flags] [ width ] [.pression]typecode

name:指定参数名,用于字典参数格式化value=' this is %(test)s'' this is 1.2242'
flags:+/-表示左右对齐value=' this is %(test)-10s ''this is 1.2242 '
width:表示字符串宽度value=' this is %(test)10s ''this is 1.2242 '
precision:表示浮点数后的有效位数value=' this is %(test).3f ''this is 1.224 '
typecode:确定转换的数字类型

{fieldname!confersionflag:formatspec}

fieldname: 指定的数字或关键字,位置参数,关键字参数,下标/属性value='this is '.format(test = demo['s'])
confersionflag: r/a/s, repr,ascii.strvalue='this is {test!r} '.format(test = demo['s'])
formatspec:

[[fill] align [sign] [width] [.precision] [typecode]]

fill填充{test:0^10}: this is 0012.22200
align填充对齐方式与fill一同出现</>/^,右/左/中{test!r:0>10}: this is 000012.222
sign数字符号表示正负,参数为字符串不可用,相同显示正确结果{test:+}: this is +12.222
width表示字符串宽度: this is 12.222
.precision显示浮点数保留几位: this is 12.22
typecode
s获取传入对象的 __ str __
r获取传入对象的 __ repr __
c整数,转换为Unicode值
o整数,转换为八进制
x整数,转换为十六进制
d整数,转换为十进制
f浮点数,十进制显示

列表数据

  • 可以存储任何对象
  • 支持所有序列操作
  • 支持原处修改,可变对象
  • 长度可变,异构,可任意嵌套

列表操作

len(): 读取长度len(s)5
sum(): 求和sum(s)16
max()/min(): 最大最小值min(s)1
append(): 追加元素s.append(7)[1, 2, 3, 4, 6, 7]
extend(): 追加元素(在原列表上追加新列表)s.extend([1,2,3])[1, 2, 3, 4, 6, 7, 1, 2, 3]
insert(x,y): 插入元素(在x位之后插入y元素)s.insert(4,5)[1, 2, 3, 4, 5, 6, 7]
count(): 元素统计,返回列表中出现的次数s.count(4)1
index(): 返回元素的索引值s.index(6)5
pop(): 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值s.pop(-2)6
remove(): 移除列表中某个值的第一个匹配项s.remove(2)[1, 3, 4, 5, 7]
del(): 删除一个或多个元素(根据索引删除)del s[1][1, 4, 5, 7]
sort(cmp=None,key=None,reverse=False): 用于对原列表进行排序(reverse默认false为升序)s.sort(reverse=True)[7, 5, 4, 1]

列表推导式

t = [x for x in range(1,51)]
[1,2,3...,49,50]

import random
s = [random.randint(1,100) for i in range(10)]
[25, 83, 28, 68, 28, 84, 16, 45, 87, 73]

元组数据

  • 不可变序列(不可在原处修改)
    • 内容不可变
    • 数据之间的相对位置不可变
  • 任意对象的有序集合
  • 固定长度,异构,任意嵌套
  • 支持所有的序列操作,索引,切片

字典数据

  • 通过'key'来访问数据
  • 任意对象的无序集合
  • 可变长,异构,任意嵌套
  • 可变对象,任意修改
  • 序列操作对字典无效
  • 对不存在的索引赋值会增加新项
  • 'key'必须可被哈希化,数字,字符串
  • 字典无序存储
  • 通过哈希算法存储'key'查找速度快
  • 查询速度不会因元素增多而变慢
  • 额外储存'key'值,空间换取时间
01-10 09:53