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
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
6条答案
按热度按时间jutyujz01#
afdcj2ne2#
5
和绝对值有什么关系?按照你的逻辑:
还有其他较短的解决办法,可以在其他答复中看到。
s2j5cfk03#
到目前为止的解决方案都没有考虑到有符号的零,在所有这些解决方案中,输入0.0或-0.0都会得到-0.0。
下面是一个简单而(据我所知)正确的解决办法:
axzmvihb4#
有理数的一个简单解法是
n3h0vuf25#
为什么要检查
if value < 5
?无论如何,要复制abs功能:
mu0hgdu06#
一个有趣的例子。if(number〈0)返回一个布尔值,但当你用它做数学运算时,它是1或0。下面写为(a〈0)
当这个数小于0时,我们可以通过加上2乘以它自己的负数来得到它的正值。或者只是减去它自己两次,写成(-a-a)
所以当条件失败时它返回0乘以任何值都是0所以我们不给原始数加任何值.
如果我们的条件成立,我们会得到一个2倍的正数,这样我们就可以把它加到原始值上。
这是代码,在本例中,您要获取绝对值的数字是a
这比内置的abs()调用运行得慢。我认为它更快,但当我计时时,它在我的代码中有错误。最快的似乎是if(a〈0)then a = -a