Modulový operátor (%) v Pythonu

Když vidíme „%“, první věc, která nás napadne, je procento, ale v počítačovém jazyce to znamená modulo provoz (%), která vrátí zbytek dělení levého operandu pravým operandem nebo laicky řečeno najde zbytek nebo podepsaný zbytek po rozdělení jednoho čísla druhým.

Jsou-li dána dvě kladná čísla a a n, modulo n (a % n, zkráceně proti n) je zbytek Euklidovské dělení z a x n, kde a je dělenec a n je dělitel.

Operátor modulu Python

V zásadě se k získání zbytku dělení používá operace modulo Python. Operátor modulo( % ) se považuje za aritmetickou operaci spolu s + , , / , * , ** , // . Ve většině jazyků musí být oba operandy tohoto operátoru modulo celé číslo. Ale Python Modulo je v tomto případě všestranný. Operandy mohou být buď celá čísla nebo plave .

Syntax:

a % b 

Zde je a děleno b a je vrácen zbytek tohoto dělení.

Modulo operátor s celým číslem

Uloží zbytek získaný při dělení a b, v c

Python3




# inputs> a> => 13> b> => 5> c> => a> %> b> print> (a,> 'mod'> , b,> '='> ,> > c, sep> => )>

Výstup:

13 mod 5 = 3 

Operátor Modulo S plovákem se záporným číslem.

Uloží zbytek získaný dělením d e, do f. Další příklady najdete v tématu Jak provádět modulo se zápornými hodnotami v Pythonu.

Python3




# inputs> d> => 15.0> e> => -> 7.0> f> => d> %> e> print> (d,> 'mod'> , e,> '='> ,> > f, sep> => )>

Výstup:

15.0 mod -7.0 = -6.0 

Příklad použití modulu Modulo Operator

Předpokládejme, že chceme vypočítat zbytek každého čísla od 1 do n, když je děleno pevným číslem 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ýstup:

1 mod 3 = 1 2 mod 3 = 2 3 mod 3 = 0 4 mod 3 = 1 5 mod 3 = 2 

ZeroDivisionError v Pythonu

Jediná výjimka, kterou získáte s operací Python modulo, je ZeroDivisionError . K tomu dojde, pokud se stane dělicí operand operátoru modulo nula . To znamená, pravý operand nemůže být nula . Podívejme se na následující kód, abychom věděli o této výjimce 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ýstup:

Cannot divide by zero! Change the value of the right operand.