python 06.04

1.匿名函数

有名函数,就是有名字的函数;

匿名函数,没有函数名的函数,通常使用lambda关键字来定义。

print((lambda x,y:x**y)(2,5))

匿名函数也能调用,但是调用需要注意只能使用一次,匿名函数一般不单独使用,而是与max(),min(), map(), sorted(), filter() 这些内置函数一起使用。

salary_dict = {
    'nick': 3000,
    'jason': 100000,
    'tank': 5000,
    'sean': 2000,
    'tttt': 4000,
    'egon': 10000000,
}
salary_max = max(salary_dict,key = lambda name:salary_dict[name])
print(salary_max)
salary_min = min(salary_dict,key = lambda name:salary_dict[name])
print(salary_min)
salary_sorted = sorted(salary_dict,key = lambda name:salary_dict[name])
print((salary_sorted))
name_list = ['jason', 'tank', 'sean']
res = map(lambda name :f'{name} dsb',name_list) #映射
print(list(res))
res1 = ['jason dsb','tank dsb','sean dsb','nick']
res2 = filter(lambda x:not x.endswith('dsb'),res1) #过滤
print(list(res2))

2.内置函数

print(bytes('中文',encoding='utf8'))
print(bytes('中文',encoding='gb2312'))
print(ord('a'))
print(chr(97))
print(divmod(10,3))
l=['a','b','c']
for i in enumerate(l): #带有索引的迭代,获取索引和值
    print(i)
lis = '[1,2,3]'
lis_eval = eval(lis) #把字符串翻译成数据类型
print(lis_eval)
print(hash(1)) #可哈希不可变,不可哈希可变
print(abs(-100))
print(all([1, 2, 3, 0]))
print(any([0,1]))
print(bin(10))
print(oct(10))
print(hex(10))
frozenset #不可更改集合
s =frozenset({1,2,3})
print(s)
#globals()/loacals()
print(pow(3,2,3)) # 3**2%3
print(round(3.5)) #方法返回浮点数x的四舍五入值
print(sum([1,2,3,4]))
#slice()#函数实现切片对象,主要用在切片操作函数里的参数传递。
#__import__() 通过字符串导入模块
import time
time = __import__('time')
time.sleep(2)
print(dir(time))# 把模块的所有方法读出来

3.面向过程编程

面向过程编程,核心是编程二字,过程指的是解决问题的步骤,按照一定的顺序,顺序中的每一步都可以看成函数,这个函数的输入是上一个函数的输出,这就叫面向过程编程。

优点:
1. 逻辑清晰,简单明了
2. 每个函数可以独立的写出来
缺点:
1. 相互之间会有一定的联系,上一步中断了,下一步也就中断了
2. 有一个功能改变了,其他的功能也要改变
3. 可扩展性差
def enter_username_pwd():
    username = input('请输入你的名字>>>').strip()
    pwd = input('请输入你的密码>>>').strip()
    return username,pwd

def save_file_a(filename,content):
    with open(filename,'a',encoding='utf8') as fa:
        fa.write(content)
def save_file_w(filename,content):
    with open(filename,'w',encoding='utf8') as fw:
        fw.write(content)
def read_file(filename):
    with open(filename,'r',encoding='utf8') as fw:
        data = fw.read()
    return data

def register():
    username,pwd = enter_username_pwd()
    save_file_a('test.txt',f'{username}:{pwd}')

def login():
    username, pwd = enter_username_pwd()
    data = read_file('test.txt')
    for user in data:
        user_list = user.strip().split(':')
        username_file = user_list[0]
        pwd_file = user_list[1]
        if username == username_file and pwd == pwd_file:
            print('登陆成功')
            break
    else:
        print('登陆失败')

func_dict = {
    0:register,
    1:login,
}

func_msg = '''
0:register
1:login
q:quit
'''

print(func_msg)
while True:
    choice = input('请输入你的功能(q退出)').strip()

    if choice == 'q':
        break

    func_dict[int(choice)]()
  • 用户功能层:实现用户具体的功能。
  • 接口层:连接数据处理层和用户功能层。
  • 数据处理层:处理数据后把结果交给接口层。
posted @ 2019-06-04 21:03  海森t  阅读(36)  评论(0)    收藏  举报