帮公司做网站,简单网站系统,做的网站为什么图片看不了,柯桥教育网站建设Python内置的函数及其用法。为了方便记忆#xff0c;已经有很多开发者将这些内置函数进行了如下分类#xff1a;
数学运算(7个)
类型转换(24个)
序列操作(8个)
对象操作(7个)
反射操作(8个)
变量操作(2个)
交互操作(2个)
文件操作(1个)
编译执行(4个)
装饰器(3个) … Python内置的函数及其用法。为了方便记忆已经有很多开发者将这些内置函数进行了如下分类
·数学运算(7个)
·类型转换(24个)
·序列操作(8个)
·对象操作(7个)
·反射操作(8个)
·变量操作(2个)
·交互操作(2个)
·文件操作(1个)
·编译执行(4个)
·装饰器(3个)
接下来看看具体每个类别里包含了那些内置函数 具体每个函数的解析如下
数学运算
abs求数值的绝对值 abs(-2)
2 divmod返回两个数值的商和余数 divmod(5,2)
(2, 1)divmod(5.5,2)
(2.0, 1.5) max返回可迭代对象中的元素中的值或者所有参数的值 max(1,2,3) # 传入3个参数 取3个中较大者
3max(1234) # 传入1个可迭代对象取其元素值
4max(-1,0) # 数值默认取数值较大者
0max(-1,0,key abs) # 传入了求绝对值函数则参数都会进行求绝对值后再取较大者
-1 min返回可迭代对象中的元素中的最小值或者所有参数的最小值 min(1,2,3) # 传入3个参数 取3个中较小者
1min(1234) # 传入1个可迭代对象取其最小元素值
1min(-1,-2) # 数值默认去数值较小者
-2min(-1,-2,key abs) # 传入了求绝对值函数则参数都会进行求绝对值后再取较小者
-1 pow返回两个数值的幂运算值或其与指定整数的模值 pow(2,3)2**3pow(2,3,5)pow(2,3)%5 round对浮点数进行四舍五入求值 round(1.1314926,1)
1.1round(1.1314926,5)
1.13149 sum对元素类型是数值的可迭代对象中的每个元素求和 # 传入可迭代对象sum((1,2,3,4))
10
# 元素类型必须是数值型sum((1.5,2.5,3.5,4.5))
12.0sum((1,2,3,4),-10)
0 类型转换
bool根据传入的参数的逻辑值创建一个新的布尔值 bool() #未传入参数
Falsebool(0) #数值0、空序列等值为False
Falsebool(1)
True int根据传入的参数创建一个新的整数 int() #不传入参数时得到结果0。
0int(3)
3int(3.6)
3 float根据传入的参数创建一个新的浮点数 float() #不提供参数的时候返回0.0
0.0float(3)
3.0float(3)
3.0 complex根据传入参数创建一个新的复数 complex() #当两个参数都不提供时返回复数 0j。
0jcomplex(12j) #传入字符串创建复数
(12j)complex(1,2) #传入数值创建复数
(12j) str返回一个对象的字符串表现形式(给用户) str()str(None)
Nonestr(abc)
abcstr(123)
123 bytearray根据传入的参数创建一个新的字节数组 bytearray(中文,utf-8)
bytearray(b\xe4\xb8\xad\xe6\x96\x87) bytes根据传入的参数创建一个新的不可变字节数组 bytes(中文,utf-8)
b\xe4\xb8\xad\xe6\x96\x87 memoryview根据传入的参数创建一个新的内存查看对象 v memoryview(babcefg)v[1]
98v[-1]
103 ord返回Unicode字符对应的整数 ord(a)
97 chr返回整数所对应的Unicode字符 chr(97) #参数类型为整数
a bin将整数转换成2进制字符串 bin(3)
0b11 oct将整数转化成8进制数字符串 oct(10)
0o12 hex将整数转换成16进制字符串 hex(15)
0xf tuple根据传入的参数创建一个新的元组 tuple() #不传入参数创建空元组
()tuple(121) #传入可迭代对象。使用其元素创建新的元组
(1, 2, 1) list根据传入的参数创建一个新的列表 list() # 不传入参数创建空列表
[] list(abcd) # 传入可迭代对象使用其元素创建新的列表
[a, b, c, d] dict根据传入的参数创建一个新的字典 dict() # 不传入任何参数时返回空字典。
{}dict(a 1,b 2) # 可以传入键值对创建字典。
{b: 2, a: 1}dict(zip([a,b],[1,2])) # 可以传入映射函数创建字典。
{b: 2, a: 1}dict(((a,1),(b,2))) # 可以传入可迭代对象创建字典。
{b: 2, a: 1} set根据传入的参数创建一个新的集合 set() # 不传入参数创建空集合
set()a set(range(10)) # 传入可迭代对象创建集合a
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9} frozenset根据传入的参数创建一个新的不可变集合 a frozenset(range(10))a
frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}) enumerate根据可迭代对象创建枚举对象 seasons [Spring, Summer, Fall, Winter]list(enumerate(seasons))
[(0, Spring), (1, Summer), (2, Fall), (3, Winter)]list(enumerate(seasons, start1)) #指定起始值
[(1, Spring), (2, Summer), (3, Fall), (4, Winter)] range根据传入的参数创建一个新的range对象 a range(10)b range(1,10)c range(1,10,3)a,b,c # 分别输出a,b,c
(range(0, 10), range(1, 10), range(1, 10, 3))list(a),list(b),list(c) # 分别输出a,b,c的元素
([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 4, 7])iter根据传入的参数创建一个新的可迭代对象 a iter(abcd) #字符串序列a
str_iterator object at 0x03FB4FB0next(a)
anext(a)
bnext(a)
cnext(a)
dnext(a)
Traceback (most recent call last):File pyshell#29, line 1, in modulenext(a)
StopIteration slice根据传入的参数创建一个新的切片对象 c1 slice(5) # 定义c1c1
slice(None, 5, None)c2 slice(2,5) # 定义c2c2
slice(2, 5, None)c3 slice(1,10,3) # 定义c3c3
slice(1, 10, 3) super根据传入的参数创建一个新的子类和父类关系的代理对象 #定义父类Aclass A(object):def __init__(self):print(A.__init__)
#定义子类B继承Aclass B(A):def __init__(self):print(B.__init__)super().__init__()
#super调用父类方法b B()
B.__init__
A.__init__ object创建一个新的object对象 a object()a.name kim # 不能设置属性
Traceback (most recent call last):File pyshell#9, line 1, in modulea.name kim
AttributeError: object object has no attribute name 序列操作
all判断可迭代对象的每个元素是否都为True值 all([1,2]) #列表中每个元素逻辑值均为True返回True
Trueall([0,1,2]) #列表中0的逻辑值为False返回False
Falseall(()) #空元组
Trueall({}) #空字典
True any判断可迭代对象的元素是否有为True值的元素 any([0,1,2]) #列表元素有一个为True则返回True
Trueany([0,0]) #列表元素全部为False则返回False
Falseany([]) #空列表
Falseany({}) #空字典
False filter使用指定方法过滤可迭代对象的元素 a list(range(1,10)) #定义序列a
[1, 2, 3, 4, 5, 6, 7, 8, 9]def if_odd(x): #定义奇数判断函数return x%21list(filter(if_odd,a)) #筛选序列中的奇数
[1, 3, 5, 7, 9] map使用指定方法去作用传入的每个可迭代对象的元素生成新的可迭代对象 a map(ord,abcd)a
map object at 0x03994E50list(a)
[97, 98, 99, 100] next返回可迭代对象中的下一个元素值 a iter(abcd)next(a)
anext(a)
bnext(a)
cnext(a)
dnext(a)
Traceback (most recent call last):File pyshell#18, line 1, in modulenext(a)
StopIteration
#传入default参数后如果可迭代对象还有元素没有返回则依次返回其元素值如果所有元素已经返回则返回default指定的默认
值而不抛出StopIteration 异常next(a,e)
enext(a,e)
e reversed反转序列生成新的可迭代对象 a reversed(range(10)) # 传入range对象a # 类型变成迭代器
range_iterator object at 0x035634E8list(a)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0] sorted对可迭代对象进行排序返回一个新的列表 a [a,b,d,c,B,A]a
[a, b, d, c, B, A]sorted(a) # 默认按字符ascii码排序
[A, B, a, b, c, d]sorted(a,key str.lower) # 转换成小写后再排序a和A值一样b和B值一样
[a, A, b, B, c, d] zip聚合传入的每个迭代器中相同位置的元素返回一个新的元组类型迭代器 x [1,2,3] #长度3y [4,5,6,7,8] #长度5list(zip(x,y)) # 取最小长度3
[(1, 4), (2, 5), (3, 6)] 对象操作
help返回对象的帮助信息 help(str)
Help on class str in module builtins:
class str(object)| str(object) - str| str(bytes_or_buffer[, encoding[, errors]]) - str| | Create a new string object from the given object. If encoding or| errors is specified, then the object must expose a data buffer| that will be decoded using the given encoding and error handler.| Otherwise, returns the result of object.__str__() (if defined)| or repr(object).| encoding defaults to sys.getdefaultencoding().| errors defaults to strict.| | Methods defined here:| | __add__(self, value, /)| Return selfvalue.| *************************** dir返回对象或者当前作用域内的属性列表 import mathmath
module math (built-in)dir(math)
[__doc__, __loader__, __name__, __package__, __spec__, acos, acosh, asin, asinh, atan, atan2,
atanh, ceil, copysign, cos, cosh, degrees, e, erf, erfc, exp, expm1, fabs, factorial,floor, fmod, frexp, fsum, gamma, gcd, hypot, inf, isclose, isfinite, isinf, isnan, ldexp, lgamma, log, log10, log1p, log2, modf, nan, pi, pow, radians, sin, sinh, sqrt, tan, tanh, trunc] id返回对象的唯一标识符 a some textid(a)
69228568 hash获取对象的哈希值 hash(good good study)
1032709256 type返回对象的类型或者根据传入的参数创建一个新的类型 type(1) # 返回对象的类型
class int
#使用type函数创建类型D含有属性InfoDD type(D,(A,B),dict(InfoDsome thing defined in D))d D()d.InfoDsome thing defined in D len返回对象的长度 len(abcd) # 字符串len(bytes(abcd,utf-8)) # 字节数组len((1,2,3,4)) # 元组len([1,2,3,4]) # 列表len(range(1,5)) # range对象len({a:1,b:2,c:3,d:4}) # 字典len({a,b,c,d}) # 集合len(frozenset(abcd)) #不可变集合 ascii返回对象的可打印表字符串表现方式 ascii(1)
1ascii()ascii(9000000)
9000000ascii(中文) #非ascii字符
\\u4e2d\\u6587 format格式化显示值 #字符串可以提供的参数 s Noneformat(some string,s)
some stringformat(some string)
some string
#整形数值可以提供的参数有 b c d o x X n Noneformat(3,b) #转换成二进制
11format(97,c) #转换unicode成字符
aformat(11,d) #转换成10进制
11format(11,o) #转换成8进制
13format(11,x) #转换成16进制 小写字母表示
bformat(11,X) #转换成16进制 大写字母表示
Bformat(11,n) #和d一样
11format(11) #默认和d一样
11
#浮点数可以提供的参数有 e E f F g G n % Noneformat(314159267,e) #科学计数法默认保留6位小数
3.141593e08format(314159267,0.2e) #科学计数法指定保留2位小数
3.14e08format(314159267,0.2E) #科学计数法指定保留2位小数采用大写E表示
3.14E08format(314159267,f) #小数点计数法默认保留6位小数
314159267.000000format(3.14159267000,f) #小数点计数法默认保留6位小数
3.141593format(3.14159267000,0.8f) #小数点计数法指定保留8位小数
3.14159267format(3.14159267000,0.10f) #小数点计数法指定保留10位小数
3.1415926700format(3.14e1000000,F) #小数点计数法无穷大转换成大小字母
INF
#g的格式化比较特殊假设p为格式中指定的保留小数位数先尝试采用科学计数法格式化得到幂指数exp如果-4expp则采用
小数计数法并保留p-1-exp位小数否则按小数计数法计数并按p-1保留小数位数format(0.00003141566,.1g) #p1,exp-5 》 -4expp不成立按科学计数法计数保留0位小数点
3e-05format(0.00003141566,.2g) #p1,exp-5 》 -4expp不成立按科学计数法计数保留1位小数点
3.1e-05format(0.00003141566,.3g) #p1,exp-5 》 -4expp不成立按科学计数法计数保留2位小数点
3.14e-05format(0.00003141566,.3G) #p1,exp-5 》 -4expp不成立按科学计数法计数保留0位小数点E使用大写
3.14E-05format(3.1415926777,.1g) #p1,exp0 》 -4expp成立按小数计数法计数保留0位小数点
3format(3.1415926777,.2g) #p1,exp0 》 -4expp成立按小数计数法计数保留1位小数点
3.1format(3.1415926777,.3g) #p1,exp0 》 -4expp成立按小数计数法计数保留2位小数点
3.14format(0.00003141566,.1n) #和g相同
3e-05format(0.00003141566,.3n) #和g相同
3.14e-05format(0.00003141566) #和g相同
3.141566e-05 vars返回当前作用域内的局部变量和其值组成的字典或者返回对象的属性列表 #作用于类实例class A(object):passa.__dict__
{}vars(a)
{}a.name Kima.__dict__
{name: Kim}vars(a)
{name: Kim} 反射操作
__import__动态导入模块 index __import__(index)
index.sayHello() isinstance判断对象是否是类或者类型元组中任意类元素的实例 isinstance(1,int)
Trueisinstance(1,str)
Falseisinstance(1,(int,str))
True issubclass判断类是否是另外一个类或者类型元组中任意类元素的子类 issubclass(bool,int)
Trueissubclass(bool,str)
Falseissubclass(bool,(str,int))
True hasattr检查对象是否含有属性 #定义类Aclass Student:def __init__(self,name):self.name name s Student(Aim)hasattr(s,name) #a含有name属性
Truehasattr(s,age) #a不含有age属性
False getattr获取对象的属性值 #定义类Studentclass Student:def __init__(self,name):self.name namegetattr(s,name) #存在属性name
Aimgetattr(s,age,6) #不存在属性age但提供了默认值返回默认值getattr(s,age) #不存在属性age未提供默认值调用报错
Traceback (most recent call last):File pyshell#17, line 1, in modulegetattr(s,age)
AttributeError: Stduent object has no attribute age setattr设置对象的属性值 class Student:def __init__(self,name):self.name name a Student(Kim)a.name
Kimsetattr(a,name,Bob)a.name
Bob delattr删除对象的属性 #定义类Aclass A:def __init__(self,name):self.name namedef sayHello(self):print(hello,self.name)
#测试属性和方法a.name
小麦a.sayHello()
hello 小麦
#删除属性delattr(a,name)a.name
Traceback (most recent call last):File pyshell#47, line 1, in modulea.name
AttributeError: A object has no attribute name callable检测对象是否可被调用 class B: #定义类Bdef __call__(self):print(instances are callable now.) callable(B) #类B是可调用对象
Trueb B() #调用类Bcallable(b) #实例b是可调用对象
Trueb() #调用实例b成功
instances are callable now. 变量操作
globals返回当前作用域内的全局变量和其值组成的字典 globals()
{__spec__: None, __package__: None, __builtins__: module builtins (built-in), __name__: __main__,
__doc__: None, __loader__: class _frozen_importlib.BuiltinImporter}a 1globals() #多了一个a
{__spec__: None, __package__: None, __builtins__: module builtins (built-in), a: 1, __name__:
__main__, __doc__: None, __loader__: class _frozen_importlib.BuiltinImporter} locals返回当前作用域内的局部变量和其值组成的字典 def f():print(before define a )print(locals()) #作用域内无变量a 1print(after define a)print(locals()) #作用域内有一个a变量值为1 f
function f at 0x03D40588f()
before define a
{}
after define a
{a: 1} 交互操作
print向标准输出对象打印输出 print(1,2,3)
1 2 3print(1,2,3,sep )
123print(1,2,3,sep ,end ?)
123? input读取用户输入值 s input(please input your name:)
please input your name:Ains
Ain 文件操作
open使用指定的模式和编码打开文件返回文件读写对象 # t为文本读写b为二进制读写a open(test.txt,rt)a.read()
some texta.close() 编译执行
compile将字符串编译为代码或者AST对象使之能够通过exec语句来执行或者eval进行求值 #流程语句使用execcode1 for i in range(0,10): print (i)compile1 compile(code1,,exec)exec (compile1)
0
1
2
3
4
5
6
7
8
9#简单求值表达式用evalcode2 1 2 3 4compile2 compile(code2,,eval)eval(compile2)
10 eval执行动态表达式求值 eval(1234)
10 exec执行动态语句块 exec(a12) #执行语句a
3 repr返回一个对象的字符串表现形式(给解释器) a some textstr(a)
some textrepr(a)
some text 装饰器
property标示属性的装饰器 class C:def __init__(self):self._name propertydef name(self):im the name property.return self._namename.setterdef name(self,value):if value is None:raise RuntimeError(name can not be None)else:self._name value c C()c.name # 访问属性c.name None # 设置属性时进行验证
Traceback (most recent call last):File pyshell#84, line 1, in modulec.name NoneFile pyshell#81, line 11, in nameraise RuntimeError(name can not be None)
RuntimeError: name can not be Nonec.name Kim # 设置属性c.name # 访问属性
Kimdel c.name # 删除属性不提供deleter则不能删除
Traceback (most recent call last):File pyshell#87, line 1, in moduledel c.name
AttributeError: cant delete attributec.name
Kim classmethod标示方法为类方法的装饰器 class C:classmethoddef f(cls,arg1):print(cls)print(arg1) C.f(类对象调用类方法)
class __main__.C
类对象调用类方法c C()c.f(类实例对象调用类方法)
class __main__.C
类实例对象调用类方法 staticmethod标示方法为静态方法的装饰器 # 使用装饰器定义静态方法class Student(object):def __init__(self,name):self.name namestaticmethoddef sayHello(lang):print(lang)if lang en:print(Welcome!)else:print(你好) Student.sayHello(en) #类调用,en传给了lang参数
en
Welcome!b Student(Kim)b.sayHello(zh) #类实例对象调用,zh传给了lang参数
zh
你好