如何在没有“abs”功能的情况下获得绝对值?

新手上路,请多包涵
def my_abs(value):
"""Returns absolute value without using abs function"""
    if value < 5 :
        print(value * 1)
    else:
        print(value * -1)
print(my_abs(3.5))

到目前为止,这是我的代码,但是测验会打印,例如 -11.255 和 200.01,并且想要相反的结果,例如它想要 11.255 和 -200.01

原文由 Rod Derakhshanian 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 504
1 个回答

到目前为止的解决方案没有考虑带符号的零。在所有这些中,0.0 或 -0.0 的输入将导致 -0.0。

这是一个简单且(据我所知)正确的解决方案:

 def my_abs(value):
    return (value**2)**(0.5)

原文由 gaspar 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进