Python-开发之路-内建函数

内建函数表
如上图,本次将挑python的内建函数中常用的简要演示一下
为了方便看,将同类方法的函数连在一起演示;


abs():取绝对值
>>> print(abs(-2345))
2345

/# 0,[],”“,(),{},None 这些字符python中会当作布尔值Flase
all():都为真,才为真
#all不接受多个字符串作为参数,只能将这些参数放到一个列表(或元祖等)中
>>> print(all(0,True,1,['qwe','wer',],'qwe'))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: all() takes exactly one argument (5 given)
#因为0被python认为是False,所以整体为False
>>> print(all(['qwe','wer',True,0,]))
False
#改成1后就变成True了,
>>> print(all(['qwe','wer',True,1,]))
True
any():任一为真,则为真
>>> print(any([None,0,[],(),]))
False
>>> print(any([None,0,[],(),1,]))
True

数字进制转换:bin(),oct(),int(),hex(),
#初始化变量
>>> ret=520
#十进制转为二进制
>>> print(bin(ret))
0b1000001000
#十进制转八进制
>>> print(oct(ret))
0o1010
#十进制转为十进制
>>> print(int(ret))
520
#十进制转十六进制
>>> print(hex(ret))
0x208


bool():判断布尔值
>>> print(bool(0))
False
>>> print(bool(1))
True
>>> print(bool(None))
False
>>> print(bool(""))
False
>>> print(bool("qwertw"))
True

float():将整型数字转为浮点数型
round(float(),num):将浮点型数字,四舍五入到小数点后指定位数(num)
>>> reg=520
>>> float(reg)
520.0
>>> ret = reg/1314
>>> round(ret,4)
0.3957
>>> print(ret)
0.395738203957382

bytes():将字符串转换为字节,可以用来转换字符集【重要】
>>> name = "云端漫步"                                                                                                                                                                                             
>>> ret = bytes(name,encoding='gbk')
>>> reg = bytes(name,encoding='utf-8')
>>> print(ret,reg)
b'\xd4\xc6\xb6\xcb\xc2\xfe\xb2\xbd' b'\xe4\xba\x91\xe7\xab\xaf\xe6\xbc\xab\xe6\xad\xa5'

ord():查找字符在ASCII表中对应的数值
chr():反向查找数值对应ASCII表代表的字符
>>> asg = "B"
>>> ord(asg)
66
>>> chr(ord(asg))
'B'

可以借此实现随机验证码的功能,详细可点此参考


