❤️小白到精英必备的100多个Python函数汇总❤️写代码都流畅多了
Posted 退休的龙叔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了❤️小白到精英必备的100多个Python函数汇总❤️写代码都流畅多了相关的知识,希望对你有一定的参考价值。
新手在做写代码的时候容易卡壳,尤其当接触的函数以及其他知识比较多的时候,经常会看完需求之后不知道自己该用什么方法来实现它,实现的逻辑可能你有,但怎么该用什么函数给忘了,这其实就是知识的储备不够,你记不住哪个函数有什么作用,自然一头雾水。
这几天我专门整理了Python常用的一些函数,从最基础的输入输出函数到正则等12个板块的,总共100多个常用函数,方便小伙伴们进行快速地记忆,每天快速过一遍,用的时候再加深一下,慢慢地你就会摆脱写代码卡壳的状况。
虽说自学编程的时候我们强调更多的东西是理解和实际去敲代码,但有些东西你是要必须牢记的,否则你写代码将寸步难行。老手当然已经烂记于心,新手想要快速得心应手开发,记住高频使用的函数就是一个好法子。
1.基础函数
序号 | 函数 | 说明 |
---|---|---|
1 | print() | 输出 |
2 | input() | 输入 |
3 | int() | 转整型 |
4 | float() | 转浮点型 |
5 | str() | 转字符串 |
6 | type() | 返回对象的类型 |
7 | isinstance() | 返回布尔值(True,False) |
案例:将浮点型数值转换为字符串,输出转换后的数据类型
f = 30.5
ff = str(f)
print(type(ff))
#输出结果为 class 'str'
2.流程控制
序号 | 函数 | 说明 |
---|---|---|
1 | if 语句 :执行1 | 条件判断 |
2 | if 条件 :代码块1 else:代码块2 | 条件判断 |
3 | while | 判断循环 |
4 | for | 计数循环 |
5 | range() | 范围函数,可控制开始位置、结束位置和步长 |
6 | break | 跳出循环 |
7 | continue | 跳过本次循环,后面的循环继续执行 |
案例:根据用户输入的分数判断成绩,低于50分时提示“你的分数低于50分”,5059分时提示“你的分数在60分左右”,大于等于60分为及格,8090分为优秀,大于90分为非常优秀。
s = int(input("请输入分数:"))
if 80 >= s >= 60:
print("及格")
elif 80 < s <= 90:
print("优秀")
elif 90 < s <= 100:
print("非常优秀")
else:
print("不及格")
if s > 50:
print("你的分数在60分左右")
else:
print("你的分数低于50分")
3.列表
序号 | 函数 | 说明 |
---|---|---|
1 | append() | 向列表中添加对象,并添加到末尾 |
2 | extend(可迭代对象) | 将可迭代对象中数据分别添加到列表中,并添加到末尾 |
3 | insert(下标,对象) | 向指定下标位置添加对象 |
4 | clear() | 清空列表 |
5 | pop() | 删除下标指定的元素,如果不加下标则删除最后一个元素 |
6 | remove(对象) | 删除指定的对象 |
7 | del | 删除变量或指定下表的值 |
8 | copy() | 浅拷贝 |
9 | count(对象) | 返回对象在列表中出现的次数 |
10 | index(value,开始下标,结束下标) | 元素出现的第一次下标位置,也可自定义范围 |
11 | reverse() | 原地翻转 |
12 | sort(key=None,reverse=False) | 快速排序,默认从小到大排序,key:算法 |
13 | len() | 获取列表的长度(元素) |
案例:判断6这个数在列表[1,2,2,3,6,4,5,6,8,9,78,564,456]中的位置,并输出其下标。
l = [1,2,2,3,6,4,5,6,8,9,78,564,456]
n = l.index(6, 0, 9)
print(n)
#输出结果为 4
4.元组
序号 | 函数 | 说明 |
---|---|---|
1 | list(元祖) | 元祖转换成列表 |
2 | tuple(列表) | 列表转换成元祖 |
3 | 元祖的函数操作与列表大致相同相同,不赘述 |
案例:修改元组
#取元组下标在1~4之间的3个数,转换成列表
t = (1,2,3,4,5)
print(t[1:4])
l = list(t)
print(l)
#在列表下标为2的位置插入1个6
l[2]=6
print(l)
#讲修改后的列表转换成元组并输出
t=tuple(l)
print(t)
#运行结果为:
(2, 3, 4)
[1, 2, 3, 4, 5]
[1, 2, 6, 4, 5]
(1, 2, 6, 4, 5)
5.字符串
序号 | 函数 | 说明 |
---|---|---|
1 | capitalize() | 把字符串的第一个字符改为大写,后面的小写 |
2 | casefold() | 把整个字符串都小写 |
3 | encode() | 编码 str–bytes(二进制字符串) |
4 | decode() | 解码 |
5 | count(sub,start,stop) | 返回字符(sub)出现的次数,star:开始下标,stop:结束下标 |
6 | find(sub,start,stop) | 返回sub第一次出现的下标,查不到返回-1 |
7 | index(sub,start,stop) | 返回sub第一次出现的下标 |
8 | upper() | 将字符串转为大写 |
9 | lower() | 将字符串转为小写 |
10 | format() | 将字符串按某种格式输出 |
案例:用format()的三种方式输出字符串
方式1:用数字占位(下标)
"{0} 嘿嘿".format("Python")
a=100
s = "{0}{1}{2} 嘿嘿"
s2 = s.format(a,"JAVA","C++")
print(s2)
#运行结果为:100JAVAC++ 嘿嘿
方式2:用{} 占位
a=100
s = "{}{}{} 嘿嘿"
s2 = s.format(a,"JAVA","C++","C# ")
print(s2)
#运行结果为:100JAVAC++ 嘿嘿
方式3:用字母占位
s = "{a}{b}{c} 嘿嘿"
s2 = s.format(b="JAVA",a="C++",c="C# ")
print(s2)
#运行结果为:C++JAVAC# 嘿嘿
6.字典
序号 | 函数 | 说明 |
---|---|---|
1 | clear() | 清空字典 |
2 | copy() | 浅拷贝 |
3 | fromkeys(可迭代对象,value=None) | 根据可迭代对象中的元素去创建字典 |
4 | get(key,[d]) | 获取键所对应的值,key是键,d是提示信息 |
5 | items() | 将字典中的键值对封装成元组并放到类集合中 |
6 | pop(key,[d]) | 根据键删除字典中的键值对,key是键,d是提示信息 |
7 | values() | 返回字典中的值(类集合对象) |
案例:在字典中查找数据
d = {"name": "小黑"}
print(d.get("name2", "没有查到"))
print(d.get("name"))
#运行结果为:
没有查到
小黑
7.函数
函数这块重头戏更多的是自定义函数,常用的内置函数不是很多,主要有以下几个:
序号 | 函数 | 说明 |
---|---|---|
1 | 函数名.doc | 获取函数的文档内容 |
2 | help(函数名) | 查看函数文档 |
3 | global 变量 | 声明变量为全局变量(可用于任何地方) |
4 | nonlocal 变量 | 声明的变量为全局变量(用于函数嵌套,变量存在于上一级函数) |
案例:在函数中定义一个局部变量,跳出函数仍能调用该变量
def fun1():
global b
b=100
print(b)
fun1()
print(b)
#运行结果为:
100
100
8.进程和线程
序号 | 函数 | 说明 |
---|---|---|
1 | os.getpid() | 获取当前进程的编号 |
2 | multiprocessing.current_process() | 获取当前进程的名字 |
3 | os.getppid() | 获取当前父进程的编号 |
4 | Thread(target=None,name=None,args=(),kwargs=None) | target:可执行目标,name:线程的名字默认Thread-N,args/kwargs:目标参数 |
5 | start() | 启动子线程 |
6 | threading.current_thread() | 获取当前进程的名字 |
案例:继承Thread类实现
#多线程的创建
class MyThread(threading.Thread):
def __init__(self,name):
super().__init__()
self.name = name
def run(self):
#线程要做的事情
for i in range(5):
print(self.name)
time.sleep(0.2)
#实例化子线程
t1 = MyThread("凉凉")
t2 = MyThread("最亲的人")
t1.start()
t2.start()
9.模块与包
序号 | 函数 | 说明 |
---|---|---|
1 | import 模块名 | 导入模块 |
2 | from 模块名 import 功能1, 功能2… | 导入模块特定功能 |
3 | from 模块名 import * | 导入模块所有功能 |
4 | import 模块名 as 别名 | 模块定义别名 |
5 | from 模块名 import 功能 as 别名 | 功能定义别名 |
6 | import 包名.模块名.目标 | 包的导入方式1 |
7 | import 包名.子包名.模块名.目标 | 包的导入方式2 |
8 | import 包名.模块名 | 包的使用形式1 |
9 | import 包名.模块名 as 别名 | 包的使用形式2 |
10 | from 包名.模块名 import 功能 | 包的使用形式3 |
11 | from 包名 import 模块名 | 包的使用形式4 |
12 | from 包名.模块名 import * | 包的使用形式5 |
案例:包的使用方式4
from my_package1 import my_module3
print(my_module3.a)
my_module3.fun4()
10.文件操作
(1)常规文件操作
序号 | 函数 | 说明 |
---|---|---|
1 | open(name,mode) | 用于打开一个文件,返回一个文件对象 name:文件名,–写全(文件路径+文件名+后缀) mode:打开文件的方式,默认是r–只读 |
2 | write(“xxx”) | 向文件中写入内容 |
3 | read() | 读取文件中的内容 |
4 | close() | 关闭文件 |
关于文件操作的常规模式:
模式 | 描述 |
---|---|
r | 以只读的形式打开文件,文件的指针在开头 |
r+ | 读写,文件指针在开头 |
rb | 以二进制的形式只读文件指针在开头 |
w | 只写,文件不存在,则创建新的,存在则覆盖,指针在开头 |
w+ | 读写,文件不存在,则创建新的,存在则覆盖,指针在开头 |
wb | 只写,以二进制的形式 |
a | 追加模式,文件指针在结尾 |
a+ | 读写,不存在则创建,存在直接追加 |
ab | 以二进制形式追加 |
file的对象属性
序号 | 方法 | 说明 |
---|---|---|
1 | closed | 如果文件对象已关闭,返回True,否则返回False |
2 | mode | 返回文件对象的访问模式 |
3 | name | 返回文件的名称 |
file对象的方法
序号 | 函数 | 方法 |
---|---|---|
1 | close() | 关闭文件 |
2 | read([count]) | 读取文件中的内容,count:字节数量 |
3 | readlines() | 读取所有内容,打包成列表 |
4 | readline() | 读取一行数据,追加读取,读取过得不能再次读取 |
5 | seek(offset,[from]) | 修改指针的位置:从from位置移动了offset个字节 from:0-从起始位置,1-从当前位置开始,2-从末尾开始 soofset:要移动的字节数 |
6 | write() | 向文件中写入内容 |
(2)OS模块
-
关于文件的功能
序号 方法 说明 1 os.rename(原文件名,新的文件名) 文件重命名 2 os.remove(文件名) 删除文件 -
关于文件夹的功能
序号 函数 说明 1 mkdir(文件夹名字) 创建文件夹 2 rmdir(文件夹名字) 删除文件夹 3 getcwd() 获取当前目录 4 chdir(目录) 切换目录 5 listdir() 获取当前文件夹下所有文件或文件夹,返回一个列表
listdir(‘aa’) #获取aa文件下所有文件或文件夹,返回一个列表
11.修饰器/装饰器
序号 | 函数 | 说明 |
---|---|---|
1 | property | 将方法变为属性,被修饰的方法名必须和property下方的方法名一样 |
2 | staticmethod | 静态方法,将被修饰的方法从类中抽离出来。该函数不能访问类的属性 |
3 | classmethod | 与实例方法的区别是接收的第一个参数不是self,而是cls(当前类的具体类型) 被修饰的方法无法访问实例属性,但是可以访问类属性 |
案例:classmethod的用法举例
class B:
age = 10
def __init__(self,name):
self.name = name
@classmethod
def eat(cls): #普通函数
print(cls.age)
def sleep(self):
print(self)
b = B("小贱人")
b.eat()
#运行结果为:10
12.正则
序号 | 函数 | 说明 |
---|---|---|
1 | re.compile(正则表达式) | 编译正则 |
2 | match() | 决定re是否在字符串刚开始的位置(匹配行首) |
3 | search() | 扫描字符串,找到这个re匹配的位置(仅仅是第一个查到的) |
4 | findall() | 找到re匹配的所有字符串,返回一个列表 |
5 | group() | 返回re匹配的字符串 |
6 | start() | 返回匹配开始的位置 |
7 | end() | 返回匹配结束的位置 |
8 | span() | 返回一个元组:(开始,结束)的位置 |
9 | findall() | 根据正则表达式返回匹配到的所有字符串 |
10 | sub(正则,新字符串,原字符串) | 替换字符串 |
11 | subn(正则,新字符串,原字符串) | 替换字符串,并返回替换的次数 |
12 | split() | 分割字符串 |
案例:用split()函数分割一个字符串并转换成列表
import re
s = "abcabcacc"
l = re.split("b",s)
print(l)
#运行结果为:['a', 'ca', 'cacc']
文章中所讲的所有函数我都已经将它们整理成图片,有6张,需要的话可以私聊我,我就不再这里重复赘述来增加文章的篇幅了,内容都是一样的,你们也可以自己去整理属于自己的函数笔记,在我们没有网或者收藏夹东西很多的时候,只要有手机,那么我们就可以无障碍进行查阅,非常地便利。
结语
这篇文章的目的,不是为了教大家怎么使用函数,而是为了快速、便捷地记住常用的函数名,所以没有把每个函数的用法都给大家举例,你只有记住了函数名字和它的作用之后,你才会有头绪,至于函数的用法,百度一下就出来,用了几次你就会了。
如果连函数名和它的用途都不知道,你要花的时间和精力就更多了,必然不如我们带着目的性地去查资料会更快些。
不禁想起了2010年那会儿Python成为年度最受欢迎语言,自己开始学Python(我之前主用的是Java),光是函数就记了几十页的本子,上下班都是随身带着,有空就拿出来快速过一遍,后来有一次下班之后和同事吃夜宵喝了点酒,从地下谈到天上,结果包都不见了,本子也丢了,第二天把我后悔的…只能重新写一本。
说句实话,Python挺好玩的,头也没有那么冷了。
以上是关于❤️小白到精英必备的100多个Python函数汇总❤️写代码都流畅多了的主要内容,如果未能解决你的问题,请参考以下文章
Python零基础到入门Python预备知识必备篇——Python基本编码规范