1 ''' 2 编写一个函数,能够接受至少两个参数,返回最大最小值。 3 ''' 4 5 # NO 1 使用内置函数 max() min() 6 def mutil_nums(*nums): 7 return max(nums),min(nums) 8 print(mutil_nums(*range(10))) 9 print(*mutil_nums(*range(10))) #将输出的元组,作为print()函数的参数再解构,打印 10 11 # (9, 0) 12 # 9 0 13 14 # No 2 使用sorted()内置函数,排序返回写列表,再去取两头 15 def mutil_nums(*nums): 16 lst = sorted(nums) 17 print(lst) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 18 return lst[-1],lst[0] 19 print(mutil_nums(*range(10))) 20 21 # NO 3 使用选择排序,因为发现此要求不需要排序,所以只需要取出最值就可,而选择排序一轮就可以取出最值 22 # 效率最好的 23 def mutil_nums(*nums): 24 lst = list(nums) 25 length = len(lst) 26 27 for i in range(length//2): 28 maxindex = i 29 minindex = -i - 1 30 for j in range(i+1, length-i): 31 if lst[maxindex] < lst[j]: 32 maxindex = j 33 if lst[minindex] > lst[-j-1]: 34 minindex = -j - 1 35 if minindex == maxindex: 36 break 37 print('maxnum is :',maxindex, lst[maxindex]) 38 print('minnum is :',minindex, lst[minindex]) 39 40 mutil_nums(1,2,3) 41 42