python语言篇(8练习1)

# 1. 写一个函数,mysum,可以传入任意个实参的数字,返回所有实参的和

# def mysum(....):
#     ....

#   print(mysum(1,2,3,4)) # 10
#   print(mysum(5,6,7,8,9)) # 35

def mysum(*args):
    return sum(args)

print(mysum(1,2,3,4)) # 10
print(mysum(5,6,7,8,9)) # 35

 

# 2. 已知内建函数 max的帮助文档为:
#   max(...)
#      max(iterable) -> value
#      max(arg1, arg2, *args) -> value
#   访造max,写一个mymax函数,实现功能与max完全相同
# 测试用例:
#   print(mymax([6,8,3,5]))  # 8
#   print(mymax(100, 200))   # 200
#   print(mymax(1,3,9,7,5))  # 9

# 方法1
# def mymax(*args):
#     if len(args) == 1:
#         L = list(*args)  # 放到一个列表里
#         L.sort(reverse=True)
#         return L[0]
#     elif len(args) >= 2:
#         L = list(args)
#         L.sort(reverse=True)
#         return L[0]


# 方法2
# def mymax(a, *args):
#     if len(args) == 0:
#         # return max(a)
#         m = a[0]  # 先假设第一个数最大
#         i = 1
#         while i < len(a): # 遍历之后的每一个元素
#             if a[i] > m:  # 如果此元素比m大,则让m绑定大的一个
#                 m = a[i]
#             i += 1
#         return m  # 最后m一定绑定一个最大的
#     else:
#         m = a
#         for x in args:
#             if x > m:
#                 m = x
#         return m

# 方法3
def mymax(a, *args):
    def _max(*args):
        # 此函数用于求args元组的最大值
        m = args[0]  # 先假设第一个数最大
        i = 1
        while i < len(args):  # 遍历之后的每一个元素
            if args[i] > m:  # 如果此元素比m大,则让m绑定大的一个
                m = args[i]
            i += 1
        return m  # 最后m一定绑定一个最大的

    if len(args) == 0:
         return _max(*a)
    return _max(a, *args)


print(mymax([6, 8, 3, 5]))  # 8
print(mymax(100, 200))   # 200
print(mymax(1, 3, 9, 7, 5))  # 9

 

# 3. 写一个函数minmax, 可以给出任意个数字实参,返回这些实参的最小数和最大数,
#   要求两个数字形成元组后返回(最小数在前,最大数在后)
#   调用此函数,能得到实参的最小值和最大值
#   def minmax(...):
#       ....

#   xiao, da = minmax(5,7,9,3,1)
#   print("最小数是:", xiao)
#   print("最大数是:", da)


def minmax(*args):
    return (min(args), max(args))

xiao, da = minmax(5, 7, 9, 3, 1)
print("最小数是:", xiao)
print("最大数是:", da)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值