目录
一、基本数据类型
1、整数类型
2、浮点数类型
3、科学计数法
4、复数类型
5、基本操作符
6、数值运算基本函数
7、优先级
二、组合数据类型
1、集合类型
2、序列类型
(1)字符串
(2)元组
(3)列表
(4)字典
一、基本数据类型
1、整数类型
十进制:1010, -99
二进制:0b010,-0B101
八进制:0o123,-0O456
十六进制:0xFF,-0xa9
2、浮点数类型
取值范围: ~
精度:
注:浮点数运算存在不确定尾数
print(0.1+0.2)
>>>0.30000000000000004
可以利用round函数辅助计算
round(x, d) #对x四舍五入,d是小数截取位数
a = round(0.1 + 0.2, 2)
print(a)
>>>0.3
3、科学计数法
4.3e - 3 -> 4.3 *
9.6E5 -> 9.6 *
4、复数类型
z = 1.23e-4 + 89j
print(z.real, z.imag)
>>>0.000123 89.0
5、基本操作符
十进制:1010, -99
二进制:0b010,-0B101
八进制:0o123,-0O456
十六进制:0xFF,-0xa9
取值范围: ~
精度:
注:浮点数运算存在不确定尾数
print(0.1+0.2) >>>0.30000000000000004可以利用round函数辅助计算
round(x, d) #对x四舍五入,d是小数截取位数 a = round(0.1 + 0.2, 2) print(a) >>>0.3
3、科学计数法
4.3e - 3 -> 4.3 *
9.6E5 -> 9.6 *
4、复数类型
z = 1.23e-4 + 89j
print(z.real, z.imag)
>>>0.000123 89.0
5、基本操作符
4.3e - 3 -> 4.3 *
9.6E5 -> 9.6 *
z = 1.23e-4 + 89j print(z.real, z.imag) >>>0.000123 89.0
5、基本操作符
| 操作符 | 描述 |
|---|---|
| x + y | 加,x与y之和 |
| x - y | 减,x与y之差 |
| x * y | 乘,x与y之积 |
| x / y | 除,x与y之商,10 / 3结果是3.3333333333333335 |
| x // y | 整数除,x与y之整数商,10 // 3结果是3 |
| + x | x本身 |
| - x | x的负值 |
| x % y | 余数,模运算,10%3结果为1 |
| x ** y | 冥运算,x的y次冥,,y为小数, 结果是 |
| x op= y | 即x = x op y,其中op为二元操作符 x += y x -= y x *=y x /= y x //= y x %= y x **= y x = 3 print(x **= 3) >>>27 |
6、数值运算基本函数
| 函数名字 | 描述 |
|---|---|
| abs(x) | 绝对值,x的绝对值 abs(-10.01)结果为10.01 |
| divmod(x, y) | 商余,返回一个元组类型(x // y, x % y) divmod(10, 3)结果为(3, 1) |
| pow(x, y[, z]) | 冥余,(x ** y) % z,[]里的参数z可省略 pow(2, pow(3, 2), 10)结果为2 |
| round(x, [, d]) | 四舍五入,d是保留小数位数,可省略默认为0 round(-10.123, 2)结果为-10.12 |
| int(x) | 将x变成整数,舍弃小数部分 int(123.45)结果为123;int("123")结果为123 |
| float(x) | 将x变成浮点数,增加小数部分 float(12)结果为12.0;float("1.23")结果为1.23 |
| complex(x) | 将x变成复数,增加虚数部分 complex(4)结果为4 + 0j |
| max() | 最大值,返回中最大值,n不限 max(1, 9, 5, 4, 3)结果为9 |
| min() | 最小值,返回中最小值,n不限 max(1, 9, 5, 4, 3)结果为1 |
7、优先级
| 运算符说明 | Python运算符 | 优先级 | 结合性 |
|---|---|---|---|
| 小括号 | () | 17 | 无 |
| 索引运算符 | x[i]或x[i1:i2] | 16 | |
| 乘方 | ** | 15 | 右 |
| 按位取反 | ~ | 14 | 右 |
| 符号运算符 | +(正号) -(负号) | 13 | 右 |
| 乘除 | *、/、//、% | 12 | 左 |
| 加减 | +、- | 11 | 左 |
| 按位移动 | >>、<< | 10 | 左 |
| 按位与 | & | 9 | 右 |
| 按位异或 | ^ | 8 | 左 |
| 按位或 | | | 7 | 左 |
| 比较运算符 | ==、!=、>、>=、<、<= | 6 | 左 |
| is运算符 | is、is not | 5 | 左 |
| in运算符 | in、not in | 4 | 左 |
| 逻辑非 | not | 3 | 右 |
| 逻辑与 | and | 2 | 左 |
| 逻辑或 | or | 1 | 左 |
注:结合性——当一个表达式中出现多个优先级相同的运算符,先执行哪个运算符,先执行左边的叫左结合性,先执行右边的叫右结合性
二、组合数据类型
1、集合类型
定义:用{}表示,元素间用逗号分隔的数据类型
特点:无重复,无序,不可变
应用:包含关系比较(因为遍历集合时间复杂度低)或者数据去重
| 操作符 | 描述 |
|---|---|
| S | T | 并,返回一个新集合,包括在集合S和T中的所有元素 |
| S - T | 差,返回一个新集合,包括在集合S但不在T中的元素 |
| S & T | 交,返回一个新集合,包括同时在集合S和T中的元素 |
| S ^ T | 补,返回一个新集合,包括集合S和T中的非相同元素 |
| S <= T或S < T | 返回True/False,判断S和T的子集关系 |
| S >= T或S > T | 返回True/False,判断S和T的包含关系 |
| S |= T | 并,更新集合S,包括在集合S和T中的所有元素 |
| S -= T | 差,更新集合S,包括在集合S但不在T中的元素 |
| S &= T | 交,更新集合S,包括同时在集合S和T中的元素 |
| S ^ =T | 补,更新集合S,包括集合S和T中的非相同元素 |
| 函数 | 描述 |
|---|---|
| S.add(x) | 如果x不在集合S中,将x增加到S |
| S.discard(x) | 移除S中元素x,如果x不在集合S中,不报错 |
| S.remove(x) | 移除S中元素x,如果x不在集合S中,产生KeyError异常 |
| S.clear() | 移除S中所有元素 |
| S.pop() | 随机返回S的一个元素,更新S,若S为空产生KeyError异常 |
| S.copy() | 返回集合S的一个副本 |
| len(S) | 返回集合S的元素个数 |
| x in S | 判断S中元素x,x在集合S中,返回True,否则返回False |
| x not in S | 判断S中元素x,x不在集合S中,返回True,否则返回False |
| set(x) | 将其他类型变量x转变成集合类型 |
2、序列类型
(1)字符串
定义:由一对单引号或双引号表示单行字符串,一对三单引号或三双引号表示多行字符串
特点:不可变,有序
应用:用三引号表示的字符串可以充当注释使用
索引:str[序号](序号如果是正数,则是从左边开始,如果是负数,则是从右边开始)
切片:str[M:N:K](表示根据步长K获取序号M到N的字符串,K缺失表示K为1,M缺失表示至开头,N缺失表示至结尾)
s = "123456789" print(s[1]) >>>"2" print(s[-1]) >>>"9" print(s[1:3]) #获取字符串第一个字符到最后一个字符(不包括最后一个字符)的所有字串 >>>"23" print(s[1:-1]) #不包括序号为-1的元素,即最后一位元素 >>>2345678 print(s[1:6:2]) >>>"246" print(s[2:]) >>>"3456789"
| 转义字符 | 说明 |
|---|---|
| n | 换行符,将光标位置移到下一行开头 |
| r | 回车符,将光标位置移到本行开头 |
| t | 水平制表符,即Tab键,一般相当于四个空格 |
| a | 蜂鸣器响铃,注意不是喇叭发生,一般现在的计算机都不带蜂鸣器 |
| b | 退格,将光标位置移到前一列 |
| \ | 反斜线 |
| ' | 单引号 |
| '' | 双引号 |
| 在字符串行尾的续行符,即一行未完,转到下一行继续写 |
| 操作符 | 描述 |
|---|---|
| x + y | 连接两个字符串 |
| n * x 或 x * n | 复制n次字符串x |
| x in s | 判断x是否在s字符串中,如果是返回True,否则返回False |
| 函数 | 描述 |
|---|---|
| len(x) | 返回字符串x的长度 len("12345")结果为5 |
| str(x) | 任意类型x所对应的字符串形式 str(1.23)结果为"1.23" str([1, 2])结果为"[1, 2]" |
| hex(x)或oct(x) | 整数x的十六进制或八进制小写形式字符串 hex(425)结果为"0x1a9" oct(425)结果为"0o651" |
| chr(x) | x为Unicode编码,返回其对应的字符 |
| ord(x) | x为字符,返回其对应的Unicode编码 |
| str.lower()或str.upper() | 返回字符串的副本,全部字符小写/大写 "AbCdEfGh".lower()结果为"abcdefgh" |
| str.split(sep=None) | 返回一个列表,由str根据sep被分隔的部分组成 "A,B,C".split(",")结果为['A', 'B' , 'C'] |
| str.count(sub[,beg=0,end=len(str)]) | 返回子串sub在str中出现的次数 "an apple a day".count("a")结果为4 |
| str.replace(old, new) | 返回字符串str副本,所有old子串被替换乘new "python".replace("n", "n123.io")结果为“python123.io” |
| str.center(width[, fillchar]) | 字符串str根据宽度sidth居中,fillchar为填充可选参数 "python".center(20,"=")结果为"=======python=======" |
| str.strip(chars) | 从str中去掉在其左侧和右侧chars中列除的字符 "= python=".strip(" =np")结果为"ytho" |
| str.join(iter) | 在iter变量除最后元素外的每个元素后增加一个str “,”.join("12345")结果为“1,2,3,4,5” #主要用于字符串分割 |
| str.find(x[,beg=0,end=len(str)])或str.rfind(x[,beg=0,end=len(str)]) | 从头或尾开始查找,返回下标,找不到返回-1,可指定查找起点 |
| str.index(x[,beg=0,end=len(str)])或str.rindex(x[,beg=0,end=len(str)]) | 从头或尾开始查找,返回下标,找不到返回一个异常,可指定查找起点 |
| str.isdigit() | 判断字符串里是否都是数字,是返回True,否则返回False |
| str.islower() | 判断字符串里是否都是小写字母,是返回True,否则返回False |
| str.supper() | 判断字符串里是否都是大写字母,是返回True,否则返回False |
| str.startswith(x) | 判断字符串开头是否为x子串 |
| str.endswith(x) | 判断字符串结尾是否为x子串 |
字符串的格式化
{<参数序号>:<格式控制标记>}
: <填充> <对齐> <宽度> <,> <.精度> <类型> 引导
符号
用于填充的
单个字符
<左对齐
>右对齐
^居中对齐
槽设定的输出宽度 数字的千位分隔符 浮点数小数精度或
字符串最大输出长度
整数类型
b,c,d,o,x,X
浮点数类型
e,E,f,%
print("{0:=^20}".format("PYTHON")) >>>'=======PYTHON=======' print("{0:10}".format("PYTHON")) >>>'PYTHON ' print("{:,.2f}".format(12345.6789)) >>>'12,345.68' print("{:%}".format(0.3)) >>>30.000000%
(2)元组
定义:由一对小括号( )组成,元素间用逗号分隔.
任意无符号的对象,以逗号隔开,默认为元组
特点:不可变,有序
应用:可用于函数返回多个值
索引:tuple[序号](序号如果是正数,则是从左边开始,如果是负数,则是从右边开始)
切片:tuple[M:N:K](表示根据步长K获取序号M到N的元组,K缺失表示K为1,M缺失表示至开头,N缺失表示至结尾)
| 函数 | 描述 |
|---|---|
| tuple(x) | 将x转成元组类型 注:字符串、列表、集合可直接转换,字典类型转换只会将所有的Key以元组的形式返回 |
| len(tuple) | 返回元组长度 |
| max(tuple) | 返回元组中元素最大值 |
| min(tuple) | 返回元组中元素最小值 |
(3)列表
定义:由一对中括号[ ]组成,元素间用逗号分隔
特点:可变,有序
| 函数或操作 | 描述 |
|---|---|
| ls[i] = x | 替换列表ls第i元素为x |
| ls[i : j : k] = lt | 用列表lt替换ls切片后所对应元素子列表 |
| del ls[i] | 删除列表ls中第i元素 |
| del ls[i : j : k] | 删除列表ls中第i到第j以k为步长的元素 |
| ls += lt | 更新列表ls,将列表lt元素增加到列表ls中 |
| ls *= n | 更新列表ls,其元素重复n次 |
| ls.append(x) | 在列表ls最后增加一个元素x |
| ls.clear() | 删除列表ls中所有元素 |
| ls.copy() | 生成一个新列表,赋值ls中所有元素 |
| ls.insert(i,x) | 在列表ls的第i位置增加元素x |
| ls.pop(i) | 将列表ls中第i位置元素取出并删除该元素 |
| ls.remove(x) | 将列表ls中出现的第一个元素x删除 |
| ls.reverse() | 将列表ls中的元素反转 |
| ls.count(x) | 返回元素x在列表ls中出现的次数 |
| ls.index(x) | 返回列表ls中元素x的索引值 |
| ls.sort(cmp=None, key=None,reverse=False) | 对列表进行排序,默认升序 |
(4)字典
定义:由一对大{ }组成,为键值对的集合,键值对用冒号:
特点:键为不可变数据(字符串、元组)值为可变数据(列表、字典),无序
| 操作和函数 | 描述 |
|---|---|
| del d[k] | 删除字典d中键k对应的数据值 |
| k in d | 判断键k是否在字典d中,如果在返回True,否则False |
| len(d) | 返回字典d中键的个数 |
| d.keys() | 已列表的形式返回字典d中所有键信息 |
| d.values() | 以列表的形式返回字典d中所有值信息 |
| d.items() | 以列表的形式返回字典d中所有键值对(key,value)元组信息 |
| d.get(k[,default]) | 如果键k存在,返回对应的值,如果不存在则返回default |
| d.pop(k[,default]) | 如果键k存在,取出对应的值,如果不存在则返回default |
| d.popitem() | 以元组的形式返回并删除字典d中最后一对键和值,后进先出 |
| d.clear() | 删除字典d中所有的键值对 |
| d1.update(d2) | 将字典d2的键值对更新到字典d1中 |



