内置函数

前言

为何我们能直接调用dir()、id()这些方法?因为pyhton在启动时候就已经调用了内置方法,所以我们能直接使用

内置参数详情:https://docs.python.org/3/library/functions.html?highlight=built#asci

内置参数

1)all(iterable) , 若可迭代对象全为真,则返回真,负数也为真,否则返回假

1  >>> all([1,2,0])
2  False
3  >>> all((1,2,3))
4  True
5 >>> all([])
6 True

2)any(iterable),可迭代对象只要有1个为真,则返回真,负数也为真,空时返回假

1 True
2 >>> any([])
3 False
4 >>> any([1,0,3])
5 True
6 >>> any([-3])
7 True

 3)ascii(object)??

4)bin(x)  将十进制转换成二进制

>>> bin(1)
'0b1'
>>> bin(255)
'0b11111111'

5)bool([x])  判断真假

>>> bool(1)
True
>>> bool(0)
False
>>> bool([])
False
>>> bool([0,1])
True

6)bytearray([source[, encoding[, errors]]] 字节数组,可修改二进制的字节

bytes() 不能修改二进制字符串

 1 >>> a = bytes("abc",encoding= "utf-8")
 2 >>> a
 3 b'abc'
 4 >>> a[0]="99"
 5 Traceback (most recent call last):
 6   File "<stdin>", line 1, in <module>
 7 TypeError: 'bytes' object does not support it
 8 >>> b = bytearray("abc",encoding="utf-8")
 9 >>> b[0]="98"  #integer 类型
10 Traceback (most recent call last):
11   File "<stdin>", line 1, in <module>
12 TypeError: an integer is required
13 >>> b[0]=98
14 >>> b
15 bytearray(b'bbc')

 7)callable(object)  判断是否可调用

1 def sayhi():
2     pass
3 print(callable(sayhi))
4 
5 返回:True

8)chr(i)  输出数字输出对应的ascii码,输入的是数字  输出对应ascii里的字符

ord(c)  输入ascii字符输出对应数字 

1 >>> chr(98)
2 'b'
3 >>> ord("b")
4 98

9)classmethod(function) 类方法  后面补充

10)compile(sourcefilenamemodeflags=0dont_inherit=Falseoptimize=-1)  用于底层,将代码进行编译  基本用不到

11)delattr(objectname)  面向对象再讲解

12)dir([object])  查看方法

1 >>> a = []
2 >>> dir(a)
3 ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__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']
View Code

13)divmod(ab)  

1 >>> divmod(5,2)
2 (2, 1)

14)enumerate(iterablestart=0)

15)eval(expressionglobals=Nonelocals=None)  把字符串转字典 只能把简单的字符串转成字典  稍微复杂语句 比如if 的条件语句用exec

16)exec(object[, globals[, locals]])  把字符串转字典  可以复杂语句 比如if 的条件语句 等

17)filter(functioniterable)  过滤出一组数据

插曲:内置函数  只处理简单运算,复杂的处理不了,这种内置函数单独使用的情况比较少 一般是结合使用的

1 def sayhi(name):
2     print(name)
3 calc = lambda name:print(name)#等同于上面
4 calc("alex")
5 结果:alex

内置函数结合filter()使用

 1 ret = filter(lambda n:n>5,range(10))
 2 print(ret)
 3 for line in ret:
 4     print(line)
 5 结果为:
 6 <filter object at 0x00285BD0>
 7 6
 8 7
 9 8
10 9

map() 处理整组数据

1 calc2 = map(lambda n:n**n,range(3))# [n*n for i in rang(3)]  相当于这个列表生成式
2 for i in calc2:
3     print(i)
4 结果:
5 1
6 1
7 4

reduce(function,iterable) 把一组可迭代序列通过function函数操作,元素之间相加或者相乘操

1 import functools
2 res = functools.reduce(lambda x,y:x+y,range(10))
3 #x,y 初始值为0,1 然后x+y=1 赋给x ,则y值为range的值 变为2,再x+y  以此类推
4 print(res)
5 结果:45

float([x]) 把一个浮点类型的字符串转换为浮点类型的数据。

1 >>> float(1)
2 1.0
3 >>> float(-6)
4 -6.0

frozenset([iterable]) 把集合变成一个不可变的集合  冻结方法

