在 Python 中除以零返回零
Make division by Zero return Zero in Python
在 Python 中使用if/else
语句使除以零返回零,例如return a / b if b else 0
. 当数字除以时0
,结果趋于无穷大,但我们可以检查除数是否等于,如果是则0
返回0
。
主程序
# ✅ make division of zero return zero using if/else def handle_zero_division(a, b): return a / b if b else 0 print(handle_zero_division(15, 5)) # 👉️ 3.0 print(handle_zero_division(15, 0)) # 👉️ 0 # ------------------------------------- # ✅ make division of zero return zero using try/except def handle_zero_division_2(a, b): try: result = a / b except ZeroDivisionError: result = 0 return result print(handle_zero_division_2(15, 5)) # 👉️ 3.0 print(handle_zero_division_2(15, 0)) # 👉️ 0
当我们除以 时不清楚期望值是多少0
,因此 Python 会抛出一个错误。
当我们将一个数除以0
时,结果趋于无穷大。
第一个示例使用内联if/else
语句检查除数是否为假。
由于
0
是唯一的数值假值,如果除数是假的,我们返回0
,否则我们返回除以的结果。 a
b
0
您还可以在if/else
语句中明确检查除数是否等于。
主程序
def handle_zero_division(a, b): return 0 if b == 0 else a / b print(handle_zero_division(15, 5)) # 👉️ 3.0 print(handle_zero_division(15, 0)) # 👉️ 0
或者,您可以使用try/except
语句。
要除以零返回零:
- 将部门包装在一个
try/except
声明中。 - 该
except
块应处理ZeroDivisionError
. - 将结果设置到
0
块中except
。
主程序
def handle_zero_division_2(a, b): try: result = a / b except ZeroDivisionError: result = 0 return result print(handle_zero_division_2(15, 5)) # 👉️ 3.0 print(handle_zero_division_2(15, 0)) # 👉️ 0
该try/except
块被称为“请求宽恕,而不是许可”。
我们尝试将 number
a
除以 number b
,如果我们得到 a ZeroDivisionError
,except
则运行该块。在except
块中,我们将result
变量设置为0
。
如果除数不存储0
值,则该except
块永远不会运行。