求n个数的和、差、积、商

 

啥也不说了,先来代码~~~

def cal_add(*args):
    """N个数字的和"""
    sum_res = 0  # 利用了0加任何数字都等于该数字本身的特性为初始位置赋值
    for i in args:
        sum_res += i
    return sum_res


def cal_sub(*args):
    """N个数字的差"""
    sub_res = args[0]  # 求差时,由于数字没有像和那样的特殊逻辑,所以先取了索引为0位置的value作为初始位置
    for i in args:
        sub_res -= i
    return sub_res + args[0]
    # 最后加args[0] 是因为 for循环中会重复减一次args[0]
    # 举个栗子:有a,b,c三个数字,在for循环中处理逻辑如下:a-b, b-c, c-a 实际上,我们只需要a-b-c,所以最后结果要把a加回来


def cal_mul(*args):
    """N个数字的积"""
    mul_res = 1  # 利用了1乘以任何数字都等于该数字本身的特性为初始位置赋值
    for i in args:
        mul_res *= i
    return mul_res


def cal_div(*args):
    """N个数字的商"""
    div_res = args[0]
    for i in args:
        if args[0] == 0 and i != 0:  # 0除以任何非0的数,都等于0
            return 0
        elif i != 0:  # 保证除数不能为0
            div_res /= i
        else:
            return print("除数不能为0,请检查入参")
    return div_res * args[0]
    # 结果处理与求差的结果处理类似

做完后,感觉其中比较难处理的是差和商,和与积可以利用0和1本身的特性给定开始的第一个值,但是差与商没有这种特殊逻辑,就需要在代码中自己处理了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值