lambda 表达式+python内置函数

时间:2022-04-06 18:32:46

#函数

def f1(a,b):

      retrun  a+b

 

 

#lambda方式,形参(a,b):返回值(a+b)

f2=lambda a,b : a+b

在一些比较简单的过程计算就可以用lambda

 

python内置函数

lambda 表达式+python内置函数

 

abc 获取绝对值

all 循环对象,都为真就返回真否则为假

>>> li
[1, 2, 3]
>>> all(li)
True

#0为假

>>> li=[0,1,2,3]
>>> all(li)
False

 

bool 真假判断,把一个对象转成bool值

any 和all差不多只要有个为真就为真

ascii(对象),对象类中找__repr__,获取返回值。对象如果是列表那么就去list方法中找,对象是字典就去dict中找(python2.7没有这个方法)

class abc:

      def __repr__:

               return "nihao"

f1=abc()

ret=ascii(f1)

print ret

nihao

 

 

#bin  二进制   0b开头

#oct  八进制    0o开头

#int 十进制 

#hex 十六进制 0xe开头

 

二进制转换,下面方法也可用到其它进制转换上

>>> int(0b1111)#0b开头python默认就是二进制,这里就不需要指定base参数,
15

>>> int('1111',base=2)#不是0b开头的话这里需要指定一下类型,这里为2进制
15

 

#bytes  字节

#bytesarray   字节列表

 

 

 

chr()#将数字转成字符(ascill),ascill占用一个字节8位,0-256

ord()#将字符转成数字(ascill)

 

 

随机验证码:

import  random

yz=''
for i in range(6):
if i ==1 or i ==5:
num=random.randrange(0,10)
yz=str(num)+yz
else:
num=random.randrange(65,91)
yz=chr(num)+yz
print(yz)



结果:
0RBH0Q

 

 

callable 查看方法是否可以执行,返回布尔值

>>> def run():print "11"
>>> a='111'
>>> callable(a)
False
>>> callable(run)
True

 

compile 编译,这个函数可以把字符串翻译成python可执行的代码。如 :"def aa():print1 "这个就是一个字符串,通过这个函数就可以转成函数用了

 

 

divmod  这个也很有用举个例子网站分页,1000条数据,每页展示50条,需要多少页?

>>> divmod(1000,50)
(20, 0)     #20页就够用了

 

eval #将表达式解释成python代码  例如:eval("1+2"),这样就可以直接计算。eval带返回值

exec 将字符串翻译成python代码,和eval的区别在于这个没有返回值,"for i in range(10):print i"   eval是没有办法执行这个的

 

#循环可以迭代的对象,返回为true就是筛选通过

filter(函数,可迭代的对象)

def f1(x):
if x>22:
return True
else:return False
ret=filter(f1,[11,100,5,60])
print(ret)


返回
[100, 60]

map(函数,可迭代的对象),将2个数组的值加起来

ret=map(lambda x,y:x+y,[11,100,5,60],[22,66,15,15])
print(ret)

 

globals #获取所有全局变量

locals#获取所有局部变量

 

 

hash#将对象进行hash运行算,这样就可以用一个带索引的值可以在以后的查找中快速定位,ye可以将一个很长的串减小空间

>>> f1="aaaaaaasdaxzczxvcxvzxvc00..asd"
>>> hash(f1)
-936964852

 

isinstance #判断某个对象是否是某个类创建的

>>> li=[1,2,3]
>>> r=isinstance(li,list)
>>> print r
True

 

issubclass#盘对某个类是不是子类

 

 

next#取迭代器下一个值

iter#迭代器,生成一个可以迭代的对象,当值取完后再next将报异常,一般和yield生成器配合使用。只有用的时候才会运行

>>> obj=iter(range(5))
>>> next(obj)
0
>>> next(obj)
1
>>> next(obj)
2

 

 

max#取出最大值

>>> max([11,22,33])
33

min#回去最小值

>>> min([11,22,33])
11

 

 

pow#求指数,2的10次方

>>> pow(2,10)
1024

 

 

repr#这个和ascii一样返回类的__repr__方法,区别在于ascii遇到中文会进行处理

 

reversed#将值反转

 

round#四舍五入

 

slice#切片,一般不会用到。可以切片的对象直接就可以处理

 

sum#求和

 

zip#将2个可迭代的对象进行组合,如果2个可迭代的对象个数不一致,那将被删除

>>> a=[1,2,3,4,5]
>>> b=['a','b','c','d','e']
>>> zip(a,b)
[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e')]

 

__import__ #跟import 作用一样

a=__import__(getpass)

a.xxxxx  #有点类似于别名了

 

sorted#排序

列表中也有个sort排序,实际上你用sorted(li)排序的时候也是调用list下的sort方法

>>> li=[12,1,5,9,2]
>>> li.sort()
>>> li
[1, 2, 5, 9, 12]

如果排序中包含汉子或者字符,字母转成ascii码,然后根据数字对比,汉子也会转成'xas/sd/'这样编码,这样也可以用ascii来转换了