Package: infEGE
ДокументацияБиблиотека работает в Python 3.6+Немного терминологииМодуль- это файл с расширением.py, находящийся в библиотеке.Например, модульconstants- это файлconstants.py.Модуль decorators1. Декоратор cacheДля чего:мемоизация работы функции.Пример использования:frominfEGEimportcache@cachedeffib(n):ifnin{0,1}:return1returnfib(n-1)+fib(n-2)fib(50)Если убрать@cache, то вычисляться будет очень долго.Модуль constantsДля чего:константы для использования в алгоритмах.Содержимое:E=2.718281828459045PI=3.141592653589793maxValue=float('inf')minValue=float('-inf')Модуль algebra_logic1. Функция print_true_tableСинтаксис:print_true_table(variables: str, expretion: str, value: Union[int, bool, 'all'] = 'all') -> NoneДля чего:Вывод таблицы истинности лог.функции expretion от переменных variables.

Если value='all', выводятся все строки таблицы;

Если value=1 или True, выводятся строки таблицы, где функция истинна;

Если value=0 или False, выводятся строки таблицы, где функция ложна.

В качестве лог.операций можно использовать обычные операции Python
или такие эквиваленты:
{"&": " and ", "|": " or ", "~": " not ", "->": "<="}.Пример использования #1:frominfEGEimportprint_true_tableprint_true_table("xy","x->y",1)Вывод:xy F
00 1
01 1
11 1Внимание: в Python приоритет <= выше, чем and, or, not! Ставьте скобки!Пример использования #2:frominfEGEimportprint_true_tableprint_true_table("xy","x&(y|x)|y",0)Вывод:xy F
00 0Пример использования #3:frominfEGEimportprint_true_tableprint_true_table("xzy","x or z and (y or not x)")Вывод:xzy F
000 0
001 0
010 1
011 1
100 1
101 1
110 1
111 1Модуль combinatorics1. Функция permutation_with_repeatСинтаксис:permutation_with_repeat(seq: Union[list, tuple, str], repeat: int = 1)Для чего:Возвращает перестановки элкементов итерируемого
обьекта seq с repeat повторениями.Пример использования:frominfEGEimportpermutation_with_repeatforelinpermutation_with_repeat('123',2):print(el)Вывод:('1', '1')
('1', '2')
('1', '3')
('2', '1')
('2', '2')
('2', '3')
('3', '1')
('3', '2')
('3', '3')2. Функция permutationsСинтаксис:permutations(seq: Union[list, tuple, str]):Для чего:Возвращает перестановки элкементов итерируемого объекта seq.Пример использования:frominfEGEimportpermutationsforelinpermutations('abc'):print(el)Вывод:abc
acb
bac
bca
cab
cbaМодуль lists_and_other1. Функция prodСинтаксис:prod(seq: Union[list, tuple, set]) -> Union[int, float]Для чего:Возввращает произведение элементов итерируемого объекта seq.Пример использования:frominfEGEimportprodprint(prod([5,8,6,100,54]))Вывод:1296000Модуль string1. Функция replacingСинтаксис:replacing(string: str, substring: str, new_string: str, mode: str = 'обычно', cnt: Union[int, str] = 'all') -> strДля чего:Возвращает строку string с заменённой подстрокой
substring на  подстроку new_string в количестве cnt.

Режим "обычно":
                замена стандартным replace

Режим "целиком":
                замена подстроки substring если она не
                является частью большей подстроки.Пример использования #1:frominfEGEimportreplacingprint(replacing("Питон плохой тон","тон","нот"))Вывод:Пинот плохой нотПример использования #2:frominfEGEimportreplacingprint(replacing("Питон плохой тон","тон","нот",cnt=1))Вывод:Пинот плохой тонПример использования #3:frominfEGEimportreplacingprint(replacing("Питон плохой тон","тон","нот","целиком"))Вывод:Питон плохой нот2. Функция index_nСинтаксис:index_n(string: str, substring: str, n: int = 1) -> intДля чего:Возвращает индекс n-го вхождения СЛЕВА подстроки
