文章目录
- 内置函数概览
- abs()
- all()
- any()
- bin()
- bool()
- bytes()
- chr()
- dir()
- divmod()
- eval()
- hash()
- hex(),oct()
- globals(),locals()
- zip()
- max()
- ord()
- pow()
- reversed()
- round()
- set()
- slice()
- sorted()
- sum()
- type()
- vars()
- 还有一些方法在别的文章中已经或者将会提到,欢迎大家阅读本篇博文并探讨一些问题,早起养生局官方博客将尽量不断更新!
内置函数概览
abs | all | any | bin |
bool | bytes | chr | dir |
divmod | eval | hash | bin |
hex | oct | globals | locals |
list | zip | max | ord |
reversed | pow | round | set |
slice | sorted | sum | type |
vars | __import__ |
abs()
最简单的当然是求绝对值函数
print(abs(-1))
输出:1
all()
all()函数对一个可以迭代的对象使用,如果可迭代对象中含有0或者空字符,或None时为假,如果可迭代对象为空,也返回True
print(all([1, 2, '1'])) #True
print(all([1, 2, '1', '']))#False
print(all('')) #True
print(all([])) #True
print(all('','')) # TypeError: all() takes exactly one argument
any()
any()函数和all函数恰恰相反,all函数是有0或空字符即为假,而any函数是有1就为真
print(any([0, ''])) #False
print(any([0, '', 1])) #True
bin()
将十进制转化为二进制,而这里输出的二进制多用0b开头表示
print(bin(10)) # 0b1010
bool()
空,None,0为False
print(bool('')) #False
print(bool(None)) #False
print(bool(0)) #False
bytes()
将字符串进行编码,decode()用来解码,用utf-8编码就用utf-8解码,不能用混,否则会报错
name = '你好'
print(bytes(name, encoding='utf-8')) # b'\xe4\xbd\xa0\xe5\xa5\xbd'
print(bytes(name, encoding='utf-8').decode('utf-8')) #你好
print(bytes(name, encoding='gbk')) #b'\xc4\xe3\xba\xc3'
print(bytes(name, encoding='gbk').decode('gbk')) #你好
chr()
求ASCII码值所对应的字符
print(chr(97)) # a
dir()
展示一个函数的所有可用的方法
print(dir(all))#['__call__', '__class__', '__delattr__'] 有很多,知道啥意思就行,不全展示了
print(dir(dict)) #['__class__', '__contains__', '__delattr__']
divmod()
求一个除式的得数以及余数,所以divmod函数需要传递两个参数
print(divmod(10, 3)) # (3,1)
eval()
eval() 把字符串中的数据结构提取出来,把字符串中的算式算出结果
hash()
hash特性
1.不能反推
2.不管字符串多长,hash值长度一样
3.可以利用于模式识别,加密工作等方面
print(hash('dict1244885484849')) # 得到hash值
#-8110239117547553493
hex(),oct()
简单的不得了
print(hex(12)) # 10进制转16进制 0xc
print(oct(12)) # 10进制转12进制 0o14
globals(),locals()
可以用来查看当前对象的状态,不多见,不常用,了解即可
name = 'hahaha'
print(globals())
print(locals())
#{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000023E33240648>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'F:/python文件/集合和函数/内置函数.py', '__cached__': None, 'name': 'hahaha'}
#{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000023E33240648>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'F:/python文件/集合和函数/内置函数.py', '__cached__': None, 'name': 'hahaha'}
zip()
1.两个集合压缩到一起,然后再通过list()将压缩后的集合专为列表,永远按照顺序压缩,就像拉锁一样,没有匹配的自动丢弃。
print(list(zip(('n', 'b', 'c'), (1, 2, 3)))) #[('n', 1), ('b', 2), ('c', 3)]
print(list(zip(('n', 'b', 'c'), (1, 2, 3, 4)))) #[('n', 1), ('b', 2), ('c', 3)]
print(list(zip(('n', 'b', 'c', 'd'), (1, 2, 3))))# [('n', 1), ('b', 2), ('c', 3)]
2.压缩字典
dic = {'name': 'wang', 'age': 18}
print(list(zip(dic.keys(), dic.values())))
# [('name', 'wang'), ('age', 18)]
max()
都知道是用来求最大值的函数,但是不同情况求得的最大值是不尽相同的,
age_dic = {'age1': 14, 'age3': 20, 'age2': 68}
print(max(age_dic.values())) # 68
print(max(age_dic)) # age3
上面例子可以看出,如果不提出比values的话,这个max直接取了key的最大值,也就是字符串之间比较了一次大小
l = [
(1, 'e'),
(3, 'b'),
(6, 'a'),
(5, 'k'),
]
ll = ['a10', 'b12', 'c10']
print(list(max(l))) # [6,'a']
print(list(max(ll))) #['c','1','0']
这两个例子则是将取得的最大值化成列表的形式
下面来看一下字典之间数据的最大值取法:
dic = {'age1': 18, 'age2': 10}
print(max(dic)) #比较的是key age2
print(max(dic.values())) #18
print(max(zip(dic.values(), dic.keys()))) # (18, 'age1')
还有用到匿名函数的取最大值:
people = [
{'name': 'alex', 'age': 18},
{'name': 'ben', 'age': 10},
{'name': 'case', 'age': 15},
{'name': 'desk', 'age': 12},
]
print(max(people, key = lambda dic: dic['age'])) # {'name': 'alex', 'age': 18}
总结一下:
1.max 函数处理的是可迭代对象,相当于一个for循环函数进行比较
不同类型之间不能进行比较
2.元素之间进行比较,从每个元素的第一个位置依次比较,如果这一个
位置分出大小,则后续位置无需再进行比较,直接得出结果。
ord()
chr()的反函数,求ASCII码专用
print(ord('a')) # 97
pow()
print(pow(10,3)) #1000
# pow 函数如果传入三个参数
print(pow(3,3,2))# 表示3的3次方对2取余 # 1
reversed()
l = [1,2,3,4]
print(reversed(l)) # <list_reverseiterator object at 0x0000023E33303E08>
print(list(reversed(l))) # [4, 3, 2, 1]
round()
四舍五入,后面的这些函数其实看代码就能理解是什么含义
print(round(4.6)) # 5
set()
将字符串形式转化为字典形式
print(set('hello')) # {'e', 'h', 'o', 'l'}
slice()
切片
l = 'hello'
s = slice(3,5)
print(l[s]) # lo
sorted()
排序专用函数
l = [3,2,1,5,7]
print(sorted(l))# [1, 2, 3, 5, 7]
people = [
{'name': 'alex', 'age': 18},
{'name': 'ben', 'age': 10},
{'name': 'case', 'age': 15},
{'name': 'desk', 'age': 12},
]
print(sorted(people, key = lambda dic:dic['age']))# [{'name': 'ben', 'age': 10}, {'name': 'desk', 'age': 12}, {'name': 'case', 'age': 15}, {'name': 'alex', 'age': 18}]
name_dic={
'alex':20,
'well':10,
'ben':26,
}
print(sorted(name_dic)) # ['alex', 'ben', 'well']
print(sorted(name_dic, key = lambda key:name_dic[key])) # ['well', 'alex', 'ben']
print(sorted(zip(name_dic.values(),name_dic.keys()))) # [(10, 'well'), (20, 'alex'), (26, 'ben')]
sum()
求和,有range方法和直接求和方法
l = [1,2,3,4]
print(sum(l)) # 10
print(sum(range(5))) # 10
type()
得到对象的数据类型
print(type(1)) # <class 'int'>
msg = '123'
if type(msg) is str:
msg = int(msg)
res = msg + 1
print(res) # 124
vars()
def test():
msg = '12356'
print(locals()) # {'msg': '12356'}
print(vars()) # {'msg': '12356'}
test()