经典题整理:
写函数,传入n个数,返回字典{‘max’:最大值,’min’:最小值}
例如:min_max(2,5,7,8,4) 返回:{‘max’:8,’min’:2}(此题用到max(),min()内置函数)(两种方法)
def func(*args): m = max(args) mi = min(args) return {'max':m,'min':mi} ret = func(2,5,7,8,4) print(ret)
def func(*args): m = args[0] mi = args[0] for el in args: if m < el: m = el if mi > el: mi = el return {'max':m,'min':mi} ret = func(2,5,7,8,4) print(ret)
用递归计算阶乘:
def func(n): if n == 1: return n else: return n*fun(n-1) print(func(4))
def func(n): s=1 for i in range(1,n+1): s*=i return s re=func(5) print(re) count=1 s=1 n=int(input("一个数")) while count<n+1: s*=count count+=1 print(s) n=int(input("一个数")) cheng=1 for i in range(1,n+1): cheng*=i print(cheng)
用递归写x**y:
正确写法: s = 1 def func(x,y): global s if y> 0: s = s * x y = y-1 return func(x,y) # else: return s print(func(4,3)) s = 1 def func(x,y): global s if y> 0: s = s * x y = y-1 func(x,y) # return s print(func(4,3))
错误写法: s = 1 def func(x,y): global s if y> 0: s = s * x y = y-1 func(x,y) #执行return后会再次回到递归循环,怎么进去的就怎么出来 else: #所以需要return打断 应该是 return fun(x,y) return s print(func(4,3))
浙公网安备 33010602011771号