python入门,请问怎么确定位数然后舍入

编写一个Division_round函数,它将一个分子、一个分母作为参数,一个四舍五入的布尔值rounded(默认为False)和一个十进制整数decimal(默认值为0)作为可选参数,并计算分子/分母分数的值(除非分母为零,在这种情况下,您的函数将显示错误消息并且不返回任何内容)。如果舍入布尔值等于False,函数将返回此结果而不舍入(如果在调用期间指定了小数,则将被忽略)。如果布尔值是True,结果将四舍五入到要求的小数位数(默认情况下,到最接近的整数)。要进行舍入,您将使用round (number_to_round, number_of_decimals)。

例子:
Division_arrondi (1,3) is 0.3333333333333333
Division_arrondi (1,3, rounded = True, decimal = 2) is 0.33
Division_arrondi (15,8) is 1.875
Division_arrondi (15,8, True) is 2
division_arrondi(15,8, arrondi=True, decimales=2) is 1.88


def Division_arrondi(x, y, rounded=False, decimal=0, **kwargs):
    """

    :param x:分子
    :param y: 分母
    :param rounded:True开启四舍五入,False关闭四舍五入,默认False
    :param decimal: 开始四舍五入后将要保留的位数 为0是返回一个整形数据
    :return: 返回计算结果
    """
    # 参数提取
    if kwargs.get('arrondi') and rounded == False:
        rounded = True
    if kwargs.get('decimals') and decimal == 0:
        decimal = kwargs.get('decimals')

    # 判断是否开启四舍五入
    if y!=0:
        if rounded:
            # 开启四舍五入
            # 保留位数为0,round做四舍五入后转换整形返回
            if decimal == 0:
                return int(round(x / y, decimal))
            else:
                # 保留位数>0,round直接做做四舍五入返回
                return round(x / y, decimal)
        else:
            # 未开启四舍五入,直接计算返回
            return x / y
    else:
        return "分母不能为零"

print('Division_arrondi (1,3) is', Division_arrondi(1, 3))
print('Division_arrondi (1,3, rounded = True, decimal = 2) is', Division_arrondi(1, 3, rounded=True, decimal=2))
print('Division_arrondi (15,8) is', Division_arrondi(15, 8))
print('Division_arrondi (15,8) is', Division_arrondi(15, 0))
print('Division_arrondi (15,8, True) is', Division_arrondi(15, 8, True))
print('Division_arrondi(15,8, arrondi=True, decimales=2) is', Division_arrondi(15, 8, arrondi=True, decimales=2))
print('Division_arrondi(15,0, arrondi=True, decimales=2) is', Division_arrondi(15, 0, arrondi=True, decimales=2))

有帮助请采纳,有问题继续交流,你的采纳是对我回答的最大的肯定和动力

img


def Division_arrondi (a,b, rounded = False, decimal = 0):
    if b==0:
        print("False") #这里显示错误信息
        return
    c=a/b
    if rounded and decimal<0:
        print("False")  # 需要进行四舍五入,保证decimal>=0
        return
    if rounded or decimal>0:
        c=round(c,decimal)
    return c

out=Division_arrondi (15,8, rounded = True, decimal = 2) #(指定小数忽略rounded)
print(out)