python 中输出 -1 或 0 或 1 的函数

Sam*_*333 3 python if-statement function rounding

是否有一个(修改后的)轮函数,其输出为 -1,0,1,具体取决于输入最接近的数字?例如0 => 0、-2154 => -1、10 => 1

目前我正在使用普通的 if else 语句:

if i == 0:
    return 0
elif i > 0: 
    return 1
else:
    return -1
Run Code Online (Sandbox Code Playgroud)

但是有什么方法可以使其成为一行代码吗?例如,使用一些修改后的轮函数。

joo*_*ack 5

您可以使用numpy.sign()

import numpy as np

print(np.sign(1.2))
print(np.sign(-3.4))
print(np.sign(0))
Run Code Online (Sandbox Code Playgroud)

输出:

1.0
-1.0
0
Run Code Online (Sandbox Code Playgroud)

没有任何进口:

def sign(i):
    return (i>0) - (i<0)
    
print(sign(1))
print(sign(-3))
print(sign(0))
Run Code Online (Sandbox Code Playgroud)

输出:

1
-1
0
Run Code Online (Sandbox Code Playgroud)