day15

生成器的send方法 了了解

'''
send的工作原理
1.send发生信息给当前停止的yield
2.再去调用__next__()方法,生成器接着往下指向,返回下一个yield值并停止
'''

递归

'''
条件:递归必须有出口   递归回溯递推的条件有一定规律
函数直接或间接调用本身,都称之为递归
回溯:寻找答案的过程
递推:推出答案的过程

'''

匿名函数

'''
匿名函数没有函数名
匿名函数的关键字采用lambda
关键字 lambda 与标识函数功能体 : 之间一定是参数,所以省略()
匿名函数没有函数函数题,只有返回值,所以函数体和返回值的return关键字省略

lambda *args, **kwargs: '返回值'

注:
----参数的使用和有名函数一样,6种形参都支持
----返回值必须明确成一个值,可以单个值对象,也可以为一个容器对象

匿名函数结合内置函数来使用:

'''

max结合匿名工作原理

'''
# 1.max内部会遍历iter,将遍历结果一一传给lambda的参数x
# 2.依据lambda的返回值作为比较条件,得到最大条件下的那个遍历值
# 3.对外返回最大的遍历值
max(iter, lambda x: x)


# min工作原理一样,得到的是最小值

'''

内置函数

map(lambda x: x * 2, [3, 1, 2]) # 将遍历结果映射为任意类型值 [6, 2, 4]

from functools import reduce
reduce(lambda x, y: x * y, [3, 1, 2])  # 6

sorted(iter, fn, reverse)
dic = {
   'owen': (1, 88888),
   'zero': (2, 66666),
   'tom': (3, 77777),
}
res = sorted(dic, key=lambda k: dic[k][1])
print(res)  # ['zero', 'tom', 'owen']

res = sorted(dic, key=lambda k: dic[k][1], reverse=True)
print(res)  # ['owen', 'tom', 'zero']

# 1.与类型相关的
# list() str() ord() chr() bool() int() ...

print(ord('A'))
print(chr(97))

# 2.进制转化
print(bin(10))  # 1010
print(oct(10))  # 12
print(hex(10))  # a

print(0b1111)  # 15
print(0o10)  # 8
print(0x11)  # 17


# 3.常用操作类的
# range() len() iter() next() enumerate() id() type() print() input() open()

# 4.原义字符串
print(r'a\nb')
print(ascii('a\nb'))
print(repr('a\nb'))


# 5.数学相关运算
# abs() sum() max() min() pow() sorted()
print(abs(-1))
print(pow(2, 3))  # 2**3
print(pow(2, 3, 3))  # 2**3%3
posted @ 2019-04-30 22:46  月薪20k  阅读(115)  评论(0)    收藏  举报