Python divmod() 函数



Python divmod() 函数接受两个数字作为参数值,并返回一个包含两个值的元组,即商和除法的余数。

如果我们将字符串等非数字参数传递给 divmod() 函数,我们将遇到 TypeError,如果将 0 作为第二个参数传递,它将返回 ZeroDivisonError。

divmod() 函数内置函数之一,不需要导入任何模块。

语法

以下是 python divmod() 函数的语法。


 divmod(dividend, divisor)

参数

Python divmod() 函数接受两个参数,如下所示 -

  • dividend − 此参数指定要除以的数字。
  • divisor − 此参数表示被除数。

返回值

python divmod() 函数以元组的形式返回商和余数。

divmod() 函数示例

练习以下示例来理解 Python 中 divmod() 函数的用法:

示例:使用 divmod() 函数

以下是 Python divmod() 函数的示例。在这种情况下,我们将两个整数作为参数传递给 divmod() 函数,该函数将返回一个由它们的商和余数组成的元组。


output = divmod(18, 5)
print("The output after evaluation:", output)

在执行上述程序时,将生成以下输出 -

The output after evaluation: (3, 3)

示例:具有负值的 divmod()

如果我们将负数传递给 divmod() 函数,它会返回 floor 值作为商和余数,如下面的代码所示。


output = divmod(-18, 5)
print("The output after evaluation:", output)

以下是执行上述程序得到的输出 -

The output after evaluation: (-4, 2)

示例:具有 float 值的 divmod()

Python divmod() 函数也与浮点数兼容。在下面的示例中,我们将 float 值作为参数传递给此函数,该函数将返回 result 中的 float。


output = divmod(18.5, 5)
print("The output after evaluation:", output)

通过执行上述程序获得以下输出 -

The output after evaluation: (3.0, 3.5)

示例:使用 divmod() 函数的除以零错误

当 divmod() 的第二个参数为 0 时,它将引发 ZeroDivisionError。在下面的代码中,我们将 0 作为除数传递,因此得到 ZeroDivisionError。


try:
	 	print(divmod(27, 0))
except ZeroDivisionError:
	 	print("Error! dividing by zero?")

上述程序在执行时显示以下输出 -

Error! dividing by zero?

示例:将秒转换为小时、分钟和秒

在下面的代码中,我们将演示 divmod() 函数在 Python 中的实际应用。在这里,我们将秒转换为小时和分钟。


secValue = 8762
hours, remainingSec = divmod(secValue, 3600)
minutes, seconds = divmod(remainingSec, 60)
print("The total time after evaluating seconds:")
print(f"{hours} hours, {minutes} minutes, {seconds} seconds"))

上述程序在执行时显示以下输出 -

The total time after evaluating seconds:
2 hours, 26 minutes, 2 seconds