h3

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)
lambda表达式

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 一样,但是其有一个自定义别名
python内置函数

 

posted @ 2017-05-22 23:57  码上平天下  阅读(120)  评论(0)    收藏  举报