php程序员学习python3学习第七天
1,lambda 表达式 功能类似于定义简单的方法
#-*- coding:utf-8 -*- #lambda表达式 简写的方法定义 def f1(): return 123 f2 = lambda : 123 #此lambda表达式等同于定义的f1方法 r = f1() n = f2() print(r) print(n) #接收参数的lambda def f3(a1,a2): return a1+a2 f4 = lambda a1,a2:a1+a2 r1 = f3(1,2) n1 = f4(1,2) print(r1,n1)
2,python3 内置函数
# -*- coding: utf-8 -*- # python3 内置函数 import random #1,求绝对值 abs() print(abs(-1)) #2,传递一个可迭代的参数,若每个元素都为真,那么all的返回值为真 li = [2,3,4,0] #包含假的有 0,None,空字符串(有空格也为真),空列表,空元组,空字典 print(all(li)) #有0此时为假 #3,any 只要有一个为真即为真 print(any(li)) #True #4,ascii 传递一个对象,去对象类中找__repr__方法,执行获取返回值 较少用 class Foo: def __repr__(self): return "hello" obj = Foo() r = ascii(obj) print(r) #5, bin() 二进制 print(bin(2)) #6,oct() 八进制 print(oct(8)) #7,int() 十进制 print(int(2)) #8,hex() 十六进制 print(hex(10)) #把其他进制的转换为10进制,int中携带参数即可 print(int(bin(2),base=2)) print(int(oct(8),base=8)) print(int(hex(10),base=16)) #其他进制转换,先转成10进制,再调用方法转为其他 #9,bool 判断真假,其实本质上是把一个对象转换位布尔值 #10,bytes 字节 将字符串转换为字节 print(bytes("af22re",encoding='utf-8')) str1 = "af22re" print(str1.encode(encoding="utf-8")) #转换为字节 print(str1.encode(encoding="utf-8").decode(encoding="utf-8")) #转为字符串 #11,bytearray 字节列表,其中每一个元素为字节 #11,chr() 接收一个数组,找到对应的ascii值 print(chr(66)) #12,ord() 接收字一个字符,转换为ascii值 print(ord('$')) ''' 生成一个验证码 ''' #生成一个随机数,引入random模块 # i = random.randrange(65,91) #此表示生成的数字大于等于65,小于91 code = '' for n in range(4): num = random.randrange(0,4) if num == 1 or num == 3: rand2 = random.randrange(0,10) code = code + str(rand2) else: i = random.randrange(65,91) c = chr(i) code += c print(code) #13, callable() 一个对象是否可执行 def test(): return 'aaa' print(callable(test)) #True print(callable(list())) #False #14,compile() 例如写的这个文件,python会先将此文件读成一个大的字符串,然后经过compile进行编译 #15,dir() 查看str,list等对象中提供什么方法 lis = [] print(dir(lis)) #16,divmod() 得到一个元组,第一个值是商,第二个值是余数 用此来做分页 print(10/3) print(divmod(10,3)) #17,eval() 将字符串转换成表达式 sums = 1 + 3 str_sum = "1 + 3" print(sums) print(eval(str_sum)) #eval() 还可以携带参数用来表示表达式中的变量 b = eval("a+6",{"a":99}) print(b) #18,exec() 处理一个简单表达式的时候使用eval来来进行,处理复杂的时候使用exec,将字符串转为程序执行 ex_str = "for i in range(1,10):print(i)" exec(ex_str) ''' compile 用来编译代码 eval 是有返回值的 exec 没有返回值,只是用来执行代码 ''' #19,fiter() 过滤参数 接收两个参数,第一个是函数,第二个是可以迭代的对象 def fit1(a): if a >22: return True else: return False ret = filter(fit1, [11,22,33,44]) for val in ret: print(val) #使用lambda ret1 = filter(lambda x,:x > 22, [11,22,33,44]) for i in ret1: print(i) #20,map() map(函数,可以迭代的对象) def map1(a): return a + 100 res = map(map1, [1,2,3,4]) for i in res: print(i) #21,frozenset() 冻结set集合,不可以更新 #22,globals() 获取所有的全局变量 locals() 获取所有的局部变量 print(globals()) #23,hash() 计算对应的hash值,用于字典的key的保存上 可以优化内存 #24,iter() 创建一个可以迭代的对象,内存中先没有其值,在循环时一次得到,range()函数就是如此 #此为迭代器,yield 为生成器 obj = iter([11,22,33]) print(obj) #<list_iterator object at 0x000000000113B128> # for i in obj: # print(i)#11 22 33 #也可以使用next()一个一个取出 print(next(obj)) #11 print(next(obj)) #22 #25,max() 去列表最大值 liss = [11,22,33] print(max(liss)) #26,min() 取最小值 print(min(liss)) #27,pow() 求指数 print(pow(2,3)) #28,round() 四舍五入 print(round(3.567)) #4 #29,sum() 求列表元素和 print(sum([1,2,3])) #30,__import__ 也是模块导入,但是可以为模块做一个别名 r = __import__(random) #与import random 一样,但是其有一个自定义别名
-------------------------立码平天下------------------------------

浙公网安备 33010602011771号