abs() #求绝对值
>>> abs(-19)
19
all() #里面的元素全部为真才是真
>>> all([1,2,3,'',2]) False
any #只要有一个元素为真就为真
>>> any([1,'']) True
ascii(对象) 去制定对象的类中找__repr__,获取其返回值
li = list() print(ascii(li)) #在python2里没有 [] #结果
bool() #判断真假,把一个对象转换成布尔值
bool(l)
True
bytes #转换成byt型
print(bytes('ss',encoding='utf-8')) b'ss'
bin() #十进制转换二进制
>>> bin(19) '0b10011'
oct() #十进制转8进制
>>> oct(2) '02'
int() #转换成十进制
i = int('11',base=8) #base=几进制 表示从什么进制转换成10进制 print(i) 9 >>>
hex() #十进制转16进制
>>> hex(23) '0x17'
callable() #判断对象是否可调用,python2里无此方法
def func(): pass print(callable(func)) True
chr() #把数字转换成ASCII
#小例子 生成随机验证码 import random temp="" for i in range(6): num = random.randrange(0,4) if num ==3 or num ==1: red2 = random.randrange(0,10) temp = temp + str(red2) else: rad1 =random.randrange(65,91) c1 = chr(rad1) temp = temp + c1 print(temp) 6ITF4E
ord() #把ASCII字符转换成数字
>>> ord('b') 98
dir() #查看对象的类型有多少可用方法
>>> li=list() >>> dir(li) ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delsli ce__', '__doc__', '__eq__', ...省略 '__sizeof__', '__str__', '__subclasshook__', 'a ppend', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort' ]
exec() #使字符串里的for循环能进行循环等操作
>>> exec('for i in range(5):print(i)') 0 1 2 3 4
eval() #转换字符串成原本含义
>>> a='1+2+3' >>> eval(a) 6
divmod(10,3) #用于求分页
>>> total_count = 73 >>> per_count=23 >>> res = divmod(total_count,per_count) >>> if res[1] > 0: page_count =res[0] + 1 >>> print(page_count) 4
enumerate() #生成带序列号的迭代器
dic = {'name':'egon','age':1} for i in enumerate(dic): print(i) (0, 'age') (1, 'name')
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
def f1(x): if x>22: return True else: return False ret = filter(f1,[11,22,33,44]) for i in ret: print(i) ret = filter(lambda x: x>22,[11,22,33,44]) def f1(x): if x % 2 == 1: return x +100 else:return x ret = map(f1,[1,2,3,4,5]) ret = map(lambda x: x+ 100 if x % 2 == 1 else x,[1,2,3,4,5]) for i in ret: print(i) 33 44 101 2 103 4 105
frizenset() #不可变集合
s = frozenset({1,2,3}) print(type(s)) <class 'frozenset'>
globals() #查看当前全局作用域的变量有哪些
noglobals() #查看当前全局作用域的变量有哪些
###判断某个对象判断某个对象是否是某个类创建的
>>> print(type(1)) <type 'int'> >>> print(isinstance(1,int)) #判断类型最好用这个方法 True
iter() #将对象变成可迭代对象
>>> a=iter([1,2,3])
max() #求最大值
print(max(i for i in range(10)))) 9
pow() #幂运算,加入第三个参数可求余
print(pow(3,2,2)) 1
reversed() #反转
a=reversed([33,22,44,43,11]) for i in a: print(i) 11 43 44 22 33
round() #保留几位,在四舍五入
print(round(3.3456,3)) 3.346
slice() 函数实现切片对象,主要用在切片操作函数里的参数传递。
l = ['a1','a2','a3','a4','a5','a6','a7','a8'] x=slice(2,5,2) print(l[x]) ['a3', 'a5']
sum() 方法对序列进行求和计算。
print(sum(i for i in range(101))) print(sum([1,2,3,4])) 5050 10
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
s='hello' l=[1,2,3,4,5,6] for i in zip(s,l): print(i) ('e', 2) ('l', 3) ('l', 4) ('o', 5)
reduce() 函数会对参数序列中元素进行累积。函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给reduce中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
在python3里需要导入 from functools import reduce res=0 for i in range(100): res+=1 print(reduce(lambda x,y:x+y,range(100)) 5050
filter() #过滤
names=['alex_sb','yuanhao_sb','wupeiqi_sb','egon'] print(list(filter(lambda name:name.endswith('_sb'),names))) ['alex_sb', 'yuanhao_sb', 'wupeiqi_sb']
sorted #排序
l=[1,2,4,9,-1] print(sorted(l)) #从小到大 print(sorted(l,reverse=True)) #从大到小 [-1, 1, 2, 4, 9] [9, 4, 2, 1, -1]