Day04 内置函数 装饰器

一、内置函数

1.数学相关:

abs()
返回一个值的绝对值

abs(-1)

1

complex()
创建一个复数

divmod()
分别取商和余数

divmod(8,2)

(4,0)

pow()
幂运算

pow(2,3)

8

round()
四舍五入

max()
返回最大值

max(22,1,33,4)

33

min()
返回最小值

min(22,1,33,4)

1

sum()
求和

sum([22,1,33,4])

60

all()
所有的为真则返回真

any()
有一个为真则返回真

2.功能相关:

callable()
判断函数是否可用,如果可用返回True,不可用返回False

def func(args):
    return args

callable(func)

True

funcc=1
callable(funcc) 

False

isinstance()
判断对象是否是指定类的实例,是返回True,否则返回false

li = [11,22,]
isinstance(li,list)

True

isinstance(li,tuple)

False

li = (11,22)
isinstance(li,tuple)

True

range()
生成一个序列

range(5)

0到4的序列

range(1,5)

1到4的序列

range(1,5,2)

1到4间隔1的序列

eval()
执行表达式,并且获取结果

eval("4+8*2")

20

exec()
执行python代码

exec("print(\"Hello,World!\")")

Hello,World!

format()
格式化输出

hash()

返回对象的哈希值

help()
返回对象的有关可用的方法

id()
返回对象的内存id

input()
等待用户的输入

globals()
返回一个字典,当前全局变量的键值对

locals()
返回一个字典,当前局部变量的键值对

print()
打印

reversed()
反转对象

li = [11,33,1,100]
re=reversed(li)
print(list(re))

[100, 1, 33, 11]

sorted()
排序

li = [11,33,1,100]
re=sorted(li)
print(re)

[1, 11, 33, 100]

re=sorted(li,True) 
print(re)

[100, 33, 11, 1]

dir()
默认打印当前模块的所有属性,如果传一个对象参数则打印当前对象的属性
dir()只打印属性(属性,属性......)

vars()
默认打印当前模块的所有属性,如果传一个对象参数则打印当前对象的属性
vars()则打印属性与属性的值(属性:属性值......)

3.转换相关:

int()
将一个字符转换为int类型

int('18',16)

十六进制的字符串18转换成int类型的10进制数
24

float()
将一个字符转换为float类型

bin()
10进制数值转换成2进制

bin(16)

0b10000

oct()
10进制数值转换成8进制

oct(16)

0o20

hex()
10进制数值转换成16进制

hex(16) 

0x10

chr()
返回所对应的ascii字符

chr(65)

'A'

ord()
返回在ascii表中所对应的十进制数

ord('A')

65

bool()
返回布尔类型

bool('abc')

True
0,None,空字符串,空列表,空字典,空集合的bool值都是False

ascii()
类似python
2中的repr(),将一个对象变换为可打印的格式,遇到非ascii字符时将使用\x,\u或者\U来表示

str()
转换字符串

bytes("中国",encoding='utf-8')

b'\xe4\xb8\xad\xe5\x9b\xbd'

bytes()
转换字节

str(b'\xe4\xb8\xad\xe5\x9b\xbd',encoding='utf-8')

'中国'

list()
创建或转换一个列表

tuple()
创建或转换一个元组

4.序列相关:

len()
序列长度

filter()
过滤序列,将过滤条件下为True的元素过滤出来

li = [11,33,22,1,100]
result=filter(lambda a:a>30,li)
print(list(result))

[33,100]

map()
遍历序列,对每个元素做相同操作

li = [11,33,22,1,100]
result=map(lambda a:a+100,li)
print(list(result))

[111, 133, 122, 101, 200]

zip()

x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]
print(list(zip(x,y,z)))

[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

x = [1, 2, 3]
y = [4, 5]
z = [7, 8, 9]

print(list(zip(x,y,z)))

[(1, 4, 7), (2, 5, 8)]

二、装饰器

装饰器之单层装饰器

def outer(func):
    def inner():
        print('Before')
        func()
        print('After')
    return inner


@outer
def f():
    print('Hello,World!')

f()

装饰器
@ + 装饰函数名
功能:
1.自动执行outer()函数并且将其下面的函数名f作为参数传递
2.将outer()函数的返回值重新赋值给f

函数返回值:

def outer(func):
    def inner():
        print('Before')
        re = func()
        print('After')
        return re
    return inner


@outer
def f():
    print('Hello,World!')
    return "Say"

result = f()
print('返回值:',result)

带参数:

di = {'name':'alex'}

def outer(func):
    def inner(*args,**kwargs):
        if di['name'] == 'alex':
            print('Before')
            re = func(*args)
            print('After')
            return re
        else:
            print()
    return inner


@outer
def f(arg):
    print('{name}: Hello,World!'.format(name=arg))
    return "Say"

result = f([11,22,33])
print('返回值:',result)
posted @ 2016-06-01 15:03  摸个鱼儿  阅读(132)  评论(0编辑  收藏  举报