一、作业代码。
# 1.用map来处理字符串列表,把列表中所有人都变成sb,比方alex_sb name=['alxx','wup','yuaao','nzha'] ret = map(lambda item:item + "_sb",name) print(list(ret))
name=['alxx','wup','yuaao','nzha'] def func(item): return item +"_sb" ret =map(func,name) print(list(ret))
# 2.用filter函数处理数字列表,将列表中所有的偶数筛选出来 num = [1,3,5,6,7,8] ret = filter(lambda a:a%2 == 0,num) print(list(ret))
# 3.随意写一个20行以上的文件 # 运行程序,先将内容读到内存中,用列表存储。 # 接收用户输入页码,每页5条,仅输出当页的内容 with open ("file",encoding="utf-8") as f: l = f.readlines() page_num = int(input('请输入页码:')) pages, mod = divmod(len(l), 5) if mod != 0: pages +=1 if page_num > pages or page_num <= 0: print('输入错误:') elif page_num == pages and mod != 0: for i in range(mod): print(l[(page_num-1)*5+i]) else: for i in range(5): print(l[(page_num-1)*5+i])
# 4.如下,每个小字典的name对应股票名字,shares对应多少股,price对应股票的价格 portfolio = [ {'name': 'IBM', 'shares': 100, 'price': 91.1}, {'name': 'AAPL', 'shares': 50, 'price': 543.22}, {'name': 'FB', 'shares': 200, 'price': 21.09}, {'name': 'HPQ', 'shares': 35, 'price': 31.75}, {'name': 'YHOO', 'shares': 45, 'price': 16.35}, {'name': 'ACME', 'shares': 75, 'price': 115.65} ] # 1.计算购买每支股票的总价 ret = map(lambda dic_1:{dic_1["name"]:round(dic_1["shares"]*dic_1["price"],2)}, portfolio) print(list(ret)) # .2.用filter过滤出,单价大于100的股票有哪些 #ret = filter(lambda dic:True if dic["price"] > 100 else False,portfolio) ret = filter(lambda dic:dic["price"] > 100, portfolio) print(list(ret))
二、递归函数
1、初识递归
# def story():
# print('从前有座山')
# story()
# print(111)
#
# story()
#RecursionError: maximum recursion depth exceeded while calling a Python object
# 递归的错误,超过了递归的最大深度
# 了解什么是递归 : 在函数中调用自身函数
2、教你看递归。
ef age(n): if n == 4: return 40 elif n >0 and n < 4: age(n+1) + 2 # print(age(1)) # # 教你看递归 # def age(1): # if 1 == 4: # return 40 # elif 1 > 0 and 1 < 4: # return 46 # # def age(2): # if 2 == 4: # return 40 # elif 2 >0 and 2 < 4: # age(3) + 2 None +2 # # def age(3): # if 3 == 4: # return 40 # elif 3 >0 and 3 < 4: # 42 # # def age(4): # if 4 == 4: # return 40 # elif n >0 and n < 4: # age(n+1) + 2