首页 > temp > python入门教程 >
-
Python | Python常用函数、方法示例总结(API)
结合语法基础:
本篇会实时更新,学到啥模块就更新啥模块的方法。重点放在常用函数、方法的总结,类似Java里API。主要起“字典”的作用,即忘了有啥方法才来查,因此做了些减法。结合Python语法基础来看可能效果会好一些;
1. 运算相关
x,y,z为某个数字;list为列表
-
abs(x)
:求x的绝对值; -
divmod(x, y)
:商余,同时输出商和余数,divmod(10, 3) ---> (3, 1); -
pow(x, y)
:幂运算,x**y; -
pow(x, y, z)
:幂余,(x**y)%z; -
round(x)
:四舍五入,不保留小数; -
round(x, d)
:四舍五入,保留d位小数; -
min(list)
:获取数字列表中的最小值; -
max(list)
:获取数字列表中的最大值; -
sum(list)
:获取数字列表中的总和; -
int(x)
:将x取整,摄取小数部分; -
float(x)
:将x变成浮点数,增加小数部分; -
complex(x)
:将x变成复数,增加虚数部分;
2. Sring与数字
string为某个字符串;num为某个数字;firstNum为第一个数字;lastNum为最后一个数字;step为步长;u为unicode编码字符;old为老的子串;new为新的子串;sep为分隔的子串规则;fillchar为填充的字符;chars为字符;
字符串的操作方法:
-
string.title()
:让每个单词的首字母都改成大写; -
string.lower()
:字符串全字符小写; -
string.upper()
:字符串全字符大写; -
string.replace(old, new)
:所有old的子串被new子串替换; -
string.center(num)
:根据宽度num将字符串居中; -
string.center(num, fillchar)
:根据宽度num将字符串居中,其余字符使用fillchar填充; -
string.rstrip()
:删去字符串末尾的空白; -
string.lstrip()
:删去字符串开头的空白; -
string.strip()
:同时删去字符串两端空白; -
string.strip(chars)
:删去字符串两边出现的字符chars; -
new.join(string)
:在string变量中除最后元素外每个元素后增加一个new子串;
字符串的获取功能:
-
string.count('xxx')
:获取xxx在string中出现的次数; -
string.split()
:以空格为分隔符将字符串拆分成多个部分,并储存在一个列表里; -
string.split(sep)
:返回列表,根据sep将字符串分隔; -
len(string)
:获取字符串的长度; -
chr(u)
:返回u编码的字符x; -
ord(x)
:获取x的Unicode编码;
其他类型转字符串的方法:
-
str(num)
:将数字num转换成字符串; -
hex(num)
:将数字num转成十六进制字符串; -
oct(num)
:将数字num转成八进制字符串;
字符串切片(同列表切片):
-
string[firstNum: lastNum: step]
:根据步长对字符串切片; -
string[::-1]
:倒转字符串;
字符串的格式化:
-
"{} {}".format("hello", "world")
:不设置指定位置,按默认顺序输出 hello world; -
"{1} {0} {1}".format("hello", "world")
:设置指定位置,输出 world hello world; -
format函数传入对象:
class AssignValue(object): def __init__(self, value): self.value = value my_value = AssignValue(6) print('value 为: {0.value}'.format(my_value)) # "0" 是可选的
数字的格式化:
-
{字符串模板}.format(用逗号分隔的字符串参数)
:使用字符串模板格式化字符串参数; -
format格式化函数的字符串模板,如下图所示:
-
数字格式化示例:
字符串反转函数:
def rvs(s):
if s == "" :
return s
else :
return rvs(s[1:])+s[0]
3. 列表相关
list为某个列表;object为列表中的某个元素;index为列表的索引;firstNum为第一个数字;lastNum为最后一个数字;num为某个数字;
创建列表的示例:
-
bicycles = [ 'trek', 'cannondale', 'redline']
-
list= []
:创建空列表;
数字列表的创建与操作功能:
-
range(firstNum, lastNum)
:生成一系列数字,包含firstNum,不包含lastNum。通常在遍历时使用,如for num in range(1, 5):
; -
range(firstNum, lastNum, step)
:指定步长生成一系列数字,包含firstNum,不包含lastNum,步长为step; -
list(range(firstNum, lastNum))
:生成数字列表,包含firstNum,不包含lastNum; -
list = [num**2 for num in range(1s, 11)]
:使用列表解析生成数字列表; -
min(list)
:获取数字列表中的最小值; -
max(list)
:获取数字列表中的最大值; -
sum(list)
:获取数字列表中的总和;
列表的增删功能:
-
list.append(object)
:将object元素添加到列表末尾; -
list.insert(index, object)
:将object元素添加到列表任意位置,需要指定索引index; -
del list[index]
:删除list列表里指定索引index的元素; -
list.pop()
:弹出列表末尾元素; -
list.pop(index)
:弹出列表中指定索引index的元素; -
list.remove(object)
:将列表中元素object删除,只删除第一个指定的值; -
list.clear()
:删除列表所有元素;
列表的操作功能:
-
list.sort()
:根据首字母对列表进行排序,永久性修改; -
list.sort(reverse = True)
:按字母顺序相反的顺序排列列表元素,永久性修改; -
sorted(list)
:根据首字母对列表进行排序,临时性修改; -
sorted(list, reverse=True)
:按字母顺序相反的顺序排列列表元素,临时性修改; -
list.reverse()
:反转列表排列顺序; -
tuple(list)
:将列表类型转变为元祖类型,实现数据保护; -
list1[i: j: k] = list2
:用列表list2替换list1切片后说对应元素子列表; -
list *= n
:将列表list重复n次,并更新;
列表的获取功能:
-
len(list)
:获取list列表的长度; -
list[firstNum: lastNum]
:切片,获取索引为firstNum到lastNum-1的元素组成新列表(可用于遍历部分列表、复制列表); -
list[: lastNum]
:切片,获取从头开始到lastNum-1的元素组成新列表; -
list[firstNum:]
:切片,获取索引为firstNum到列表末尾的元素组成新列表(当first为负数时,为倒数几个); -
list.copy()
:生成新列表,复制list中所有元素;
4. 集合相关
S、T为集合;x为集合中的元素
集合的操作符:
-
S | T
:并集,所有元素; -
S - T
:差集; -
S & T
:交集,同时包含; -
S ^ T
:补集,非相同元素; -
S <= T 或 S < T
:判断S和T的子集关系; -
S >= T 或 S > T
:判断S和T的包含关系; -
S |= T
:并集; -
S -= T
:差集; -
S &= T
:交集; -
S ^= T
:补集;
集合的处理方法:
-
S.add(x)
:若S中无x,则将x加入S; -
S.discard(x)
:移除元素x,若x不在S中,不报错; -
S.remove(x)
:移除元素x,若x不在S中,产生KeyError异常; -
S.clear()
:移除所有元素; -
S.pop()
:随机返回一个元素,并更新S,若S为空则产生KeyError异常; -
S.copy()
:返回集合S的一个副本; -
len(S)
:返回集合S的元素个数; -
x in S
:判断x是否在S中; -
x not in S
:判断x是否不在S中; -
set(x)
:将其他类型变量转变为集合类型;
5. 序列化类型
序列是一个基类类型,由字符串、元祖、列表构成。x为元素;S、T为序列;n为数字;i、j为索引;k为步长;
序列化通用操作符:
-
x in S
:判断x是否在S中; -
x not in S
:判断x是否不在S中; -
S + T
:连接两个序列; -
S*n
:将序列S复制n次; -
S[i]
:返回第i个元素; -
S[i: j]
:切片,含i不含j; -
S[i: j: k]
:切片,以k为步长,含i不含j; -
len(S)
:返回序列S的长度,即元素个数; -
min(S)
:返回序列中的最小值; -
max(S)
:返回序列中的最大值; -
S.index(x)
:返回序列S第一次出现x的位置; -
S.index(x, i, j)
:返回序列S从i到j第一次出现x的位置; -
S.count(x)
:返回序列S中出现x的总次数;
6. 字典相关
map为某个字典;key为键;value为值;
创建字典的示例:
-
alien0 = {'color': 'green', 'points': 5}
-
map = {}
:创建空字典; -
由类似对象组成字典,如下:
favorite_languages = { 'jen': 'python', 'sarah': 'ruby', 'edward': 'ruby', 'phil': 'python', }
字典的获取功能:
-
map[key]
:根据key获取value,如果key为字符串需要用引号标识; -
map.items()
:返回字典中所有键值对的信息。可用于用于map字典的遍历,如:for key, value in map.items():
-
map.keys()
:返回字典中所有键的信息。可用于遍历map字典的键,如:for object in map.keys():
-
map.values()
:返回字典中所有值的信息。可用于遍历map字典的值,如:for object in map.values():
-
set(map.values())
:遍历map字典的值,剔除重复项; -
map.get(key, <default>)
:若键存在,则返回相应值,不存在则返回<default>值; -
map.pop(key, <default>)
:若键存在,则返回相应值,不存在则返回<default>值; -
map.popitem()
:随机从字典map中取出一个键值对,以元祖形式返回; -
len(map)
:获取map中的元素个数;
字典的操作功能:
-
map[key] = value
:给map字典新增一对键值对 / 或修改某键的值; -
del map[key]
:删除map字典中键]为key的键值对; -
map.clear()
:删除所有的键值对;
字典的判断功能:
-
key in map
:判断键key是否在字典map中;
7. 输入输出
content作为变量储存用户输入;message为提示用户的信息,将打印在控制台;
-
content = input("mesage")
:获取用户输入内容(在Python 2.7里使用raw_input()
函数); -
print(content)
:将content打印输出到控制台;
8. 文件相关
xxx.txt是一个txt文件;file_object为文件对象;
打开文件的示例:
with open('xxx.txt') as file_object:
contents = file_object.read()
print(contents)
-
open('xxx.txt')
:以只读方式打开文件,操作文件的前置工作。待操作文件需要与程序在同一目录下,或者使用相对路径 \ ; -
open('xxx.txt', 'w')
:以写入方式打开文件,不换行。其他参数还有r
读取、a
附加、r+
读写; -
close('xxx.txt')
:关闭文件; -
file_object.read()
:读取文件; -
file_object.readlines()
:将文件各行存储在一个列表里;
9. json模块
content是要操作的内容;file_object是文件对象;json是模块名
-
json.dump(content, file_object)
:将content内容存入文件对象; -
json.load(file_object)
:将文件对象里的内容加载;
10. unittest测试模块
self是Python的关键字,用于方法中;a为程序员编写方法的运行结果;b为该函数的预期结果;
-
unittest.TestCase
:unittest模块里的测试类,所有测试类都要继承TestCase类; -
unittest.main()
:让Python运行文件中的测试; -
setUp(self)
:构建前置条件的方法,在一个测试类中只执行一次;
常用的断言方法:
-
self.assertEqual(a, b)
:核实 a == b; -
self.assertNotEqual(a, b)
:核实 a != b; -
self.assertTrue(a)
:核实a为 True; -
self.assertFalse(a)
:核实a为 False; -
self.assertIn(item, list)
:核实item在list中; -
self.assertNotIn(item, list)
:核实item不在list中;
11. time模块
formatStr为格式化控制符组成的字符串;timeStr为具有某种格式的时间字符串;second为数字,表示秒;
时间获取:
-
time()
:获取当前时间戳,即计算机内部时间值,返回浮点数; -
ctime()
:获取当前时间并以易读方式表示,返回字符串; -
gmtime()
:获取当前时间,表示为计算机可处理的时间格式;
格式化控制符:
格式化字符串 | 日期/时间说明 | 值范围 |
---|---|---|
%Y | 年份 | 0000~9999,如:2021 |
%m | 月份 | 01~12,如:0 |
%B | 月份名称 | January~December,如:April |
%b | 月份名称缩写 | Jan~Dec,如:Apr |
%d | 日期 | 01~31,如:21 |
%A | 星期 | Monday~Sunday,如:Wednesday |
%a | 星期缩写 | Mon~Sun,如:Wed |
%H | 小时(24h制) | 00~23,如:12 |
%l | 小时(12h制) | 01~12,如:7 |
%p | 上/下午 | AM,PM |
%M | 分钟 | 00~59 |
%S | 秒 | 00~59 |
时间格式化:
-
strftime(formatStr, time.gmtime())
:定义输出效果timeStr,将计算机可处理的时间以特定格式返回; -
strptime(timeStr, formatStr)
:定义输入效果,将特定格式的时间转换成计算机可处理的时间格式;
程序计时:
-
perf_counter()
:返回CPU级别的精确事件计数值,单位秒; -
sleep(second)
:程序休眠second秒,可以是浮点数;
12. random模块
a、b为数字;k为数字,表示步长;seq表示序列
基本随机数函数:
-
seed(a)
:初始化给定随机数种子,默认为当前系统时间。产生种子a对应的序列; -
random()
:生成一个[0.0 , 1.0)之间的随机小数;
扩展随机数函数:
-
randint(a, b)
:生成一个[a , b]之间的整数; -
randrange(a, b)
:生成一个[a, b)之间的随机整数; -
randrange(a, b, k)
:生成一个[a, b)之间以k为步长的随机整数; -
getrandbits(a)
:生成一个a比特的随机整数; -
uniform(a, b)
:生成一个[a, b]之间的随机小数; -
choice(seq)
:从序列seq中堆积选择一个元素; -
shuffle(seq)
:将序列seq中的元素随机排列,返回打乱后的序列;
13. jieba模块
jieba库是一个优秀的中文分词第三方库。string为一串中文字符串;
-
lcut(string)
:精确模式,返回一个列表类型的分词结果(中国, 是, 一个, 伟大, 的, 国家); -
lcut(string, cut_all=True)
:全模式,返回一个列表类型的分词结果,存在冗余(中国, 国是, 一个, 伟大, 的, 国家); -
lcut_for_search(string)
:搜索引擎模式,返回一个列表类型的分词结果,存在冗余(中华, 华人, 人民, 共和, 共和国, 中华人民共和国, 是, 伟大, 的); -
add_word(string)
:向分词词典增加新词string;