定义一个函数,可以对任意数字列表进行加减乘除

任务:定义一个函数,可以对任意数字列表进行加减乘除

想法:如果使用for循环,列表每变换一次,就要重新写一次程序;每变换一种要求,也要重写一次程序,太麻烦。

           所以需要定义一个函数(11~16行),在函数里把方法和列表都设置成变量,这样每次只需要改变量名,就可得到想要的结果,不需要每次重写程序

           3~10行,是加减乘除的方法

           11~16行,完成任务的函数。

           其中:13行:使用for循环遍历所需列表中的每一个值;

                      14行:将得到的值给予res,res就是用来接收 "methods(i)"的值,"methods(i)"对应的是加减乘除的方法,根据最后用到的方法不同(17~20),得到的值不同。

                                  例如:17行a,list1遍历的第一个值是1,1给add_one(1),根据3~4行的方法,返回的是1+1 = 2,最后得2,7给add_one(7),返回的是7+1,最后得8

                                             18行b,list2遍历的第一个值是2,2给subtract_one,根据5~6行的方法,返回的是2-1=1

                      15行:将得到的值加入空列表

                      16行:返回最后得到的列表

 1 list1 = [1,2,3,7,5,0]
 2 list2 = [2,3,4,5,6,1]
 3 def add_one(x):
 4     return x + 1
 5 def subtract_one(x):
 6     return x - 1
 7 def mult_one(x):
 8     return x**2
 9 def eliminates_one(x):
10     return x / 2
11 def foo(methods,listx):
12     list3 = []
13     for i in listx:
14         res = methods(i)
15         list3.append(res)
16     return list3
17 a = foo(add_one,list1)
18 b = foo(subtract_one,list2)
19 c = foo(mult_one,list2)
20 d = foo(eliminates_one,list1)
21 
22 print(a,b,c,d)

 

posted @ 2018-11-27 19:08  星空下的螃蟹  阅读(899)  评论(0编辑  收藏  举报