Для проверки, является ли число отрицательным в Python, можно использовать несколько способов:
1. Сравнение с нулем (< 0)
Это самый прямой, простой и наиболее идиоматичный способ. Если число меньше нуля, оно отрицательное.
Python
Number1 = 10
Number2 = -5
Number3 = 0
Number4 = -0.001
Print(f"Число {number1} отрицательное? {number1 < 0}") # False
Print(f"Число {number2} отрицательное? {number2 < 0}") # True
Print(f"Число {number3} отрицательное? {number3 < 0}") # False
Print(f"Число {number4} отрицательное? {number4 < 0}") # True
# Пример использования в условном операторе
My_number = -15
If my_number < 0:
print(f"{my_number} является отрицательным числом.")
Else:
print(f"{my_number} не является отрицательным числом.")
2. Сравнение с нулем (<= 0) и проверка на то, что это не ноль
Иногда вы можете захотеть исключить ноль. В таком случае, вы проверяете, что число меньше или равно нулю, и при этом не равно нулю. Однако, простое < 0 более точно соответствует определению "отрицательного числа".
Python
Number = 0
If number <= 0 and number != 0:
print(f"{number} является отрицательным числом (и не нулем).")
Else:
print(f"{number} не является отрицательным числом (или является нулем).")
# Гораздо проще и понятнее просто:
If number < 0:
print(f"{number} является отрицательным числом.")
3. Использование функции Math. copysign() или Numpy. sign() (для определения знака)
Эти функции возвращают знак числа.
- Math. copysign(1, x): Возвращает 1.0 если x положительное, -1.0 если x отрицательное, и 1.0 если x ноль (или 0.0). Это может быть не совсем то, что нужно, если вы хотите чисто проверить знак. math. copysign(0.0, x) также работает и возвращает 0.0 с тем же знаком, что и x.
Python
Import math
Num = -7.5
If math. copysign(1, num) == -1.0:
print(f"{num} отрицательное (через copysign).")
- Numpy. sign(x): Если вы работаете с NumPy массивами или используете NumPy в своем проекте, numpy. sign() вернет -1 для отрицательных чисел, 1 для положительных и 0 для нуля.
Python
Import numpy as np
Num = -10
If np. sign(num) == -1:
print(f"{num} отрицательное (через numpy. sign).")
Примечание: Использование math. copysign() или numpy. sign() для простой проверки отрицательности числа является Избыточным и менее читаемым, чем прямое сравнение < 0. Они полезны, когда вам нужно именно "получить знак числа" для других целей.
Рекомендуемый способ
Для простой проверки, является ли число отрицательным, всегда используйте Сравнение с нулем:
Python
If my_number < 0:
# Число отрицательное
Это самый ясный, производительный и "питоновский" способ.