Python学习---内置函数的学习

时间:2021-05-08 02:48:57

内置函数

【Py3.5官方文档】https://docs.python.org/3.5/library/functions.html#abs

Built-in Functions

abs()

dict()

help()

min()

setattr()

all()

dir()

hex()

next()

slice()

any()

divmod()

id()

object()

sorted()

ascii()

enumerate()

input()

oct()

staticmethod()

bin()

eval()

int()

open()

str()

bool()

exec()

isinstance()

ord()

sum()

bytearray()

filter()

issubclass()

pow()

super()

bytes()

float()

iter()

print()

tuple()

callable()

format()

len()

property()

type()

chr()

frozenset()

list()

range()

vars()

classmethod()

getattr()

locals()

repr()

zip()

compile()

globals()

map()

reversed()

__import__()

complex()

hasattr()

max()

round()

delattr()

hash()

memoryview()

set()

重要函数

filter(function, sequence): 对sequence中的item依次执行function(item),将执行结果为True的item做成一个filter object的迭代器返回。可以看作是过滤函数。【不更改原来的值,只有一个过滤的效果】

def fun1(s):
if s != 'a':
return s
ret = filter(fun1, str)
print(ret) # ret是一个迭代器对象 <filter object at 0x0000000000A4C518>
print(list(ret)) # ['b', 'c', 'd']

eval:  计算器功能【在引号内使用】和直接返回数据原本的类型

print(eval('1+2+3+4+5+6+7+8+9+10'))    # 55

map(function, sequence) : 对sequence中的item依次执行function(item),将执行结果组成一个map迭代器返回【更改元素值】

str = ['m', 'g', 'f', 'w']
def fun2(s):
return s + "ood"
ret = map(fun2, str)
print(ret) # map object的迭代器
print(list(ret)) # ['mood', 'good', 'food', 'wood']

注意: map也支持多个sequence,这就要求function也支持相应数量的参数输入:

def add(x, y):
return x+y
print (list(map(add, range(10), range(10))))##[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

map和filter的区别:

def f(s):
return s + 'ood'
li = ['f', 'm', 'g', 'h']
print(list(map(f, li))) # ['food', 'mood', 'good', 'hood'],拼凑后重新输出
print(list(filter(f, li))) # ['f', 'm', 'g', 'h'], 输出原来的值

reduce(function, sequence, starting_value): 对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用.   【直接返回结果,区别map和filter, 阶乘很方便】

from functools import reduce
def fac(x,y):
return x * y
print(reduce(fac, range(1, 5))) # 24
print(reduce(fac, range(1, 5), 10)) # 240
getattr(obj, name, default)函数:从obj对象中取出来某个属性或者方法,没有则打印default值
class Foo:
def __init__(self, name, age):
self.name = name
self.age = age obj = Foo('ftl', 23)
print(obj.name)
b = 'name'
print('obj.__dict__[b]:',obj.__dict__[b]) # 通过字典取值
print("getattr(obj, 'name'):",getattr(obj, 'name')) # 通过内置函数getattr取出值
setattr(obj, 'school', 'xupt')
print(hasattr(obj, 'school'))
print(delattr(obj, 'school')) # 其他的内置方法,通过字符串的形式操作对象的成员