1 >>> res =frozenset([1,2,3,3])
2 >>> dir(res) #没有看到可变的方法
3 ['__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'copy', 'difference', 'intersection', 'isdisjoint', 'issubset', 'issuperset', 'symmetric_difference', 'union']
4 >>> res
5 frozenset({1, 2, 3})

getattr(objectname[, default]) 后续面向对象讲解

globals()  返回当前文件所有变量的key—value  是字典格式

1 print(globals()) #返回字典格式
2 
3 {'__name__': '__main__', '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x001F5B30>, '__file__': 'E:/python_3.5/python_homework/day5作业/内置函数模块.py', '__spec__': None, '__builtins__': <module 'builtins' (built-in)>, '__doc__': None, '__cached__': None, '__package__': None}

 hash(object)  未写好

help([object])  显示对象帮助信息

 1 >>> help(ret)
 2 Help on list object:
 3 
 4 class list(object)
 5  |  list() -> new empty list
 6  |  list(iterable) -> new list initialized from iterable's items
 7  |
 8  |  Methods defined here:
 9  |
10  |  __add__(self, value, /)
11  |      Return self+value.
12  |
13  |  __contains__(self, key, /)
14  |      Return key in self.
15  |
16  |  __delitem__(self, key, /)
17  |      Delete self[key].
18  |
19  |  __eq__(self, value, /)
20  |      Return self==value.
21 等等

hex(x)  将十进制转换十六进制

1 >>> hex(123)
2 '0x7b'

id(object) 查看变量的内存地址

1 >>> a = 12
2 >>> id(a)
3 1587841664

input([prompt]) 让用户输入,都是字符串格式

int(x=0)  整数的数据类型

int(xbase=10)

isinstance(objectclassinfo)  判断对象是不是可迭代对象

 1 >>> from  collections import  Iterable
 2 >>> isinstance([],Iterable)  #列表
 3 True
 4 >>> isinstance((),Iterable)  #元组
 5 True
 6 >>> isinstance({},Iterable)  #字典
 7 True
 8 >>> isinstance('abc',Iterable)  #字符串
 9 True
10 >>> isinstance(100,Iterable)   #整型
11 False

issubclass(classclassinfo)  后面说到类的时候再使用

iter(object[, sentinel]) ??

len(s

locals()

def fun():
    locals_var = 333
    print(locals())

print(globals())
fun()

结果:
{'__spec__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x00265B30>, '__doc__': None, '__cached__': None, '__name__': '__main__', '__builtins__': <module 'builtins' (built-in)>, '__file__': 'E:/python_3.5/python_homework/day5作业/内置函数模块.py', '__package__': None, 'fun': <function fun at 0x00303FA8>}
{'locals_var': 333}

max(iterable*[, keydefault])  求出列表的最大值

min(iterable*[, keydefault])  求出列表的最小值

oct(x)  十进制转八进制

>>> oct(8)
'0o10'

class slice(stop)  切片   功能同range一样  这个没什么用

1 >>> d = range(20,30)
2 >>> d[slice(11,35)]
3 range(30, 30)

sorted(iterable[, key][, reverse])  排序 把字典进行排序

dict = {-1:1,2:3,3:9,4:0}
print(sorted(dict)) #只排了key值 输出key的值
print(sorted(dict.items()))  #按key值排序,输出整个字典
print(sorted(dict.items(),key = lambda x:x[1]))
结果:
[-1, 2, 3, 4]
[(-1, 1), (2, 3), (3, 9), (4, 0)]
[(4, 0), (-1, 1), (2, 3), (3, 9)]

sum(iterable[, start])  求和

1 >>> a =[1,2,3]
2 >>> sum(a)
3 6

super([type[, object-or-type]]) 是面向对象里很重要的继承方法 后续会讲解

 type(object)  查看数据类型

vars([object])

zip(*iterables)  拉链的意思,把两个序列一一对应起来

 1 a = [1,2,3,4,5]
 2 b = ['a','b','c','d','e']
 3 print(zip(a,b))
 4 for i in zip(a,b):
 5     print(i)
 6 结果:
 7 <zip object at 0x00544580>
 8 (1, 'a')
 9 (2, 'b')
10 (3, 'c')
11 (4, 'd')
12 (5, 'e')

 __import__(nameglobals=Nonelocals=Nonefromlist=()level=0)  用处大,忘记导入模块名 但只记得 模块的字符串,可以用这个

原文地址:https://www.cnblogs.com/wengxq/p/6979168.html