python函数整理
Posted 刘文巾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python函数整理相关的知识,希望对你有一定的参考价值。
1 基本运算符
/ | 除法,运算结果为浮点数 |
// | 除法,运算结果向下取整 也就是说,如果结果是负数的话,会找比它小的、最大的那个负数 |
+ | 布尔值的加减运算中,True被看作1,False被看作0 |
% | 求模运算 x%y=x-(x//y)*y |
** | 乘方运算符 a**b相当于pow(a,b) |
2 进制、类型转换
0x 0b | 十六进制、二进制互相转换 |
bin | 十进制转为二进制(转换之后的类型为string) |
bytes | 字符串转字节 |
chr | 十进制转化为ASCII码 |
float | 转化为浮点类型 |
hex | 十进制转换为十六进制 |
int(x,base) | 将一个字符串或者数字转换成整形 |
oct | 十进制转为八进制(转换之后的类型为string) |
ord | ASCII码转为十进制 |
3 比较、is和==
==比较两个对象的 值是否相等
is比较他们俩是否是一个对象(在内存中的地址是否一样)
4 数学函数
abs | 绝对值/复数的模 |
divmod(a,b) | 取商&取余数 返回(a//b,a-(a//b)*b) |
pow(a,b) | a的b次幂 |
round(a,b) | 舍五入a,保留b位小数 |
5 复数运算(cmath包)
创建复数 | |
复数运算 |
6 文件操作
6.1 文件读写模式
'r' | 只读。如果文件不存在,会产生异常(报错) |
'r+' | 在'r'的基础上,同时可写。不建议使用 |
'w' | 覆盖写。如果文件不存在,创建文件;如果文件存在,覆盖文件(清空文件,从文件开头写) |
'w+' | 在'w'基础上,同时可读 |
'a' | 追加写。如果文件不存在,创建文件;如果文件存在,在文件末尾追加内容 |
'a+' | 在'a'的基础上,同时可读 |
'x' | 与'w'相比,如果文件不存在,则产生异常(报错) |
'x+' | 在'x'基础上,同时可读 |
6.2 文件基本操作
read | 读取文件,后面带一个可选参数,表示读取多少个字符 |
write | 写文件 用write()把字符串写入文件。注意和print()不同,不会自动换行,要手工标记'\\n' 务必用close()关闭文件 |
writelines | 1、用writelines(列表)把列表写入文件 2、注意,writelines不会自动加入换行。如需换行,要在列表的各元素末尾加'\\n' |
readline | 读一行 读回的一行会自带换行符'\\n' |
readlines | 读取文件 读回的每一行会自带换行符'\\n' 返回一个列表,每一个元素代表文件的一行 |
6.3 文件指针基本操作
tell | 返回文件指针的当前位置 |
seek | 改变文件操作指针的位置 fileObject.seek(offset[, whence])
|
6.3 复杂操作
python 文件处理1:将某一目录下的文件合并_刘文巾的博客-CSDN博客 |
python文件操作2:在指定目录下查找指定后缀名的文件_刘文巾的博客-CSDN博客 |
7 类和类的函数
7.1 类的定义
7.2 类的函数
isinstance(object,class) | 判断一个对象是不是一个类的实例(一个类也是它的父类的instance) |
issubclass(class1, class2) | 判断一个类是不是另一个类的子类(object类是所有类的父类) |
hasattr | (has attribute)对象是否有这个属性值 |
8 字符串
8.1 长字符串
表示很长的字符串 可以跨越多行的字符串——用三引号(单引号双引号都可以)
这样的字符串内部单双引号不用转义(可同时解决字符串换行、字符串内单双引号的问题)
8.2 原始字符串
常规的字符串中,反斜杠\\表示对字符串进行转义的意思
\\n 表示的是换行符,但有的时候我们要在字符串中包含\\n(比如计算机的路径【C:\\nowhere\\tere】的时候),我们有两种解决方法
1,双反斜杠,第一个反斜线是转义字符
2,字符串前面加r, r' '表示' '内部的字符串默认不转义
8.3 字符串换行
一行代码太长的时候,我们可以在任意位置用反斜杠结尾,换下一行继续写 。程序执行时,仍视为一行
8.4 字符串格式
8.4.1 format 函数
基本使用(不带任何参数) | |
括号里面带数字 | 括号里面也可以不按顺序 |
括号里面命名 | |
通过list,命名 |
8.4.2 指定格式
b | 将整数表示成二进制数 |
c | 将整数表示为Unicode码 |
e | 使用科学计数法(用e表示指数) 冒号后面,e前面的.n表示精确到几位小数 |
E | 使用科学计数法(用E表示指数) 默认精确到六位小数 |
f | 将小数表示为定点数(默认的话是小数点后六位小数) :.0f——不带小数位 |
o | 将整数表示为八进制数 |
s | 字符串 |
x | 将整数表示为十六进制,同时使用小写字母 |
X | 将整数表示为十六进制,同时使用大写字母 |
% | 表示为百分比值 |
8.4.3 填充与对齐
指定字符串宽度 | |
用零而不是空格填充 | < ^ >分别表示向左、居中、向右对齐 后面跟的第一个0表示用0填充 之后表示填充到长度为10位 .2f就和前面一样了,表示精确到两位小数 |
同时设置类型和宽度 | |
使用逗号来表示千位分隔符 | |
左/右/居中对齐(用< > ^表示) |
8.5 字符串方法
capitalize | 字符串首字母大写,其他字母小写(原字符串不会受影响) |
center(num,char) | 在原先字符串的基础上,在其两边填充字符达到center第一个参数这么多位数(默认为空格),使得字符串居中 |
count | 计算里面的某一个子串的个数 |
find | 在字符串中查找子串。 如果找到的话,返回字串出现的第一个字符 如果没有找到的话,返回-1 |
isalpha() | 如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False。 |
isdigit | 字符串中是否全是数字字符 |
join | 合并序列元素(不改变原先字符串) |
len | 字符串长度 |
lower | 返回字符串的小写版本(原字符串不会受影响) |
replace | 将指定子串替换成另一个字符串,返回替代后的结果 |
split | 将字符串拆分(默认是以空格拆分) |
startswith | 判断是否以一个字符/一串字符开始 |
strip | 将开头和结尾的空白删除(lstrip&rstrip,去掉左/右空格) 也可以指定要删除哪些字符 |
swapcase | 大小写反转(原字符串不会受影响) |
title | 字符串每个词的词首大写(原字符串不会受影响) |
upper | 返回字符串的大写版本(原字符串不会受影响) |
9 列表生成式
10 列表
列表里面的元素可以不是一个类型
10.1 列表索引
负数索引表示从右向左
10.2 列表切片
范围是左闭右开
第二个冒号之后表示步长
步长为负数:从右向左
给切片赋值:可以将切片替换成长度与其不同的序列
给切片赋值还可以在不替换原有元素的情况下插入新元素
10.3 序列相加
可以用加法来拼接序列,但一般不同类型的序列不能拼接
10.4 序列数乘
重复这个序列n次
10.5 序列内置函数
append | 将一个对象添加到列表的末尾 |
count | 计算指定的元素在列表中出现了几次 |
copy以及列表的复制 | 等号相当于是一个引用,相当于给列表设置了一个别名。新老名字指向同一个列表 copy相当于新建一个对象 另一种复制的方法是lst[:],这个也是生成新的列表 |
clear | 清空列表 |
del | 删除元素 |
extend | 将可迭代的元素添加到列表中(有别于append) |
in | 运算符in返回一个布尔变量,判断特定的值在不在序列中 |
index | 返回指定值第一次出现时候的索引 如果列表中没有这个值,报错 我们也可以人为定义index的范围 |
insert(x,y) | 在指定位置插入对象(在第x个位置插入元素y) |
len | 序列长度 |
max min | 最大最小值 |
pop(i) | 从列表中删除下标为i的元素(如果没有参数的话,默认为最后一个元素),并返回这个元素 |
remove | 删除第一个为指定值的元素 (如果没有这个元素,报错) 不按照序号,按照内容查 |
reverse | 列表反转 |
sort | 直接对列表进行排序,不返回任何值 (区别于sorted,sorted不改变原有列表;sort直接修改列表) 倒序排序:参数里面加上reverse=True 可以支持高级排序。key可以是我们定义的函数,lambda函数等 上例中,北京和南京的字符串长度是一样的。此时两者再比较字典序 如果列表的每个元素也是列表/元组,那么默认参数按照第0个元素进行排序 |
sorted | 从小到大排序 不改变原有列表 可以接受一个key函数(参数为来实现自定义的排序 reverse——逆向排序(从大到小) 字符串排序默认使用ascii码 如果列表的每个元素也是列表/元组,那么默认参数按照第0个元素进行排序 |
sum | 求和 |
11 元组
元组值不可修改
11.1 元组的表达方式
11.1.1 不带括号的表达方式
注意单个值的元组,即使只有一个值,也要加逗号
11.1.2 带括号的表达方式
注意单个值的元组,即使只有一个值,也要加逗号
11.2 内置函数
大部分的内置函数和列表的一样,见10.5就可以了
11.3 序列和元组的相互转化
11.4 tuple的比较
tuple是一个一个比较的,第一个一样了再比较第二个。
第一个如果已经可以区分大小了,就不必看第二个了。
我们已知有这样的大小关系:(‘10’<‘9’是因为‘1’的字典序小于‘9‘)
那么接下来的这几个元组可以这么比较:
第一行和第二行,因为10<9,0<9,所以已经能比较了,就不用看第二个了。
第三行因为第一个对应的元素都一样,所以需要比较第二个元素.
12 集合
无序的集合,没有重复的元素
12.1 集合的声明
12.2 集合的内置函数
add/remove | 减少/添加元素 如果要add的值已经在集合里面,那这一步相当于啥也没做 |
difference | 两个set里面不同的元素 a.difference(b)的意思是在a却不在b中的元素,也就是a和b的集合差 |
intersection | 两个set的交集 |
union | 两个set的并集 |
13 字典
13.1 字典的创建
13.1.1 从列表中创建字典
13.2 字典内置函数
clear | 删除所有的字典项 |
del | 删除键值为k的项 |
dict[k] | 返回和键值k相对应的值 如果字典中没有k这个键值,dict[key]=x,会新建一个新项,否则就是修改值 |
get | 访问字典项,不同于直接dict[key],get访问的时候,如果没有这个键值,会返回none(或者自己指定的value),而不是报错 |
keys | 返回键值 |
len | 返回键值对数 |
in | 字典中是否有包含键值为k的项 |
items | 返回包含键值对(元组)的列表 |
pop | 获取与指定键值相关联的值,并将该键值对从字典中删除 如果要pop的内容不在字典中,那么会报错 |
popitem | 随机弹出一个字典项(这个在需要逐个弹出字典项,但是又不要求弹出顺序的时候很有用) |
setdefault | 和get有点像,不一样的是,在字典中不包含指定的项的时候,添加指定的键值对(如果不指定键值的话,默认为None) |
update | 用另一个字典的项来更新一个字典 没有的——添加进来,有的——修改掉 |
values | 返回值的list,可能会有重复值 |
13.3 字典排序
利用key排序 | |
利用value排序 | |
利用value排序(反序) | |
对dict_items进行排序 |
13.4 字典的复制
和列表一样,等号赋值相当于去取了一个别名,本质上这两个是一个字典
要达到复制的效果,需要建立一个空字典,再用update合并字典
13.5 字典数据筛选
14 其他函数
all | 接受一个可迭代对象,如果可迭代对象的所有元素都为真,那么返回True,否则,返回False |
any | 接受一个可迭代对象,如果可迭代对象里至少有一个元素为真,那么返回True,否则返回False |
callable | 类型是否可调用 |
eval | 执行一个字符串表达式,并返回表达式的值 |
enumerate | 把一个可遍历对象(列表、元组、字符串)变成一个下标-元素对 可以有一个可选变量start,表示下标起始 的位置 enumerate +字典:对键值进行枚举 |
filter ( func, iterable) | 过滤器,丢弃 func返回值为False的部分 |
| 接受多个东西,用逗号隔开(遇到逗号输出一个空格) |
help(func) | 查看函数的帮助信息 Sep=‘ ’这样的话逗号不会被输出成空格 |
id | 返回内存地址 |
input | 让用户输入一个字符串 |
map(function,iterable) | 根据提供的函数对指定序列做映射,返回一个新列表 上面的例子相当于l列表中每个元素乘方 |
reduce(fucntion,iterable) | 对参数序列中的元素进行累积 将一个数据集合中的所有数据进行如下操作:用传给reduce中的函数function(这个函数有两个参数),先对集合中的第一和第二个元素进行操作,将得到的结果再与第三个数据用function函数进行运算,最后得到一个结果 上面的例子相当于(((1+2)+3)+4)+5 |
type | 查看对象类型 以上是关于python函数整理的主要内容,如果未能解决你的问题,请参考以下文章 |