python内置方法总结

时间:2024-04-24 08:06:18

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)
''

int() #转换成十进制

i = int('',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]