经典题整理:

写函数,传入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)
View Code
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)
View Code

 用递归计算阶乘:

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)
View Code

 

用递归写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))    

 

posted on 2018-07-17 21:24  IT东  阅读(136)  评论(0)    收藏  举报

导航