#函数
def f1(a,b):
retrun a+b
#lambda方式,形参(a,b):返回值(a+b)
f2=lambda a,b : a+b
在一些比较简单的过程计算就可以用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来转换了