Python入门,一定要吃透这69个内置函数
itomcoil 2025-01-18 20:44 19 浏览
内置函数就是Python预先定义的函数,这些内置函数使用方便,无需导入,直接调用,大大提高使用者的工作效率,也更便于程序的阅读。截止到Python版本3.9.1,Python一共提供了69个内置函数。
如果你还没入门,或刚刚入门Python,那么,这篇文章非常适合你。为了方便记忆,木木老师会将这些内置函数分类介绍给大家。
- 数学运算(7个)
- 类型转换(24个)
- 序列操作(8个)
- 对象操作(9个)
- 反射操作(8个)
- 变量操作(2个)
- 交互操作(2个)
- 文件操作(1个)
- 编译执行(5个)
- 装饰器(3个)
数学运算(7个)
abs:求数值的绝对值
print(abs(-2)) # 绝对值:2
divmod:返回两个数值的商和余数
print(divmod(20,3)) # 求商和余数:(6,2)
max:返回可迭代对象中的元素中的最大值或者所有参数的最大值
print(max(7,3,15,9,4,13)) #求最大值:15
min:返回可迭代对象中的元素中的最小值或者所有参数的最小值
print(min(5,3,9,12,7,2)) #求最小值:2
pow:返回两个数值的幂运算值或其与指定整数的模值
print(pow(10,2,3)) # 如果给了第三个参数. 表示最后取余:1
round:对浮点数进行四舍五入求值
print(round(2.675, 2)) # 五舍六入:2.67
sum:对元素类型是数值的可迭代对象中的每个元素求和
print(sum([1,2,3,4,5,6,7,8,9,10])) # 求和:55
类型转换(24个)
bool:根据传入的参数的逻辑值创建一个新的布尔值
print(bool(0)) # 数值0、空序列等值为:False
int:根据传入的参数创建一个新的整数
print(int(3.6)) # 整数:3
float:根据传入的参数创建一个新的浮点数
print(float (3)) # 浮点数:3.0
complex:根据传入参数创建一个新的复数
print(complex (1,2)) # 复数:1+2j
str:将数据转化为字符串
print(str(123)+'456') #123456
bytearray:根据传入的参数创建一个新的字节数组
ret = bytearray("alex" ,encoding ='utf-8')
print(ret[0]) #97
print(ret) #bytearray(b'alex')
ret[0] = 65 #把65的位置A赋值给ret[0]
print(str(ret)) #bytearray(b'Alex')
bytes:根据传入的参数创建一个新的不可变字节数组
bs = bytes("今天吃饭了吗", encoding="utf-8")
print(bs) #b'\xe4\xbb\x8a\xe5\xa4\xa9\xe5\x90\x83\xe9\xa5\xad\xe4\xba\x86\xe5\x90\x97'
memoryview:根据传入的参数创建一个新的内存查看对象
v = memoryview(b'abcefg')
print(v[1]) # 98
ord:返回Unicode字符对应的整数
print(ord('中')) # '中'字在编码表中的位置:20013
chr:返回整数所对应的Unicode字符
print(chr(65)) # 已知码位求字符:A
bin:将整数转换成2进制字符串
print(bin(10)) # 二进制:0b1010
oct:将整数转化成8进制数字符串
print(oct(10)) # 八进制:0o12
hex:将整数转换成16进制字符串
print(hex(10)) # 十六进制:0xa
tuple:根据传入的参数创建一个新的元组
print(tuple([1,2,3,4,5,6])) # (1, 2, 3, 4, 5, 6)
list:根据传入的参数创建一个新的列表
print(list((1,2,3,4,5,6))) # [1, 2, 3, 4, 5, 6]
dict:根据传入的参数创建一个新的字典
print(dict(a = 1,b = 2)) # 创建字典: {'b': 2, 'a': 1}
range:根据传入的参数创建一个新的range对象
for i in range(15,-1,-5):
print(i)
# 15
# 10
# 5
# 0
set:根据传入的参数创建一个新的集合
a = set(range(10))
print(a) # 创建集合:{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
frozenset:根据传入的参数创建一个新的不可变集合
a = frozenset(range(10))
print(a) #frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
enumerate:根据可迭代对象创建枚举对象
lst = ['one','two','three','four','five']
for index, el in enumerate(lst,1): # 把索引和元素一起获取,索引默认从0开始. 可以更改
print(index)
print(el)
# 1
# one
# 2
# two
# 3
# three
# 4
# four
# 5
# five
iter:根据传入的参数创建一个新的可迭代对象
lst = [1, 2, 3]
for i in iter(lst):
print(i)
# 1
# 2
# 3
slice:根据传入的参数创建一个新的切片对象
lst = "你好啊"
it = reversed(lst) # 不会改变原列表. 返回一个迭代器, 设计上的一个规则
print(list(it)) #['啊', '好', '你']
lst = [1, 2, 3, 4, 5, 6, 7]
print(lst[1:3:1]) #[2,3]
s = slice(1, 3, 1) # 切片用的
print(lst[s]) #[2,3]
super:根据传入的参数创建一个新的子类和父类关系的代理对象
class A:
def add(self, x):
y = x+1
print(y)
class B(A):
def add(self, x):
super().add(x)
b = B()
b.add(2) # 3
object:创建一个新的object对象
class A:
pass
print(issubclass(A,object)) #默认继承object类 # True
print(dir(object))
# ['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']
序列操作(8个)
all:判断可迭代对象的每个元素是否都为True值
print(all([1,'hello',True,9])) #True
any:判断可迭代对象的元素是否有为True值的元素
print(any([0,0,0,False,1,'good'])) #True
filter:使用指定方法过滤可迭代对象的元素
def is_odd(n):
return n % 2 == 1
newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(newlist) # [1, 3, 5, 7, 9]
map:使用指定方法去作用传入的每个可迭代对象的元素,生成新的可迭代对象
def f(i):
return i
lst = [1,2,3,4,5,6,7,]
it = map(f, lst) # 把可迭代对象中的每一个元素传递给前面的函数进行处理. 处理的结果会返回成迭代器
print(list(it)) #[1, 2, 3, 4, 5, 6, 7]
next:返回可迭代对象中的下一个元素值
it = iter([1, 2, 3, 4, 5])
while True:
try:
x = next(it)
print(x)
except StopIteration:
break
# 1
# 2
# 3
# 4
# 5
reversed:反转序列生成新的可迭代对象
print(list(reversed([1,2,3,4,5]))) # [5, 4, 3, 2, 1]
sorted:对可迭代对象进行排序,返回一个新的列表
a = [5,3,4,2,1]
print(sorted(a,reverse=True)) # [5, 4, 3, 2, 1]
zip:聚合传入的每个迭代器中相同位置的元素,返回一个新的元组类型迭代器
my_list = [11,12,13]
my_tuple = (21,22,23)
print(list(zip(my_list,my_tuple))) # [(11, 21), (12, 22), (13, 23)]
对象操作(9个)
help:返回对象的帮助信息
print(help(str)) #查看字符串的用途
dir:返回对象或者当前作用域内的属性列表
print(dir(tuple)) #查看元组的方法
id:返回对象的唯一标识符
s = 'alex'
print(id(s)) # 139783780730608
hash:获取对象的哈希值
s = 'alex'
print(hash(s)) #-168324845050430382
lst = [1, 2, 3, 4, 5]
print(hash(lst)) #报错,列表是不可哈希的
type:返回对象的类型,或者根据传入的参数创建一个新的类型
dict = {'Name': 'Zara', 'Age': 7}
print("Variable Type : %s" % type (dict)) # Variable Type : <type 'dict'>
len:返回对象的长度
mylist = ["apple", "orange", "cherry"]
x = len(mylist)
print(x) # 3
ascii:返回对象的可打印表字符串表现方式
s = 5
print(ascii(s)) # 5
format:格式化显示值
s = "hello world!"
print(format(s, "^20")) #居中
print(format(s, "<20")) #左对齐
print(format(s, ">20")) #右对齐
# hello world!
# hello world!
# hello world!
vars:返回当前作用域内的局部变量和其值组成的字典,或者返回对象的属性列表
class Person:
name = "John"
age = 36
country = "norway"
x = vars(Person)
print(x)
# {'__module__': '__main__', 'name': 'Bill', 'age': 63, 'country': 'USA', '__dict__': <attribute '__dict__' of 'Person' objects>, '__weakref__': <attribute '__weakref__' of 'Person' objects>, '__doc__': None}
反射操作(8个)
__import__:动态导入模块
import os
name = input("请输入你要导入的模块:")
__import__(name) # 可以动态导入模块
isinstance:判断对象是否是类或者类型元组中任意类元素的实例
arg=123
print(isinstance(arg, int)) # 输出True
issubclass:判断类是否是另外一个类或者类型元组中任意类元素的子类
class A:
pass
class B(A):
pass
print(issubclass(B,A)) # 返回 True
hasattr:检查对象是否含有属性
class Coordinate:
x = 10
y = -5
z = 0
point1 = Coordinate()
print(hasattr(point1, 'x'))
print(hasattr(point1, 'y'))
print(hasattr(point1, 'z'))
print(hasattr(point1, 'no')) # 没有该属性
# True
# True
# True
# False
getattr:获取对象的属性值
class Person():
age = 14
Tom = Person()
print(getattr(Tom,'age')) # 14
setattr:设置对象的属性值
class A():
name = "吊车尾"
a = A()
setattr(a, "age", 24)
print(a.age) # 24
delattr:删除对象的属性
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
tom = Person("Tom", 35)
print(dir(tom)) # ['__doc__', '__init__', '__module__', 'age', 'name']
delattr(tom, "age")
print(dir(tom)) # ['__doc__', '__init__', '__module__', 'name']s
callable:检测对象是否可被调用
a = 10
print(callable(a)) #False 变量a不能被调用
变量操作(2个)
globals:返回当前作用域内的全局变量和其值组成的字典
x = 'hello'
a = 8888888
print(globals()) #返回一个全局变量的字典,包括所有导入的变量x,a
# {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000000000212C2B0>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'D:/Pythonproject/111/global.py', '__cached__': None, 'x': 'hello', 'a': 8888888}
locals:返回当前作用域内的局部变量和其值组成的字典
print(locals())
# {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x10ab79358>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': '/Users/pankaj/Documents/github/journaldev/Python-3/basic_examples/python_locals_example.py', '__cached__': None}
交互操作(2个)
print:向标准输出对象打印输出
print(1,2,3) # 1 2 3
input:读取用户输入值
a = input('请输入你的姓名') #输入:张三
print(a) # 张三
文件操作(1个)
open:使用指定的模式和编码打开文件,返回文件读写对象
f = open('file',mode='r',encoding='utf-8')
f.read()
f.close()
编译执行(5个)
compile:将字符串编译为代码或者AST对象,使之能够通过exec语句来执行或者eval进行求值
code = "for i in range(3): print(i)"
com = compile(code, "", mode="exec")
exec(com)
# 0
# 1
# 2
eval:执行动态表达式求值
code = "5+6+7"
com = compile(code, "", mode="eval")
print(eval(com)) # 18
exec:执行动态语句块
s = "for i in range(5): print(i)"
a = exec(s)
# 0
# 1
# 2
# 3
# 4
repr:返回一个对象的字符串表现形式(给解释器)
class test:
def __init__(self,name,age):
self.age = age
self.name = name
def __repr__(self):
return "Class_Test[name="+self.name+",age="+str(self.age)+"]"
t = test("Zhou",30)
print(t) # Class_Test[name=Zhou,age=30]
breakpoint:暂停脚本的执行,允许在程序的内部手动浏览
装饰器(3个)
property:标示属性的装饰器
class C:
def __init__(self):
self._name = ''
@property
def name(self):
"""i'm the 'name' property."""
return self._name
@name.setter
def name(self,value):
if value is None:
raise RuntimeError('name can not be None')
else:
self._name = value
classmethod:标示方法为类方法的装饰器
class C:
@classmethod
def f(cls,arg1):
print(cls)
print(arg1)
staticmethod:标示方法为静态方法的装饰器
class Student(object):
def __init__(self,name):
self.name = name
@staticmethod
def sayHello(lang):
print(lang)
if lang == 'en':
print('Welcome!')
else:
print('你好!')
收集不易,记得给木木一个小反馈哦~
PS:由于空格原因,这些代码直接复制运行不了哦~想学习的同学,可以私信回复【资料】获取原文档学习。
相关推荐
- 辣评1+1|幽默的男人运气不会太差,犯了罪的除外
-
一波冷空气吹来了全国大范围降温,也吹来了“年轻人不讲武德”“耗子尾汁”等爆梗。凡事有别,凡事有度。“不讲武德”换来大家津津乐道,“不讲规则”却让大家头皮发麻,更别提有些人“不通人性”“不守法律”了……...
- 养龟之人,不可不常备的几种龟药,必要时,可救龟命
-
养龟的过程中,总会出现这样那样的问题,有些新人因为不懂龟的习性或者管理不到位,容易导致自己的爱龟出问题,如果处理不及时不妥当,容易造成不必要的损失,所以,养龟的过程中,家中常备一些龟药十分必要,建议养...
- 宠物龟越狱摔伤了,饲主该如何正确地处理它的伤口?
-
昨晚有一个龟友发信息向我求救,他家的宠物龟越狱了,从高高的地方摔下来,砸在水泥板上,臀甲部位摔裂了,问我怎么处理妥当?现在就跟大家分享分享我们的实战经验:如何正确地处理宠物龟的外伤!(此处已添加圈子卡...
- PS入门系列三(ps入门级教程)
-
PS软件基础(三)一、钢笔工具1.精细的抠图,也可以绘制精细的直线段和曲线段2.使用方法:(1)绘制直线:鼠标点击,两个点形成一条直线,按住SHIFT可绘制角度(45°的倍数)的直线。...
- 第一千五百一十七天:20250721(星期一.阵雨)
-
天是真地热啊,更加怀念东北的凉爽。即使说有新闻东北迎来了史上最热的酷署,但我依旧坚定地认为没有湖北热,至少没有湖北的闷热。上午开了一上午的会,会议室里即使有空调但可能由于人和电脑太多了,制冷效果非常一...
- 格力、美的、先锋和艾美特油汀取暖器拆机测试PK
-
人在家中坐,寒从脚底来,刷抖音的时候手脚真的是冰凉到没办法。南方的冬天,我琢磨了一下,感觉它只会慢慢折磨咱们,而且咱们南方还没集中供暖。于是就上网看了看,发现这个电热油汀可以烤袜子,好像很有用的样子,...
- 《photoshop教程》设计师PSD文档管理指南
-
这是一个重要但是容易被忽视的领域,很多设计师没有文档管理和文档规范意识。认为只有代码工作者才需要什么编码规范和版本控制系统,Photoshop作为一个应用软件,讨论这个有什么意义呢?作为工程文件,一个...
- 为何要坚决抵制“马保国式黑红”(抵制违规吃喝表态发言)
-
作者:天歌“耗子尾汁(好自为之)”“年轻人不讲武德”“我大意了啊没有闪”……最近流行的几句网络用语,都出自于马保国。然而,原本承诺退出“江湖”的他却频繁出现在公众视线,自曝拍电影、走穴参加网红活动。...
- 车圈父与子 看谁跟高级别车型长得更像
-
[爱卡汽车导购原创]故事发生在美孚小学的5W-40班。这天语文课上,老师给同学们布置作业“今天给大家布置一篇作文,题目是《长大之后我就成了你》。回去认真观察自己的父母,找出自己容貌、性格、爱好等方...
- 月季难养吗?药罐子、肥篓子是什么意思?养好月季连载教程(三)
-
大家好,我是木木。今天给大家带来月季养护系列教程的第四节(月季种植难度),这是为了给还没有入坑的花友简单介绍一下月季的种植难度,希望大家对月季的养护有一个大概的了解,不要因为感觉难度太大而望而却步,也...
- Linux文件操作高频使用命令(linux文件操作高频使用命令是什么)
-
0.新建操作:mkdirabc#新建一个文件夹touchabc.sh#新建一个文件1.查看操作查看目录:ll#显示目录文件详细信息du-h文件/目录#查看大小pwd#显示路径查...
- PS生化危机2游戏:里昂.S.肯尼迪流程攻略(里关)
-
浣熊镇警察局的探索克莱尔带着莎瑞逃出了浣熊镇,与和她们一起的那位警官的活跃也是分不开的,他的名字是-里昂.S.肯尼迪和克莱尔分手后一直向前跑,进警局后门停车场,先去右边值班室拿钥匙,然后打开停车场左边...
- PS版在印刷过程中易出现的问题(印刷厂ps版)
-
PS版的任务是使图文部分尽可能精确地传到橡皮布上。图文部分亲水,非图文部分亲墨。但实际上并没有这么理想,会出现各种各样的与PS版有关的问题。下面举出一些并加以讨论。 1.版面非图文部分起脏,即非图文...
- 夜读|为什么我们要围观马保国?(为什么会有马保国)
-
张丰“打工是不可能打工的”那位去做直播了,“年轻人不讲武德”的马保国要去拍电影了。他在微博上发了条视频,解释参演原因,但网友需付费成为“真爱粉”才能看。视频中,他还推销了拳法书籍。咦?我怎么觉得,马老...
- 40种CAD常见问题解决方法,从此不再求人
-
前言:CAD软件是我们经常用到的办公软件,但是我们在用CAD软件的时候经常遇到一些棘手的问题,不知道怎么解决?这40个问题解决方法,可以收藏备用!正文:1.【Ctrl键无效之解决办法】有时我们会碰到这...
- 一周热门
- 最近发表
- 标签列表
-
- ps图案在哪里 (33)
- super().__init__ (33)
- python 获取日期 (34)
- 0xa (36)
- super().__init__()详解 (33)
- python安装包在哪里找 (33)
- linux查看python版本信息 (35)
- python怎么改成中文 (35)
- php文件怎么在浏览器运行 (33)
- eval在python中的意思 (33)
- python安装opencv库 (35)
- python div (34)
- sticky css (33)
- python中random.randint()函数 (34)
- python去掉字符串中的指定字符 (33)
- python入门经典100题 (34)
- anaconda安装路径 (34)
- yield和return的区别 (33)
- 1到10的阶乘之和是多少 (35)
- python安装sklearn库 (33)
- dom和bom区别 (33)
- js 替换指定位置的字符 (33)
- python判断元素是否存在 (33)
- sorted key (33)
- shutil.copy() (33)