Python基本练习四(函数,递归)

函数练习

  1. 编写一个函数,能接受至少两个参数,返回最大值和最小值
  2. 完成一个函数,可以接收输入的多个数,每一次都能返回到目前为止的最大值、最小值
#编写一个函数,能接受至少两个参数,返回最大值和最小值
def getMaxMin(x,y,*iterable):
    minval = None
    maxval = None
    if not isinstance(x,int) or not isinstance(x,int): return
    if x>y:
        minval,maxval = y,x
    else:
        minval,maxval = x,y
    for i in iterable:
        if i>maxval:
            maxval = i
        elif i<minval:
            minval = i
    return maxval,minval

#getMaxMin(3,6,12,1212,1)

##完成一个函数,可以接收输入的多个数,每一次都能返回到目前为止的最大值、最小值
def maxminPing():
    minarr = None
    maxarr = None
    while True:
        x = input(">>>")
        if x.upper()=="Q": return
        arr = (int(_) for _ in x.replace(","," ").split())
        if minarr==None : minarr = maxarr = next(arr)
        maxarr,minarr = getMaxMin(minarr,maxarr,*arr)
        print("最大值:{},最小值:{}".format(minarr,maxarr))
maxminPing()

在这里插入图片描述

  • 第二小题,第二种思路实现
##完成一个函数,可以接收输入的多个数,每一次都能返回到目前为止的最大值、最小值
def maxminPing():
    minarr = None
    maxarr = None
    while True:
        x = input(">>>")
        if x.upper()=="Q": return
        arr = x.replace(","," ").split()
        if minarr==None and maxarr==None and len(arr) == 1:
#             print(minarr)
            minarr = maxarr = arr[0]
        else:
#             print(arr)
            minarr = min(*arr,minarr)
            maxarr = max(*arr,maxarr)
        print("最大值:{},最小值:{}".format(minarr,maxarr))
maxminPing()

在这里插入图片描述

递归练习

  1. 求n的阶乘
  2. 将一个数逆序放入列表中,例如1234 ==》 [4,3,2,1]
  3. 解决猴子吃桃问题
    • 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想吃时,只剩下一个桃子了。求第一天共摘多少个桃子
  • 第一题解法
#第一题:n的阶乘
#第一种实现
def factorial(n):
    return n if n==1 else n*factorial(n-1)

#第二种实现
def factorial2(n,face=1):
    if n==1:
        return face
    else<
  • 0
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值