字符串类 str
upper() 所有字母大写
bit_length() 当前数字的2进制至少用几位来表示
capitalize() 首字母大写
lower() 所有字母小写 只能英文 casefold()特殊字符也可以
center(20,'#') 设置宽度,空白位置填充,把字符串放中间
count('n',5,6) 去字符串中寻找子序列出现的个数
startswith(),endswith() 什么开头,以什么结尾
find('n',8,9)在字符串中查找某个特定的字符,然后报出第几位,从0位开始
expandtabs(8) 把字符串中的'\t'和'\t'之前的字符一共补成8位
format() 格式化占位符
format_map({}) 格式化占位符
isalnum() 判断字符串中是否有数字和字母
isalpha() 判断是否有字母
isdecimal()判断是否有数字
swapcase() 大小写转换
isspace()是否全是空格
title() 转换城标题样式 istitle()判断是否是标题
join() 将字符串中的每个元素按照指定分隔符拼接
ljust(10,'')和rjust(10,'')在字符串右边和左边添加
strip() lstrip()rstrip()去除空白,换行,或者去掉某个字符,优先最多匹配
replace() 将字符串内的字符替换掉
列表 list
append() 不需要变量接收,直接追加到元列表末尾
count()计算列表内某个元素出现的次数
extend() 和append不一样,它是把可迭代对象迭代下,在追加到列表
index() 根据列表里的元素确定索引
insert(3,11) 在列表指定位置插入
pop删除某个值,并且获取删除的值,可以增加索引
remove() 直接把列表内某个元素删除,不返回删除的元素,从左边优先
del() 也是删除,也可以通过索引莱删除 clear()是清空列表
reverse()当前列表翻转
sort()从小到排序sort(reverse=True),从打到小排
字符串的创建后里面的值不能修改,但是列表的可以
tuple()元祖可以迭代,就是值不能更改
字典dict
字典for循环默认是key,有.keys() .values()
for k,v in info.items(): 把字典里的key和values取出来
key值不能重复
dict.fromkeys([],123)根据序列来创建字典,并且生成统一的值
get('sdf',11)根据key获取值,key不存在可以指定默认值
pop('fsa',90)指定key删除并且返回 popitem随机删除
setdefaulult('sdaf','asdf'),当key值不存在就添加,存在就把值获取
update({'asd':'asda'})或者update(k1=123,k2=12,k4='sadfs') 更新字典有的覆盖,没有添加
enumerate(apple,1) 打印字典里第一层所有的key,并且从数字1开始排序
set()是集合,里面定义不可变的元素,打印出来的是不重复的
global()可以把局部变量改为全局变量
lambda 形参名:逻辑关系
高阶函数:1传入的参数是函数 2返回值中包含函数
map本身就是一个for循环,处理的是可迭代对象,逻辑运算,map()处理序列中的每个元素,得到的结果是一个‘列表’,该‘列表’元素个数及位置与原来一样
filter()函数 本身就是一个for循环,遍历的是可迭代对象,但是函数部分处理的结果是布尔值,如果为ture则保留,逻辑判断,filter遍历序列中的每个元素,判断每个元素得到布尔值,如果是True则留下来
reduce要从functools模块中导入,能设定初始值,就是说我可以设定一个函数从几开始执行数据,reduce:处理一个序列,然后把序列进行合并操作
abs()取绝对值
all() 将列表中所有元素判断布尔值,0 None ‘’空字符串都是false
any()
只要有一个是真就是ture
bin()十进制转二进制 hex()十进制转16进制 oct()10进制到8进制
bool()判断布尔值
bytes()把字符串转换为字节,encoding='utf-8'
decode()解码decode('utf-8')
char()打印阿斯玛表
dir()打印某一个对象下面有哪些方法
divmod() 取商得余
eval()把字符串的数据结构提取出来,把字符串中的数学运算做一遍
hash()可hash的数据类型是不可变的,不可hash是可变的,是不能反推的,唯一的
help()查看方法怎么用
isinstance()判断对象是不是什么类型
locals()打印局部变量
max()最大值min()最小值 ,不同类型不能比较,
zip()传两个参数,是可迭代类型,然后一一对应
print(list(max(zip(p.values(),p.keys())))) print(max(people,key=lambda a:a['age']))
pow( x,y,z)x的y次方对Z取余
reversed 反转
slice(3,5) 定义切片
sorted()排序 print(sorted(name_dic,key=lambda key:namedic[key]))根据values的大小把key显示出来
字典for循环的是key值
文件操作,r读 w创建,覆盖 a追加,创建
b模式是用未编码的字符来处理,所以rb出来的内容需要用decode('utf-8')来解码,wb,我们写进去的是字符串类型,需要用byetes('ad',encoding='utf-8')或者encode('utf-8')来编码为二进制,linux系统默认就是二进制,不需要编码
读取文件编码不知道的情况下,是一定会乱码,用latin-1编码,会尽可能保留文件内容
fllush()刷新文件 tell()文件里光标所在的位置
seek(0)用来控制光标的移动,只要不是read其余都是字节,read是占3个字节
truncate(10)截取 用w+不可以的,截取0-10个字符的内容,其余都删掉,是写操作
循环文件的方式,for i in f.readlines 这样循环会把文件所有内容全读出来,for i in f 你要一行给你一行,不会占用太大内从
for循环,迭代器用iter()协议,next()来显示值,内置函数next就是遵循这个
yield是生成器就是把iter()协议进行封装,它比列表解析更省内存
装饰器:本质就是函数,为其他函数添加附加功能
原则:
1.不修改被装饰函数的源代码
2不修改被修饰函数的调用方式
闭包:函数嵌套 将变量封装
取列表得开头和结尾,a,*,c=列表,两个值交换 a = 1 b =2 a,b=b,a a=2 b = 1