1.abs()函数
''' abs() 函数返回数字的绝对值。d'd'd'd 绝对值:absolutedddd 正如字面上的意思,可以返回一个绝对值 ''' import math print('abs(45)的值:',abs(45)) print('abs(-45)的值:',abs(-45)) print('abs(45+23)的值:',abs(45+23)) print('abs(math.pi)的值:',abs(math.pi)) print(help(abs)) ''' 运行结果: abs(45)的值: 45 abs(-45)的值: 45 abs(45+23)的值: 68 abs(math.pi)的值: 3.141592653589793 Help on built-in function abs in module builtins: abs(x, /) Return the absolute value of the argument. None 在python2 里还可以输出 print "abs(119L) : ", abs(119L) 不过python3中abs函数只能输入int型 不然会报错 '''
2.all()函数
''' all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。 元素除了是 0、空、FALSE 外都算 TRUE。 语法 以下是 all() 方法的语法: all(iterable) 参数 iterable -- 元组或列表。 返回值 如果iterable的所有元素不为0、''、False或者iterable为空,all(iterable)返回True,否则返回False; 注意:空元组、空列表返回值为True,这里要特别注意。 ''' print(all(['a','b','c',''])) #列表存在一个为空的元素,返回False print(all(['a','b','c','d'])) #列表都有元素,返回True print(all([0,1,2,3,4,5,6])) #列表里存在为0的元素 返回False print(all(('a','b','c',''))) #元组存在一个为空的元素,返回Fasle print(all(('a','b','c','d'))) #元组都有元素,返回True print(all((0,1,2,3,4,5))) #元组存在一个为0的元素,返回Fasle print(all([])) #空列表返回 True print(all(())) #空元组返回 True
3.any()函数
''' any() 函数用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True。 元素除了是 0、空、FALSE 外都算 TRUE。 语法 以下是 any() 方法的语法: any(iterable) 参数 iterable -- 元组或列表。 返回值 如果都为空、0、false,则返回false,如果不都为空、0、false,则返回true。 ''' print(any(['a','b','c',''])) #列表存在一个为空的元素,返回True print(any(['a','b','c','d'])) #列表都不为空,返回True print(any([0,'',False])) #列表里的元素全为 0,'',False 返回False print(any(('a','b','c',''))) #元组存在一个为空的元素,返回True print(any(('a','b','c','d'))) #元组都有元素,返回True print(any((0,'',False))) #元组里的元素全为 0,'',False 返回False print(any([])) #空列表返回 False print(any(())) #空元组返回 False
4.ascii()函数
''' ascii() 函数类似 repr() 函数, 返回一个表示对象的字符串, 但是对于字符串中的非 ASCII 字符则返回通过 repr() 函数使用 \x, \u 或 \U 编码的字符。 生成字符串类似 Python2 版本中 repr() 函数的返回值。 语法 以下是 ascii() 方法的语法: ascii(object) 参数 object -- 对象。 返回值 返回字符串 ''' print(ascii('uiatfu')) #报错 SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 427-428: truncated \xXX escape #不知道为何
5.bin()函数
''' 函数原型 bin(x) 参数解释 x 整数型,参数不可为空。 返回值 <class 'str'> 字符串类型,二进制整数。 函数说明 将一个整数转化为一个二进制整数,并以字符串的类型返回。 ''' print(bin(12)) #输出12的二进制 0b1100 print(bin(-120)) #输出-12的二进制 -0b1111000 print(type(bin(12))) #输出bin(12) 的类型 <class 'str'> 所以不能直接计算 print(int(bin(10),base=2)+int(bin(20),base=2)) #输出 30 #base 参数不可为空 为空默认参数为10进制 会报错 ValueError: invalid literal for int() with base 10: '0b1010' #当然了,参数不仅可以接受十进制整数,八进制、十六进制也是可以的,只要是int型数据就合法。 print(bin(0b10010)) #输出0b10010 print(bin(0o1357)) #输出0b1011101111 print(bin(0x2d9)) #输出0b1011011001
6.bool()函数
''' 描述 bool() 函数用于将给定参数转换为布尔类型,如果没有参数,返回 False。 bool 是 int 的子类。 语法 以下是 bool() 方法的语法: class bool([x]) 参数 x -- 要进行转换的参数。 返回值 返回 Ture 或 False。 ''' print(bool(0)) #返回False print(bool(1)) #返回True print(bool(True)) #返回True print(bool(False)) #返回False print(bool('')) #返回False #0,False,'', 空字符串返回Fasle
7.bytes()函数
''' 描述 bytes 函数返回一个新的 bytes 对象,该对象是一个 0 <= x < 256 区间内的整数不可变序列。 它是 bytearray 的不可变版本。 语法 以下是 bytes 的语法: class bytes([source[, encoding[, errors]]]) 参数 如果 source 为整数,则返回一个长度为 source 的初始化数组; 如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列; 如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数; 如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。 如果没有输入任何参数,默认就是初始化数组为0个元素。 返回值 返回一个新的 bytes 对象。 将一个字符串转换成字节类型 ''' print(bytes('python',encoding='utf-8')) #输出b'python' print(bytes('张三',encoding='utf-8')) #输出b'\xe5\xbc\xa0\xe4\xb8\x89' print(bytes([1,2,3,4])) #输出b'\x01\x02\x03\x04' print(bytes('hello','ascii')) #输出b'hello' print(type(bytes([1,2,3]))) #输出<class 'bytes'>
8.challable()函数
''' challable() 判断对象是否可以被调用, 能被调用的对象就是一个callables对象, 比如函数和带有__call__()的实例 ''' print(callable(max)) #输出True print(callable([1,2,3])) #输出Fasle print(callable(None)) #输出Fasle print(callable('str')) #输出Fasle def fn(x): return x*x print(callable(fn)) #输出True 证明自定义的函数也可以
9.chr()函数
''' 查看十进制数对应的ASCII码值 描述 chr() 用一个整数作参数,返回一个对应的字符。 语法 以下是 chr() 方法的语法: chr(i) 参数 i -- 可以是 10 进制也可以是 16 进制的形式的数字,数字范围为 0 到 1,114,111 (16 进制为0x10FFFF)。 返回值 返回值是当前整数对应的 ASCII 字符。 ''' #print(chr(-1)) #报错 ValueError: chr() arg not in range(0x110000) 超出范围 不能小于0 print(chr(0x30)) #输出 0 print(chr(97)) #输出 a print(chr(8364)) #输出 €
10.classmethod()函数
''' 描述 classmethod 修饰符对应的函数不需要实例化,不需要 self 参数, 但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。 语法 classmethod 语法: classmethod 参数 无。 返回值 返回函数的类方法。 ''' class Stud: num=1 def fn1(self): print('方法一') @classmethod def fn2(cls): print('方法二') #输出 方法二 print(cls.num) #调用类的实例化对象 cls().fn1() #调用类的方法 Stud.fn2() #输出 方法二 不需要实例化 print('===='*10) object=Stud() object.fn1() #输出 方法一 需要实例化
11.complex()函数
''' 描述 complex() 函数用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。 如果第一个参数为字符串,则不需要指定第二个参数。。 语法 complex 语法: class complex([real[, imag]]) 参数说明: real -- int, long, float或字符串; imag -- int, long, float; 返回值 返回一个复数。 ''' print(complex(1,2)) #输出 (1+2j) print(complex(1)) #输出 (1+0j) print(complex('2')) #输出 (2+0j) # 注意:这个地方在"+"号两边不能有空格,也就是不能写成"1 + 2j",应该是"1+2j",否则会报错 print(complex('2+3j')) #输出 (2+3j) print(complex(1.2,3.4)) #输出 (1.2+3.4j)
12.complie()函数
''' complie() 将字符串编译成python能识别或可以执行的代码,也可以将文字读成字符串再编译 1 compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1) 2 将source编译为代码或者AST对象。代码对象能过通过exec语句来执行或者eval()进行求值。 3 参数source:字符串或者AST(abstract syntax trees)对象。 4 参数filename:代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。 5 参数model:指定编译代码的种类。可以指定'exec', 'eval', 'single'。 6 参数flag和dont_inherit:这两个参数为可选参数。 ''' s="print('hello world')" r=compile(s,'hello','exec') print(r) #输出结果: #<code object <module> at 0x000002EBD335CF60, file "hello", line 1>
13.delattr()函数
''' 描述: delattr函数用于删除属性 delattr(x,'foobar)相当于del x.foobar 语法: setattr(object,name) 参数: object--对象 name--必须是对象的属性 返回值: 无 ''' class People(): sex='男' def __init__(self,name): self.name=name def peopleinfo(self): print('欢迎%s访问'%self.name) delattr(People,'sex') #等同于 del People.sex print(People.__dict__) #输出 {'__module__': '__main__', '__init__': <function People.__init__ at 0x000001CE3E2E52F0>, 'peopleinfo': <function People.peopleinfo at 0x000001CE3E2E5378>, '__dict__': <attribute '__dict__' of 'People' objects>, '__weakref__': <attribute '__weakref__' of 'People' objects>, '__doc__': None} class Foo: def run(self): while True: cmd=input('cmd>>: ').strip() if hasattr(self,cmd): func=getattr(self,cmd) func() def download(self): print('download....') def upload(self): print('upload...') obj=Foo() obj.run()
14.dict()函数
''' 描述 dict() 函数用于创建一个字典。 语法 dict 语法: class dict(**kwarg) class dict(mapping, **kwarg) class dict(iterable, **kwarg) 参数说明: **kwargs -- 关键字 mapping -- 元素的容器。 iterable -- 可迭代对象。 返回值 返回一个字典。 ''' print(dict()) #创建空字典 dict1=dict(a='a', b='b', t='t') #传入关键字 构建字典 print(dict1) #输出 {'a': 'a', 'b': 'b', 't': 't'} dict2=dict(zip(['one', 'two', 'three'], [1, 2, 3])) # 映射函数方式来构造字典 print(dict2) #输出 {'one': 1, 'two': 2, 'three': 3} dict3=dict([('one', 1), ('two', 2), ('three', 3)]) # 可迭代对象方式来构造字典 print(dict3) #输出 {'one': 1, 'two': 2, 'three': 3}
15.dir()函数
''' dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。 语法 dir 语法: dir([object]) 参数说明: object -- 对象、变量、类型。 返回值 返回模块的属性列表。 ''' print(dir()) #获得当前模块的属性列表 #输出 ['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__'] print(dir([])) #获得列表的方法 #输出 ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__ print(dir(str)) #获得字符串的方法 #输出 ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'] print(dir(dict)) #获得字典的方法 #输出 ['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values'] def update_func(var): print("var 的内存地址:", id(var)) var += [4] lst_1 = [1, 2, 3] print(dir()) #输出 ['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'lst_1', 'update_func'] class Shape: def __dir__(self): return ['area', 'perimeter', 'location'] s = Shape() print(dir(s)) #输出 ['area', 'location', 'perimeter']
16.divmod()函数
''' python divmod() 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。 在 python 2.3 版本之前不允许处理复数。 函数语法 divmod(a, b) 参数说明: a: 数字 b: 数字 ''' print(divmod(20,4)) #返回 (5, 0) print(divmod(7,2)) #返回 (3, 1) print(divmod(8,2)) #返回 (4, 0) #print(divmod(1+2j,1+0.5j)) #报错 TypeError: can't take floor or mod of complex number.
17.enumerate()函数
''' enumerate是翻译过来是枚举的意思,看下它的方法原型: enumerate(sequence, start=0),返回一个枚举对象。 sequence必须是序列或迭代器iterator,或者支持迭代的对象。 enumerate()返回对象的每个元素都是一个元组, 每个元组包括两个值,一个是计数,一个是sequence的值, 计数是从start开始的,start默认为0。 --------------------- ''' a=["q","w","e","r"] c=enumerate(a) for i in c: print(i) ''' 输出如下: (0, 'q') (1, 'w') (2, 'e') (3, 'r') ''' a=["w","a","s","d"] #这里加了个参数2,代表的是start的值 c=enumerate(a,2) for i in c: print(i) ''' 输出如下: (2, 'w') (3, 'a') (4, 's') (5, 'd') ''' a=["q","w","e","r"] #创建一个空字典 b=dict() #这里i表示的是索引,item表示的是它的值 for i,item in enumerate(a): b[i]=item print(b) #输出 {0: 'q', 1: 'w', 2: 'e', 3: 'r'} for i,j in enumerate('abc'): print(i,j) #输出结果 # 0 a # 1 b # 2 c
18.eval()函数
''' eval() 函数用来执行一个字符串表达式,并返回表达式的值。 语法 以下是 eval() 方法的语法: eval(expression[, globals[, locals]]) 参数 expression -- 表达式。 globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。 locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。 返回值 返回表达式计算结果。 ''' x=7 print(eval('3*x')) #返回 21 print(eval('pow(2,2)')) #返回 4 print(eval('3+5')) #返回 8 #eval函数还可以实现list、dict、tuple与str之间的转化 #1.字符串转换成列表 a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]" print(type(a)) #返回 <class 'str'> b = eval(a) print(type(b)) #返回 <class 'list'> print(b) #输出 [[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]] #2.字符串转换成字典 a = "{1: 'a', 2: 'b'}" print(type(a)) #返回 <class 'str'> b = eval(a) print(type(b)) #返回 <class 'dict'> print(b) #输出 {1: 'a', 2: 'b'} #3.字符串转换成元组 a = "([1,2], [3,4], [5,6], [7,8], (9,0))" print(type(a)) #返回 <class 'str'> b=eval(a) print(type(b)) #返回 <class 'tuple'> print(b) #输出 ([1, 2], [3, 4], [5, 6], [7, 8], (9, 0))
19.exec()函数
''' 函数的作用: 动态执行python代码。也就是说exec可以执行复杂的python代码,而不像eval函数那样只能计算一个表达式的值。 exec(source, globals=None, locals=None, /) source:必选参数,表示需要被指定的python代码。它必须是字符串或code对象。如果source是一个字符串,该字符串会先被解析为一组python语句,然后执行。如果source是一个code对象,那么它只是被简单的执行。 返回值: exec函数的返回值永远为None。 eval()函数和exec()函数的区别: eval()函数只能计算单个表达式的值,而exec()函数可以动态运行代码段。 eval()函数可以有返回值,而exec()函数返回值永远为None。 ''' x = 10 def func(): y = 20 a = exec("x+y") print("a:",a) #输出 a: None b = exec("x+y",{"x":1,"y":2}) print("b:",b) #输出 b: None c = exec("x+y",{"x":1,"y":2},{"y":3,"z":4}) print("c:",c) #输出 c: None d = exec("print(x,y)") print("d:",d) #输出 d: None func() x = 10 expr = """ z = 30 sum = x + y + z #一大包代码 print(sum) """ def func(): y = 20 exec(expr) #10+20+30 输出60 exec(expr,{'x':1,'y':2}) #30+1+2 输出 33 exec(expr,{'x':1,'y':2},{'y':3,'z':4}) #30+1+3,x是定义全局变量1,y是局部变量 输出34 func()
20.filter()函数
''' filter() 函数是一个对于可迭代对象的过滤器,过滤掉不符合条件的元素, 返回的是一个迭代器,如果要转换为列表,可以使用 list() 来转换。 该函数接收两个参数,第一个为函数的引用或者None,第二个为可迭代对象, 可迭代对象中的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到迭代器中 下面看下fiter()的用法: ''' my_list=[1,2,'',3,4,'6',' '] new_list=list(filter(None,my_list)) print(new_list) #None 函数 过滤掉'' 而不是过滤掉空字符串 def is_oushu(x): return x%2==0 new_list=list(filter(is_oushu,list(range(1,11)))) print(new_list) #过滤掉不是偶数的数 a=[1,2,3,4,5,6,2,2,2,] print(list(filter(lambda x:x!=2,a))) #筛选出列表里所有的不是 2 的元素