Python - 如果除法有余数则抛出异常?

7 投票
1 回答
600 浏览
提问于 2025-04-18 02:37

在Python中,你可以这样做:

assert a % b == 0
c = a // b

有没有更简洁的方法呢?换句话说,有没有一种整数除法的方式,如果有余数就会抛出异常?

我之所以问这个,是因为在某些情况下这样做会很方便:

count = len(self.rawr.foo) / self.this.is.a.long.variable

现在我不得不使用临时变量:

a = len(self.rawr.foo)
b = self.this.is.a.long.variable
assert a % b == 0
count = a // b

这看起来不是很符合Python的风格。

我知道像C#这样的语言有安全除法的方法;奇怪的是Python却没有。

1 个回答

7

你可以这样做:

count, rem = divmod(len(self.rawr.foo), self.this.is.a.long.variable)
assert not rem # or `assert rem == 0`

撰写回答