dir(),help():Python中获取帮助信息
>>> dir(dir)
['__call__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__
new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__text_signature__']
>>> help(dir)
Help on built-in function dir in module builtins:

dir(...)
    dir([object]) -> list of strings
    ...

divmod():做除法,并将商和余数以元祖的形势返回
>>> a = 1314
>>> b = 520
>>> divmod(a,b)
(2, 274)

借此可以实现一个小案例:(共234条记录,每页显示25条,共需要几页)

total = 234
per = 25
result = divmod(total,per)
if result[1] == 0:
    ret = result[0]
else:
    ret = result[1]
print(ret)

enumerate(): 迭代器,以list的形势返回索引和值
#创建对象来表现
a = [ 11,22,4,33,4,[1,2,3,4,]]
ret = enumerate(a)
print(ret)
print(list(ret))

    > <enumerate object at 0x0000000000D91480>
    > [(0, 11), (1, 22), (2, 4), (3, 33), (4, 4), (5, [1, 2, 3, 4])]

#或者用for循环迭代器来表现
for index,value in enumerate(a):
    print(index,value)
    >0 11
    >1 22
    >2 4
    >3 33
    >4 4
    >5 [1, 2, 3, 4]

eval(): 执行表达式,拿到结果,并有返回值

ps:eval() arg 1 must be a string, bytes or code object,eval()对参数的类型要去

reg = '1+(2+8)*3'
ret = eval(reg)
print(ret)
compile(): 将字符串转义成python code
reg = '1+(2+8)*3'
ret = compile(reg,'<string>','exec')
print(type(ret),ret)
<class 'code'> <code object <module> at 0x00000000006B28A0, file "<string>", line 1>
exec(): 执行python code,但是没有返回值
reg = "print(eval('1+(2+8)*3'))"
ret = exec(reg)
print(ret)

总结:eval(),相当于将 compile() 和exec()两个函数的方法封装在了一起,compile负责将字符串转义成python code,exec将转义的code进行执行,compile更像是在exec外面加了一层装饰器,并将结合在一起的函数体赋给eval


【重要】filter(): 对可迭代对象进行筛选
ret = [1,2,4,5,5,6,66,78,324,7,4,2,]
reg = filter(lambda a:a>6,ret)

print(reg,type(reg))
print(list(reg))

注意输出,如果直接打印返回的对象reg,则会给出内存地址,再来看看类型,class‘filter’,因此要得到结果就得使用可迭代对象的类 再次创建对象’list(reg)’

filter object at 0x0000000000D29E10> <class 'filter'>
[66, 78, 324, 7]
【重要】map(): 对可迭代对象进行操作
ret = [1,2,4,5,5,6,66,78,324,7,4,2,]
pjt = map(lambda b:print(b),ret)

print(pjt,type(pjt))
print(list(pjt))

输出,类似filter的结果,可自行体悟

<map object at 0x0000000000D29EB8> <class 'map'>
1
2
4
5
5
6
66
78
324
7
4
2
[None, None, None, None, None, None, None, None, None, None, None, None]

id():获取表达式所在内存地址
ret = [1,2,4,5,5,6,66,78,324,7,4,2,]
reg = id(ret)
print(reg)
D:\python\python.exe D:/python/Project-13/tmp/内建.py
11665992

isinstance() :判断是否为某个类的对象,返回True & Flase
age = 25
print(isinstance(age,str))
print(isinstance(age,int))

len(): 返回字符长度

ps:注意是字符长度,不是字节长度,一个字母,一个汉字都被分为是一个字符

#int整数类,没有len方法,因此无法调用,只能以str类创建对象
age = '31'
name = '詹姆斯'
fav = 'MVP'
dig = [31,11,12]
print(len(age),len(name),len(fav),len(dig))
D:\python\python.exe D:/python/Project-13/tmp/内建.py
2 3 3 3

global() 返回当前代码环境的全局变量,locals() 返回当前代码环境的局部变量, 返回的是字典类型
name = '詹姆斯'

def newinfo():
    fav = '总冠军'
    age = 31
    print('15-16赛季,联盟最强')
    print(globals())
    print(locals())

newinfo()
15-16赛季,联盟最强
{'newinfo': <function newinfo at 0x0000000000D4AEA0>, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x00000000009C7860>, '__spec__': None, 'name': '詹姆斯', '__file__': 'D:/python/Project-13/tmp/内建.py', '__package__': None, '__name__': '__main__', '__builtins__': <module 'builtins' (built-in)>, '__cached__': None, '__doc__': None}
{'fav': '总冠军', 'age': 31}

max() min() sum() :取最大值、最小值、求和
ret = [1,2,4,5,5,6,66,78,324,7,4,2,]
print(max(ret),min(ret),sum(ret))
D:\python\python.exe D:/python/Project-13/tmp/内建.py
324 1 504

pow(x,y,z): 两个参数时表示x的y次方 ;三个参数时表示 x**y %z,在为取余
reg = pow(2,10)
ret = pow(2,10,10)
print(reg,ret)
D:\python\python.exe D:/python/Project-13/tmp/内建.py
1024 4

zip() :接受多个同类型的数据类型,然后‘列’转‘行’,返回一个元组tuple
a = [23,12,32,34]
b = [23,43,127,]
c = [654,2,]
reg = zip(a,b,c)
print(reg,type(reg))
print(list(reg))

从输出中不难看出,以最短的一个序列为准,只匹配最短序列数量的元组元素

D:\python\python.exe D:/python/Project-13/tmp/内建.py
<zip object at 0x0000000000D230C8> <class 'zip'>
[(23, 23, 654), (12, 43, 2)]
最后介绍一下3.5和2.7的一下区别
# python3.5  可按照字符来遍历,也可按照字节
for i in "詹姆斯":
    print(i)
a = "詹姆斯"
print(a[:3], a[3:6], a[6:9])

# python2.7 #只能按照字节
a = "詹姆斯"
print a[:3], a[3:6], a[6:9]
D:\python\python.exe D:/python/Project-13/tmp/内建.py
詹
姆
斯
詹姆斯  

詹姆斯 
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值