代码改变世界

2018.3.11学习笔记(lambad函数、内置函数)

2018-03-12 00:24  冒牌权限  阅读(124)  评论(0)    收藏  举报

lambda函数

#!/usr/bin/env python
# -*- coding:utf-8 -*-

#lambda函数
def function(a1,a2):
    return a1 + a2

functionl = lambda a1,a2:a1 + a2#lambda能做简单的函数,精简代码

r = function(5,6)
rl = functionl(7,8)
print(r)
print(rl)

python内置函数(先只学一些简单的内置函数,复杂内置函数后面有深入学习)

#!/usr/bin/env python
# -*- coding:utf-8 -*-

#绝对值abs()
i = abs(-123)
y = abs(123)
print(i)
print(y)

#循环参数,如果每个元素都为真,那么all的返回值为真all()
#循环参数,只要有一个为真,那么any的返回值为真any()
print(all('hehe'))
print(all([0,1]))
print(any([0,1]))

#对象的类中找__repr__,获取其返回值ascii()
print(ascii('sos'),type(ascii('sos')))
class first:
    def __repr__(self):
        return 'sos'
r = first()
print(ascii(r),type(ascii(r)))

# bin()二进制
# oct()八进制
# int()十进制
# hex()十六进制
print(oct(0xf))

#bytes()字节
#bytesarray()直接列表
s = bytes('xxxx',encoding = "gbk")
print(s)

#接收一个数字输出它代指的ascill码字符chr()
#接收一个ascill码字符输出它的数字ord()
print(chr(65))
print(ord('a'))
#随机验证码
import random#生成随机数的模块
yzm = ''
for i in range(8):
    num = random.randrange(1,4)
    if num == 1:
        int_yzm = random.randrange(0,10)
        yzm += str(int_yzm)#把数字转成字符串
    elif num == 2:
        str_yzm = random.randrange(65,91)
        yzm += chr(str_yzm)#把数字转成对应ascii的字符
    else:
        hstr_yzm = random.randrange(97,123)
        yzm += chr(hstr_yzm)#把数字转成对应ascii的字符
print(yzm)

#判断是否可执行callable()
def call_fun():
    print('shit')
call_f = 'shit'
shit = call_fun
print(callable(shit))
print(callable(call_f))

#查看提供的功能dir(),查看详细功能help()
li = list()#list()创建列表这个内置函数就不用说了吧
print(dir(li))
print(help(li))

#得到商和余数divmod()
print(divmod(57,8))

#直接算表达式eval(),比如fandeyibi = '1+2+3+4'这是个字符串,要算又要分割又要转换,烦的一比
fandeyibi = '1+2+3+4+fb'
print(fandeyibi)
print(eval(fandeyibi,{'fb':5}))#如果表达式里边有变量,可以通过字典声明

#执行代码exec()
print(exec("print('fuck')"))#只做执行,没有返回值,所以可以看到输出一个None

#过滤filter(函数,可迭代对象),循环一个可迭代对象,将获取的元素当成参数来执行函数
def filter_fun(a):
    if a > 5:
        return True
    else:
        return False
filter_re = filter(filter_fun,[2,3,4,5,6,7,8])
for i in filter_re:
    print(i)

#map()
map_re = map(lambda a : a + 100 ,[10,11,12,13,14])
for i in map_re:
    print(i)

#获取代码中的所有全局变量globale()局部变量locals()
#转换哈希值hash()
#判断对象是否由某个类创建isinstance(对象,类)
#判断对象是否为某个类的之类insubclass(对象,类)
#查看对象的内存地址memoryview()   似乎可以用来搞事情啊!!!

#创建一个可迭代的对象iter()
#取迭代对象的下一个值next()
iter_p = iter([1,2,3,4,5,6])
print(iter_p)#可以看到这是一个对象
print(next(iter_p))
print(next(iter_p))
print(next(iter_p))
print(next(iter_p))
print(next(iter_p))
print(next(iter_p))
#print(next(iter_p))#超出就报错了