定义一个函数,可以对任意数字列表进行加减乘除
任务:定义一个函数,可以对任意数字列表进行加减乘除
想法:如果使用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)