如何避免复杂轮法的错误。?

How to avoid the error for complex round method.?

对于此代码:

def area(d, l): 
x=((d**2)-(l**2))**0.5
#b=sqrt(x)
rec_area=float(round(l*x, 2))
if d<=l and d<=x:
    print("'/Not a rectangle'/")
elif l==0.0 and d==0.0:
    print(""'/Not a rectangle'/"")
else:
    return rec_area
pass
print(area(12, 5))

我遇到错误:

type complex doesn't define __round__ method

如何解决 it.How 我可以解决这个问题吗 problem.I 我正在尝试获取面积并且最多会有两位小数 places.I 还想在提供时求出矩形的面积有一个对角线和矩形的一侧。如果输入对角线小于等于边长,则return"Not a rectangle"。如果结果面积有小数,则四舍五入到两位。

请告诉我如何从输出中删除 none。

如果对角线比边小,您会得到 'none',然后您的函数将 "Not a rectangle" 和 returns 'none' 打印到主函数。有两种方法可以解决这个问题:您可以始终在函数中打印结果而不在调用代码中使用打印,或者您可以 return 来自函数的字符串并在主代码中打印它。 解决方案 1:

def area(d, l): 
    if d<=l or l == 0.0:
        print("'/Not a rectangle'/")
    else:
        x=((d**2)-(l**2))**0.5
        rec_area=float(round(l*x, 2))
        print(rec_area)

area(12, 5)

解决方案 2:

def area(d, l): 
    if d<=l or l == 0.0:
        return "'/Not a rectangle'/"
    else:
        x=((d**2)-(l**2))**0.5
        rec_area=float(round(l*x, 2))
        return rec_area

print(area(12, 5))