2014-04-13 2 views
5

파이썬에서, 당신은 할 수있다 : 이것에 대한 속기가파이썬 - 나누기가 나머지 인 경우 예외가 발생합니까?

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

있습니까? 즉, 나머지가있을 경우 예외를 throw하는 정수 나누기를 수행하는 방법은?

물어 그 이유는이 같은 상황에서 편리 할 것입니다 :

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 

매우 파이썬 보이지 않는다.

C#과 같은 일부 언어는 안전 구분을 수행하는 방법을 알고 있습니다. 이상한 파이썬하지 않습니다. 당신이 할 수있는

+2

명시 적으로 예외를 발생시키는 등 더 assert''에 대한 명시하여야 할 수 있습니다. 적어도,'python -O'은'assert' 문을 (다른 것들 중에서) 무시하도록합니다. – kojiro

답변

6

:

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

Brilliant! 내장되어 있음에도 불구하고, 나는 divmod에 대해 전혀 몰랐다. 감사. – Billy

관련 문제