有没有办法在Python中提取数字的符号?

有没有办法在Python中提取数字的符号?,python,algorithm,sign,Python,Algorithm,Sign,我正在用Python编写Bolzano的算法。这是我目前的代码: def Bolzano(fonction, a, b, tol=0.000001): while abs(b-a)>tol: m=(a+b)/2 if cmp(fonction(m))==cmp(fonction(a)): a=m else: b=m return a, b 它会一直工作直到遇到cmp,而cmp是它无法识别的。

我正在用Python编写Bolzano的算法。这是我目前的代码:

def Bolzano(fonction, a, b, tol=0.000001):
   while abs(b-a)>tol:
       m=(a+b)/2
       if cmp(fonction(m))==cmp(fonction(a)):
           a=m
       else:
           b=m
   return a, b
它会一直工作直到遇到cmp,而cmp是它无法识别的。但是,我没有看到其他方法来实现它,因为Python没有符号函数。还有其他方法提取数字的符号吗

还有其他方法提取数字的符号吗

写你自己的怎么样

实施

def sign(num):
    return -1 if num < 0 else 1
Ohh和是一个内置的,需要两个参数(数字),只需比较它们并检查其中哪个更大。你应该这样使用它

def Bolzano(fonction, a, b, tol=0.000001):
   while abs(b-a)>tol:
       m=(a+b)/2
       if cmp(fonction(m), fonction(a)) == 0:
           a=m
       else:
           b=m
   return a, b
还有其他方法提取数字的符号吗

写你自己的怎么样

实施

def sign(num):
    return -1 if num < 0 else 1
Ohh和是一个内置的,需要两个参数(数字),只需比较它们并检查其中哪个更大。你应该这样使用它

def Bolzano(fonction, a, b, tol=0.000001):
   while abs(b-a)>tol:
       m=(a+b)/2
       if cmp(fonction(m), fonction(a)) == 0:
           a=m
       else:
           b=m
   return a, b
可能使用:

if cmp(fonction(m),fonction(a)) == 0:
可能使用:

if cmp(fonction(m),fonction(a)) == 0:
示例:

>>> same_sign(3, 4)
True

>>> same_sign(-3, 4)
False

>>> same_sign(3, -4)
False

>>> same_sign(-3, -4)
True

>>> same_sign(-3, 0)
True
示例:

>>> same_sign(3, 4)
True

>>> same_sign(-3, 4)
False

>>> same_sign(3, -4)
False

>>> same_sign(-3, -4)
True

>>> same_sign(-3, 0)
True