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
2 hours, 26 minutes, 2 seconds