Python随手笔记(十一)--------那些值得你掌握的内置函数

内置函数概览

absallanybin
boolbyteschr 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() 
还有一些方法在别的文章中已经或者将会提到,欢迎大家阅读本篇博文并探讨一些问题,早起养生局官方博客将尽量不断更新!

下面这些也是很好的博客:
https://me.csdn.net/weixin_46249197
https://me.csdn.net/weixin_46250218

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值