substring в строку string. Если такого вхождения
нет, возвращается -1000.Пример использования #1:frominfEGEimportindex_nprint(index_n("01230123","1"))Вывод:1Пример использования #2:frominfEGEimportindex_nprint(index_n("01230123","1",2))Вывод:5Пример использования #3:frominfEGEimportindex_nprint(index_n("01230123","1",3))Вывод:-10003. Функция is_numberСинтаксис:is_number(n: str) -> boolДля чего:Проверяет является ли строка n числом.
Если да возвращается True, иначе - False.Пример использования #1:frominfEGEimportis_numberprint(is_number("23"))Вывод:TrueПример использования #2:frominfEGEimportis_numberprint(is_number("2n3"))Вывод:FalseМодуль system_count1. Функция to_baseСинтаксис:to_base(number: Union[int, str], old_base: int = 10, new_base: int = 10) -> Union[int, str]Для чего:Переводит число number с основанием old_base в число
с основанием new_base.Пример использования #1:frominfEGEimportto_baseprint(to_base(5,new_base=2))Вывод:101Пример использования #2:frominfEGEimportto_baseprint(to_base(15,new_base=16))Вывод:FПример использования #3:frominfEGEimportto_baseprint(to_base("FA32",old_base=17,new_base=10))Вывод:76638Пример использования #4:frominfEGEimportto_baseprint(to_base("FA32",old_base=17,new_base=6))Вывод:1350450Модуль mathematics1. Функция is_primeСинтаксис:is_prime(n: int) -> boolДля чего:Если n - простое, то возващается True, иначе - False.Пример использования #1:frominfEGEimportis_primeprint(is_prime(5))Вывод:TrueПример использования #2:frominfEGEimportis_primeprint(is_prime(25))Вывод:FalseПример использования #3:frominfEGEimportis_primeprint(is_prime(1))Вывод:False2. Функция is_evenСинтаксис:is_even(n: int) -> boolДля чего:Если n - чётно, то возващается True, иначе - False.Пример использования #1:frominfEGEimportis_evenprint(is_even(12))Вывод:TrueПример использования #2:frominfEGEimportis_evenprint(is_even(25))Вывод:False3. Функция is_oddСинтаксис:is_odd(n: int) -> boolДля чего:Если n - нечётно, то возващается True, иначе - False.Пример использования #1:frominfEGEimportis_oddprint(is_odd(12))Вывод:FalseПример использования #2:frominfEGEimportis_oddprint(is_odd(25))Вывод:True4. Функция dividedСинтаксис:divided(n: int, d: int) -> boolДля чего:Если n нацело делится на d, то возвращается True, иначе - False.Пример использования #1:frominfEGEimportdividedprint(divided(12,5))Вывод:FalseПример использования #2:frominfEGEimportdividedprint(divided(121,11))Вывод:True5. Функция not_divisibleСинтаксис:not_divisible(n: int, d: int) -> boolДля чего:Если n не делится нацело на d, то возвращается True, иначе - False.Пример использования #1:frominfEGEimportnot_divisibleprint(not_divisible(12,5))Вывод:TrueПример использования #2:frominfEGEimportnot_divisibleprint(not_divisible(121,11))Вывод:False6. Функция factorialСинтаксис:factorial(n: int) -> intДля чего:Возвращает n! (0! = 1)Пример использования:frominfEGEimportfactorialprint(factorial(6))Вывод:7207. Функция factorizeСинтаксис:factorize(number: int) -> listДля чего:Возвращает разложение числа number на простые множители в list.Пример использования #1:frominfEGEimportfactorizeprint(factorize(1))Вывод:[]Пример использования #2:frominfEGEimportfactorizeprint(factorize(11))Вывод:[11]Пример использования #3:frominfEGEimportfactorizeprint(factorize(55))Вывод:[5, 11]8. Функция divisorsСинтаксис:divisors(n: int) -> listДля чего:Возвращает все натуральные делители числа n на интервале (1; n).Пример использования #1:frominfEGEimportdivisorsprint(divisors(1))Вывод:[]Пример использования #2:frominfEGEimportdivisorsprint(divisors(720))Вывод:[2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24, 30, 36, 40, 45, 48, 60, 72, 80, 90, 120, 144, 180, 240, 360]9. Функция fibСинтаксис:fib(n: int) -> intДля чего:Возвращает n-ый член последовательности Фибоначчи. Нумерация с 0.Пример использования #1:frominfEGEimportfibprint(fib(0))Вывод:0Пример использования #2:frominfEGEimportfibprint(fib(1))Вывод:1Пример использования #3:frominfEGEimportfibprint(fib(2))Вывод:1Пример использования #4:frominfEGEimportfibprint(fib(3))Вывод:2Пример использования #5:frominfEGEimportfibprint(fib(2001))Вывод:6835702259575806647045396549170580107055408029365524565407553367798082454408054014954534318953113802726603726769523447478238192192714526677939943338306101405105414819705664090901813637296453767095528104868264704914433529355579148731044685634135487735897954629842516947101494253575869699893400976539545740214819819151952085089538422954565146720383752121972115725761141759114990448978941370030912401573418221496592822626Примечание: Данный алгоритм работает быстрее рекурсивного! Асимптоматика: O(N)