前言
为何我们能直接调用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
(source, filename, mode, flags=0, dont_inherit=False, optimize=-1) 用于底层,将代码进行编译 基本用不到
11)delattr
(object, name) 面向对象再讲解
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']
13)divmod
(a, b)
1 >>> divmod(5,2) 2 (2, 1)
14)enumerate
(iterable, start=0)
15)eval
(expression, globals=None, locals=None) 把字符串转字典 只能把简单的字符串转成字典 稍微复杂语句 比如if 的条件语句用exec
16)exec
(object[, globals[, locals]]) 把字符串转字典 可以复杂语句 比如if 的条件语句 等
17)filter
(function, iterable) 过滤出一组数据
插曲:内置函数 只处理简单运算,复杂的处理不了,这种内置函数单独使用的情况比较少 一般是结合使用的
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
(object, name[, 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
(x, base=10)
isinstance
(object, classinfo) 判断对象是不是可迭代对象
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
(class, classinfo) 后面说到类的时候再使用
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, *[, key, default]) 求出列表的最大值
min(iterable, *[, key, default]) 求出列表的最小值
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__
(name, globals=None, locals=None, fromlist=(), level=0) 用处大,忘记导入模块名 但只记得 模块的字符串,可以用这个