Modul (%) in python not like in C?
Arnau Sanchez
arnau at ehas.org
Sun Sep 9 15:40:45 EDT 2007
J. Cliff Dyer escribió:
> Dotan Cohen wrote:
>> FIrst of all, how is the % symbol (as in 70%6=4) called in English?
>>
>> Second, in Turbo C -111%10=-1 however in python -111%10=9. Is one or
>> the other in error? Is this a known gotcha? I tried to google the
>> subject however one cannot google the symbol %. Thanks in advance.
>>
>> Dotan Cohen
>>
>
> The % operator is called "modulo" in English. I don't think the
> difference in implementation is an error. It's just a difference of
> calculation method.
>
> Python will always yield a number x = m%n such that 0 <= x < n, but
> Turbo C will always yield a number such that if x = m%n -x = -m%n. That
> is, since 111 % 10 = 1, -111 % 10 = -1. The two values will always
> differ by n (as used above).
In fact, what you get in C depends on the compiler and architecture, while
Python is always consistent and returns positive remainders.
More info:
http://www.python.org/doc/faq/programming/#why-does-22-10-return-3
http://groups.google.com/group/comp.lang.python/search?group=comp.lang.python&q=modulo+negative+C
More information about the Python-list
mailing list