From 8c76758c320d4e9799cd8087d48eb51d2612090c Mon Sep 17 00:00:00 2001 From: ebokoo Date: Wed, 4 Mar 2026 12:20:22 +0800 Subject: [PATCH] Add sign function to maths module --- maths/sign.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 maths/sign.py diff --git a/maths/sign.py b/maths/sign.py new file mode 100644 index 000000000000..b8ac801ff49f --- /dev/null +++ b/maths/sign.py @@ -0,0 +1,40 @@ +"""Sign Function.""" + + +def sign(num: float) -> int: + """ + Return the sign of a number: -1 for negative, 0 for zero, 1 for positive. + + >>> sign(-5) + -1 + >>> sign(0) + 0 + >>> sign(10) + 1 + >>> sign(-0.5) + -1 + """ + if num > 0: + return 1 + elif num < 0: + return -1 + return 0 + + +def test_sign(): + """ + >>> test_sign() + """ + assert sign(-5) == -1 + assert sign(0) == 0 + assert sign(10) == 1 + assert sign(-0.001) == -1 + assert sign(0.001) == 1 + + +if __name__ == "__main__": + import doctest + + doctest.testmod() + test_sign() + print(sign(-5)) # --> -1