2.Python练习 (20200316)

Python练习 (20200316)

1.有1个列表li=[5,2,76,34,23,1,99,100,88,10],将列表中的元素按照从小到大的顺序排列

 1 # 方法一:直接使用list的sort方法
 2 li = [5,2,76,34,23,1,99,100,88,10]
 3 li.sort()
 4 print(li)
 5 # 输出
 6 # =>[1, 2, 5, 10, 23, 34, 76, 88, 99, 100]

7 # 方法二:新建一个列表,遍历原列表,以此取出最小值放入新列表 8 li = [5,2,76,34,23,1,99,100,88,10] 9 li_res = [] 10 def operate(start_list,new_list): # 定义operate函数,两个参数 11 for i in range(len(start_list)): # 遍历初始列表 12 min_ = min(start_list) # 选择列表中最小元素 13 one = start_list.pop(start_list.index(min_)) # 挑选出最小元素及其下标位置,初始列表删除最小元素 14 new_list.append(one) # 将最小元素添加到新列表 15 return new_list 16 print(operate(li,li_res)) 17 # 输出 18 # =>[1, 2, 5, 10, 23, 34, 76, 88, 99, 100]

19 # 方法三:选择排序 20 li = [5,2,76,34,23,1,99,100,88,10] 21 li1 = [343,565,23,45,68,89,346,76] 22 def operate(array): # 定义operate函数,一个参数 23 for i in range(len(array)): # 遍历列表 24 min_ = min(array[i:]) # 根据列表初始位置选择列表中的最小元素() 25 one = array.pop(array.index(min_)) # 挑选出最小元素 26 array.insert(i,one) # 将最小元素添加到指定列表下标位置 27 return array 28 print(operate(li)) 29 # 输出 30 # =>[1, 2, 5, 10, 23, 34, 76, 88, 99, 100] 31 print(operate(li1)) 32 # 输出 33 # =>[23, 45, 68, 76, 89, 343, 346, 565]

2.求10的阶乘

 1 # 方法一:高阶函数
 2 li = list(range(1,11))   # 生成一个列表li = [1,2,3,4,5,6,7,8,9,10]
 3 def chfa(x,y):   # 定义乘法函数
 4     return x*y
 5 def jiech_res(func,array):  # 定义乘法结果函数
 6     res = 1
 7     for i in array:
 8         res = func(res,i)
 9     return res
10 print(jiech_res(chfa,li))   # 传入参数
11 # 输出
12 # =>3628800

13 # 方法二:内置函数reduce 14 from functools import reduce # 导入模块 15 li = list(range(1,11)) # 生成列表 16 print(reduce(lambda x,y:x*y,li)) #调用reduce函数 17 # 输出 18 # =>3628800

19 # 方法三:while循环 20 num = 1 21 res = 1 22 while num<11: 23 res = res*num 24 num += 1 25 print(res) 26 # 输出 27 # =>3628800

28 # 方法四:递归函数 29 def func(x): # 定义函数 30 if x-1 == 0: 31 return x 32 res = x*func(x-1) 33 return res 34 print(func(10)) 35 # 输出 36 # =>3628800

37 # 方法五:遍历列表 38 li = list(range(1,11)) # 生成列表 39 res = 1 40 for i in li: 41 res = res*i 42 print(res) 43 # 输出 44 # =>3628800

 

posted @ 2020-03-16 22:15  星落……  阅读(116)  评论(0)    收藏  举报