Modulový operátor (%) v Pythone
Keď vidíme „%“, prvá vec, ktorá nás napadne, je percento, ale v počítačovom jazyku to znamená modulo prevádzka (%), ktorý vráti zvyšok delenia ľavého operandu pravým operandom alebo laicky povedané nájde zvyšok alebo podpísaný zvyšok po rozdelení jedného čísla druhým.
Dané dve kladné čísla a a n, modulo n (a % n, skrátene proti n) je zvyšok Euklidovské delenie z a x n, kde a je dividenda a n je deliteľ.
Operátor modulu Python
V podstate sa na získanie zvyšku delenia používa operácia Python modulo. Operátor modulo( % ) sa považuje za aritmetickú operáciu spolu s + , – , / , * , ** , // . Vo väčšine jazykov musia byť oba operandy tohto modulo operátora celé číslo. Ale Python Modulo je v tomto prípade všestranný. Operandy môžu byť buď celé čísla alebo pláva .
Syntax:
a % b
Tu sa a delí b a vráti sa zvyšok tohto delenia.
Modulo operátor s celým číslom
Uloží zvyšok získaný delením a číslom b v c
Python3
# inputs> a> => 13> b> => 5> c> => a> %> b> print> (a,> 'mod'> , b,> '='> ,> > c, sep> => ' '> )> |
Výkon:
13 mod 5 = 3
Modulo operátor S plavákom so záporným číslom.
Uloží zvyšok získaný delením d číslom e do f. Ďalšie príklady nájdete v časti Ako vykonávať modulo so zápornými hodnotami v Pythone.
Python3
# inputs> d> => 15.0> e> => -> 7.0> f> => d> %> e> print> (d,> 'mod'> , e,> '='> ,> > f, sep> => ' '> )> |
Výkon:
15.0 mod -7.0 = -6.0
Príklad s použitím operátora Modulo
Predpokladajme, že chceme vypočítať zvyšok každého čísla od 1 do n pri delení pevným číslom k.
Python3
# function is defined for finding out> # the remainder of every number from 1 to n> def> findRemainder(n, k):> > > for> i> in> range> (> 1> , n> +> 1> ):> > # rem will store the remainder> > # when i is divided by k.> > rem> => i> %> k> > > print> (i,> 'mod'> , k,> '='> ,> > rem, sep> => ' '> )> # Driver code> if> __name__> => => '__main__'> :> > > # inputs> > n> => 5> > k> => 3> > > # function calling> > findRemainder(n, k)> |
Výkon:
1 mod 3 = 1 2 mod 3 = 2 3 mod 3 = 0 4 mod 3 = 1 5 mod 3 = 2
ZeroDivisionError v Pythone
Jediná výnimka, ktorú získate s operáciou Python modulo, je ZeroDivisionError . Toto sa stane, ak sa stane deliaci operand operátora modulo nula . To znamená, pravý operand nemôže byť nula . Pozrime sa na nasledujúci kód, aby sme vedeli o tejto výnimke Pythonu.
Python3
# inputs> a> => 14> b> => 0> # exception handling> try> :> > print> (a,> 'mod'> , b,> '='> ,> > a> %> b, sep> => ' '> )> > except> ZeroDivisionError as err:> > print> (> 'Cannot divide by zero!'> +> > 'Change the value of the right operand.'> )> |
Výkon:
Cannot divide by zero! Change the value of the right operand.