一.集合的包含判断
a.issuperset(b): 判断b是否为a的子集
a.issubset(b): 判断a是否为b的子集
isdisjoint: 判断交集---- 有--Flase
二.可变与不可变
不可变(immutable):int、字符串(string)、float、(数值型number)、元组(tuple)
可变(mutable):字典型(dictionary)、列表型(list)
在Python中,字符串属于不可变对象,不支持原地修改,如果需要修改其中的值,只能重新创建一个新的字符串对象。
# replace
三.字符串转义
字符前存在\,在特定情况下字符就不再表示本身的意思
常见:
符号 | 解释 | 案例 |
---|---|---|
\n | 换行符 | print(‘s\nd’) |
\t | 水平制表符 | print('ss\t’dd) |
\b | 退格(删除一格) | print(‘帅 \b 不帅’) |
\r | 当前位置移到本行开头 | print(‘d\rhahahs’) |
\ | 反斜杠 | print(’\’) |
‘’ | 一个双引号 | |
\0 | 一个空格符 | |
\a | 系统提示音 |
字符串前面加上r就可以防止转义
四.编码与解码
ms = '张三很帅'
ms.encode('utf-8') # 编码
ms.decode('utf-8') # 解码
五.格式化补充
#1. %s 占位符
print('%s' % '帅')
#2. %r 显示原数据类型
print('%r' % '帅')
# %d 整数
print('%d' % 1)
# %f 浮点数
print('%f' % 2.1)
# %c ASCII
print('%c' % 65)
# %o 8进制
print('%o' % 11)
# %x 16进制
print('%x' % 11)
# %e 科学计数法
print('%e' % 10.3)
# -: 左对齐 6:这位置指定长度 3:这位置指定小数点后面保留多少位
print('%-6.3f' % 10.3) # 优先满足小数点后几位数
# +:显示正号
print('%+6.3f' % 10.3) # 优先满足小数点后几位数
# 格式化长度
print('%5s' % 'ab') # ab
format扩展
format扩展
# 保留小数点后两位
a1 = '{:.2f}'.format(12.333)
print(a1)
# 指定传入,保留小数点后两位
a2 = '{s:.2f}'.format(s=12.333)
print(a2)
# 百分比格式化
a3 = '{:.2%}'.format(0.333)
print(a3) # 33.30%
# 转十六进制
a4 = '{:x}'.format(20)
print(a4)
# 转八进制
a6 = '{:o}'.format(20)
print(a6)
# 左对齐,长度为10
a7 = '{a:<10}'.format(a=12.3, b=13.44)
print(a7)
# 传入数据长度不足,用x填充
a8 = '{a:x<10}'.format(a=12.3, b=13.44)
print(a8)
# 右对齐
a9 = '{a:>10}'.format(a=12.3, b=13.44)
print(a9)
# 两边对齐
a10 = '{a:^10}'.format(a=12.3, b=13.44)
print(a10)
六.进制转化
# 十进制转二进制
bin()
# 十进制转八进制
oct()
# 十进制转十六进制
hex()
# 其它进制转十进制
int('进制数据',进制类型)
# ord()函数将字符转换为ASCII码,
ord("a") # ----- 97
# chr则将ASCII码转换成字符。
chr(97)
七.深浅拷贝
1.浅拷贝
外层不受影响,内层会受影响
l1 = [1234, 5678, 910]
l2 = ['a', l1]
l3 = l2.copy()
l1.append('帅')
>>> id(l1)
1750917116360
>>> id(l2)
1750917140744
>>> id(l2[1])
1750917116360
# 内层id地址相同
print(id(l2)) # 2429073232384
print(id(l2[1])) # 2104199485056
print(id(l3)) # 2429073240128
print(id(l3[1])) # 2104199485056
# 浅复制 外层不同,内层id相同
2.深拷贝
内外层都不影响
import copy
l1 = [1234, 5678, 910]
l2 = ['a', l1]
l4 = copy.deepcopy(l2)
l1.append('帅')
print(id(l1)) # 1633334532096
print(id(l2)) # 1633334532352
print(id(l4)) # 1633334448384
print(id(l2[1])) # 1633334532096
print(id(l2[0])) # 1633303890928
print(id(l4[0])) # 1633303890928
print(id(l4[1])) # 1633334532672
l2[0] = 1234
print(id(l4[0])) # 外层地址不同
print(id(l2[0]))
# 内外层都不同