Python开发第五篇内置函数
Posted Tanglaoer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python开发第五篇内置函数相关的知识,希望对你有一定的参考价值。
abs()
函数返回数字的绝对值
__author__ = "Tang" a = -30 print(abs(a))# 30
all()
函数用于判断给定的可迭代参数iterable中的所有元素是否都为True,如果是则返回True,否则返回False
如果iterable的所有元素不为0、\'\'"、False或者iterable为空,all(iterable)返回True,否则返回False;注意 空列表 空元组 空字典 空字符串是True
__author__ = "Tang" a = all([1,0]) print(a) # False a = all([1,False]) print(a) # False a = all(["",1]) print(a) # False a = all([]) print(a) # True a = all(()) print(a) # True a = all({}) print(a) # True a = "" print(all(a)) # True
any()
函数用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True。
如果都为空、0、false,则返回false,如果不都为空、0、false,则返回true
__author__ = "Tang" a = any([1,0]) print(a) # True a = any([1,False]) print(a) # True a = any(["",1]) print(a) # True a = any([]) print(a) # False a = any(()) print(a) # False a = any({}) print(a) # False a="" print(any("")) # False
basestring()
方法是 str 和 unicode 的超类(父类)可以用来判断一个对象是否为 str 或者 unicode 的实例,isinstance(obj, basestring) 等价于 isinstance(obj, (str, unicode))
bin() 返回一个整数 int 的二进制表示
__author__ = "Tang" a = 10 print(bin(a)) # 0b1010 a = 500 print(bin(a)) # 0b111110100
bool()
函数用于将给定参数转换为布尔类型,如果没有参数,返回 False
__author__ = "Tang" # 为False的情况 七兄弟 # () [] {} 0 False "" 空 print(bool(())) # False print(bool([])) # False print(bool({}))# False print(bool(0))# False print(bool(False))# False print(bool(""))# False print(bool())# False print(bool(10)) # 其他情况都为True
bytearray()
方法返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256
__author__ = "Tang" a = bytearray() print(a) # bytearray(b\'\') a = bytearray([1,2,3]) print(a)#bytearray(b\'\\x01\\x02\\x03\')
callable()
函数用于检查一个对象是否是可调用的。如果返回True,object仍然可能调用失败;但如果返回False,调用对象ojbect绝对不会成功。
对于函数, 方法, lambda 函式, 类, 以及实现了 __call__ 方法的类实例, 它都返回 True
chr()
用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应ascii字符
__author__ = "Tang" print(chr(97)) # a
classmethod
修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等
是类里面方法的语法糖,有property,staticmethod等
__author__ = "Tang" class A(object): @classmethod def func1(self): print(\'foo\') A.func1() # foo
cmp(x,y)
Python3中已经不能使用该函数
compile()
函数将一个字符串编译为字节代码
__author__ = "Tang" # compile() 函数将一个字符串编译为字节代码 # compile(*args, **kwargs) str1 = "for i in range(1,10): print(i,end=\' \')" a = (compile(str1,"","exec")) print(a) # <code object <module> at 0x02AFD758, file "", line 1> exec(a) # 1 2 3 4 5 6 7 8 9
delattr(object,name)
函数用于删除属性
__author__ = "Tang" class A: x = 20 print(A.x) # 20 delattr(A,"x") print(A.x) #报错
dict()
函数用于创建一个字典 五星级别*****
__author__ = "Tang" """ class dict(**kwarg) # 键值对方式 class dict(mapping, **kwarg) # 映射函数方式来构造字典 class dict(iterable, **kwarg) # 可迭代对象方式来构造字典 """ a = dict(a=\'a\',b=\'b\',c=\'c\') print(a) # {\'a\': \'a\', \'b\': \'b\', \'c\': \'c\'} a = dict(zip([1,2,3,4,5],[\'a\',\'b\',\'c\',\'d\',\'e\'])) print(a) # {1: \'a\', 2: \'b\', 3: \'c\', 4: \'d\', 5: \'e\'} a = dict([(1,\'a\'),(2,\'b\'),(3,\'c\'),(4,\'d\')]) print(a) # {1: \'a\', 2: \'b\', 3: \'c\', 4: \'d\'} a = dict(((1,\'a\'),(2,\'b\'),(3,\'c\'),(4,\'d\'),)) print(a) # {1: \'a\', 2: \'b\', 3: \'c\', 4: \'d\'}
dir()
函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息
__author__ = "Tang" """此方法在学习过程中非常有用,可用于查看类的方法""" print(dir()) """ [\'__annotations__\', \'__author__\', \'__builtins__\', \'__cached__\', \'__doc__\', \'__file__\', \'__loader__\', \'__name__\', \'__package__\', \'__spec__\'] """ print(dir( [] )) """ 查看列表的方法 [\'__add__\', \'__class__\', \'__contains__\', \'__delattr__\', \'__delitem__\', \'__dir__\', \'__doc__\', \'__eq__\', \'__format__\', \'__ge__\', \'__getattribute__\', \'__getitem__\', \'__gt__\', \'__hash__\', \'__iadd__\', \'__imul__\', \'__init__\', \'__init_subclass__\', \'__iter__\', \'__le__\', \'__len__\', \'__lt__\', \'__mul__\', \'__ne__\', \'__new__\', \'__reduce__\', \'__reduce_ex__\', \'__repr__\', \'__reversed__\', \'__rmul__\', \'__setattr__\', \'__setitem__\', \'__sizeof__\', \'__str__\', \'__subclasshook__\', \'append\', \'clear\', \'copy\', \'count\', \'extend\', \'index\', \'insert\', \'pop\', \'remove\', \'reverse\', \'sort\'] """
divmod()
函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)
__author__ = "Tang" print(divmod(9,3)) # (3, 0) a,b = divmod(5,2) print(a,b) # 2 1 # 如果有一个参数是小数,那么结果都是小数 a,b = divmod(10.0,3) print(a,b) # 3.0 1.0 a,b = divmod(11,3.0) print(a,b) # 3.0 2.0
enumerate()
函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列
__author__ = "Tang" """ enumerate(sequence, [start=0]) 可以自定义start 开始下标 返回两个参数,第一个为下标,第二个为值 """ a = [\'tang\',\'lao\',\'er\'] for key,value in enumerate(a,10): print(key,value) """ 10 tang 11 lao 12 er """
eval()
函数用来执行一个字符串表达式,并返回表达式的值,可以说是一个计算器
__author__ = "Tang" """ eval(expression[, globals[, locals]]) expression 表达式 globals - 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象 locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象 """ x = 2 print(eval(\'3 * x\')) # 6 print(eval(\'2+2\')) # 4 print(eval(\'2**10\')) # 1024
execfile()
函数可以用来执行一个文件
python3 中没有该函数
file()
python3 中没有该函数
filter()
函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表
__author__ = "Tang" """ 该函数接收两个参数,第一个为函数,第二个为序列, 序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中 filter(function, iterable) """ def test(n): return n%2 li = filter(test,[i for i in range(10)]) print(li) # <filter object at 0x00B132F0> print(list(li)) # [1, 3, 5, 7, 9] # 配合匿名函数 li = filter(lambda x:x%2,[i for i in range(10)]) print(li) # <filter object at 0x036232F0> print(list(li)) # [1, 3, 5, 7, 9]
float()
函数用于将整数和字符串转换成浮点数,字符串是数字在里面才行,不然会报错
__author__ = "Tang" a = 10 print(float(a)) # 10.0 a = -234 print(float(a)) # -234.0 a = "123" print(float(a)) # 123.0 a = "123abc" print(float(a)) # 报错
format()
请看 字符串格式化篇
frozenset()
返回一个冻结的集合,冻结后集合不能再添加或删除任何元素
__author__ = "Tang" """ class frozenset([iterable]) iterable 可迭代对象 能够被for循环的都是可迭代对象,也可以去重 """ a = frozenset(range(10)) print(a) # frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}) print(list(a)) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] a = frozenset("tanglaoer") # 2个a print(list(a)) # [\'r\', \'l\', \'e\', \'o\', \'a\', \'t\', \'g\', \'n\'] 一个a li = [1,2,3] li.append(4) print(li) # [1, 2, 3, 4] a.append(4) # 报错 print (a) # 报错
getattr()
函数用于返回一个对象属性值
__author__ = "Tang" """ getattr(object, name[, default]) object 对象 name 字符串,对象属性 default 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError """ class A: b = 12 a = A() c = getattr(A,\'b\') print(c) # 12 d = getattr(A,\'z\') print(d) # 报错 AttributeError: type object \'A\' has no attribute \'z\'
globals()
函数会以字典类型返回当前位置的全部全局变量
__author__ = "Tang" a = "tang" print(globals()) """ { \'__name__\': \'__main__\', \'__doc__\': None, \'__package__\': None, \'__loader__\': <_frozen_importlib_external.SourceFileLoader object at 0x009FC350>, \'__spec__\': None, \'__annotations__\': {}, \'__builtins__\': <module \'builtins\' (built-in)>, \'__file__\': \'F:/python_django/基础/内置函数.py\', \'__cached__\': None, \'__author__\': \'Tang\', \'a\': \'tang\' } """
hasattr()
函数用于判断对象是否包含对应的属性
__author__ = "Tang" """ hasattr(object, name) object 对象。 name 字符串,属性名 """ class A: b = \'10\' a = A() print(hasattr(a,\'b\')) # True print(hasattr(a,\'z\')) # False
hash()
用于获取取一个对象(字符串或者数值等)的哈希值
__author__ = "Tang" """ hash(object) """ print(hash("tang")) # 278126952 print(hash(23)) # 23 print(hash(str([1,2,3]))) # 716557122 # print(hash([1,2,3])) # 报错
help()
函数用于查看函数或模块用途的详细说明
__author__ = "Tang" """ help([object]) object 对象 """ print(help("os")) # 查看os模块的详细帮助信息 # 输出内容太多了,我就不打印了
hex()
函数用于将10进制整数转换成16进制,以字符串形式表示
__author__ = "Tang" print(hex(10)) # 0xa a = hex(17) print(a, type(a)) # 0x11 <class \'str\'>
id()
函数用于获取对象的内存地址
__author__ = "Tang" """ 在这里提一下,两个变量指向一个相同的不可变数据类型的数值时,它们的id是相同的, 但是元组不一样,它们id是改变的,与列表一样 """ # int a = 10 print(id(a)) # 1368449952 b = 10 print(id(b)) # 1368449952 # str 字符串是不可变数据类型 a = "tang" print(id(a)) # 17810368 b = "tang" print(id(b)) # 17810368 # 列表 a = [1,2,3,4] print(id(a)) # 50262384 b = [1,2,3,4] print(id(b)) # 50262344 a = (1,2,3,4,) print(id(a)) # 6564096 b = (1,2,3,4,) print(id(b)) # 6631664
input()
函数接受一个标准输入数据,返回为 string 类型
__author__ = "Tang" a = input(\'请输入:\') print(a,type(a))
int()
函数用于将一个字符串或数字转换为整型
__author__ = "Tang" """ class int(x, base=10) x 字符串或数字 base 进制数,默认按十进制 """ a = "123" print(int(a)) # 123 # a = "abc123" # print(int(a)) # 报错 a = 3.6 print(int(a)) # 3 a = \'0xa\' print(int(a, base=16)) # 10 a = \'10\' print(int(a,base=8)) # 8
isinstance()
函数来判断一个对象是否是一个已知的类型,类似 type()
__author__ = "Tang" """ isinstance() 与 type() 区别: type() 不会认为子类是一种父类类型,不考虑继承关系。 isinstance() 会认为子类是一种父类类型,考虑继承关系。 如果要判断两个类型是否相同推荐使用 isinstance()。 isinstance(object, classinfo) object 实例对象。 classinfo 可以是直接或间接类名、基本类型或者由它们组成的元组 """ a = 10 print(isinstance(a,int)) # True class A: pass class B(A): pass obj = B() print(isinstance(obj,A)) #True print(isinstance(obj,B)) #True
issubclass()
方法用于判断参数 class 是否是类型参数 classinfo 的子类
__author__ = "Tang" """ issubclass(class, classinfo) class 类。 classinfo 类 """ class A: pass class B(A): pass print(issubclass(A,B)) # False print(issubclass(B,A)) # True
iter()
函数用来生成迭代器
__author__ = "Tang" """ iter(object[, sentinel]) object 支持迭代的集合对象。 sentinel 如果传递了第二个参数,则参数 object 必须是一个可调用的对象(如,函数), 此时,iter 创建了一个迭代器对象,每次调用这个迭代器对象的__next__()方法时,都会调用 object """ li = [1,2,3] for i in iter(li): print(i,end=" ") # 1 2 3 l = [\'a\',\'b\',\'c\',\'d\'] def test(): return l.pop() it = iter(test,\'z\') # 无穷执行test() 直到test结果等于\'z\' print(it.__next__()) # d print(it.__next__()) # c print(it.__next__()) # b print(it.__next__()) # a print(it.__next__()) # IndexError: pop from empty list
len()
方法返回对象(字符、列表、元组等)长度或项目个数
__author__ = "Tang" """ len( s ) s -- 对象 """ s = "tang" print(len(s)) # 4 a = [1,2,3,4] print(len(a)) # 4
list()
方法用于将对象转换为列表
__author__ = "Tang" # 字符串转换 a = "tang" print(list(a)) # [\'t\', \'a\', \'n\', \'g\'] # a = 123 # print(list(a)) # 报错 a = (1,2,3,) print(list(a)) # [1, 2, 3]
locals()
函数会以字典类型返回当前位置的全部局部变量
对于函数, 方法, lambda 函式, 类, 以及实现了 __call__ 方法的类实例, 它都返回 True
__author__ = "Tang" def test(): a = 1 print(locals()) # {\'a\': 1} print(globals()) """ { \'__name__\': \'__main__\', \'__doc__\': None, \'__package__\': None, \'__loader__\': <_frozen_importlib_external.SourceFileLoader object at 0x00E3C350>, \'__spec__\': None, \'__annotations__\': {}, \'__builtins__\': <module \'builtins\' (built-in)>, \'__file__\': \'F:/python_django/基础/内置函数.py\', \'__cached__\': None, \'__author__\': \'Tang\', \'test\': <function test at 0x002BB618>} """ test()
long()
python3 已经没有该函数
map()
会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表
__author__ = "Tang" """ map(function, iterable, ...) function 函数,有一个参数 iterable 一个或多个序列 """ def test(a): return a**2 li = [1,2,3,4] print(map(test,li)) # <map object at 0x017432F0> print(list(map(test,li))) # [1, 4, 9, 16] # 结合lambda表达式 a = map(lambda a:a**2,[i for i in range(10)]) print(list(a)) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
max()
方法返回给定参数的最大值,参数可以为序列
__author__ = "Tang" """ max( x, y, z, .... ) """ a = [1,2,3,4] print(max(a)) # 4 a = (1,2,3,4) print(max(a)) # 4
memoryview()
函数返回给定参数的内存查看对象(Momory view)。
所谓内存查看对象,是指对支持缓冲区协议的数据进行包装,在不需要复制对象基础上允许Python代码访问
__author__ = "Tang" """ memoryview(obj) """ v = memoryview(bytearray("tang",\'utf-8\')) print(v[1]) # 97 print(v[0]) # 116 print(chr(v[0])) # t
min()
方法返回给定参数的最小值,参数可以为序列
__author__ = "Tang" a = [1,2,3] print(min(a)) # 1
next()
返回迭代器的下一个项目
__author__ = "Tang" """ next(iterator[, default]) iterator 可迭代对象 default 可选,用于设置在没有下一个元素时返回该默认值,如果不设置,又没有下一个元素则会触发 StopIteration 异常 """ li = [1,2,3,4] # print(next(li)) # TypeError: \'list\' object is not an iterator # 先转换为可迭代对象 li = iter(li) print(next(li)) # 1 print(next(li)) # 2 print(next(li)) # 3 print(next(li,80)) # 4 print(next(li,90)) # 90 不然就报错
oct()
函数将一个整数转换成8进制字符串
__author__ = "Tang" a = 10 t = oct(a) print(a,t,type(t)) # 10 0o12 <class \'str\'>
open()
函数用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写
__author__ = "Tang" """ open(name[, mode[, buffering]]) name : 一个包含了你要访问的文件名称的字符串值。 mode : mode 决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。 buffering : 如果 buffering 的值被设为 0,就不会有寄存。如果 buffering 的值取 1,访问文件时会寄存行。如果将 buffering 的值设为大于 1 的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认 r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 r+ 打开一个文件用于读写。文件指针将会放在文件的开头。 rb+以上是关于Python开发第五篇内置函数的主要内容,如果未能解决你的问题,请参考以下文章