This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
def text_to_bin(text: str) -> str: | |
"""Takes a string, converts it to a space-separated string of binary numbers""" | |
result = [] | |
for char in text: | |
unicode_value = ord(char) | |
binary = format(unicode_value, '#010b') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
from typing import Callable, Iterable, T | |
def my_max(iterable: Iterable[T], key: Callable[[T, ...], Any]=lambda x: x) -> T: | |
iterator = iter(iterable) | |
try: | |
highest = key(next(iterator)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
from typing import Callable, Iterable, T | |
def my_min(iterable: Iterable[T], key: Callable[[T, ...], Any]=lambda x: x) -> T: | |
iterator = iter(iterable) | |
try: | |
lowest = key(next(iterator)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
from typing import Any, Callable, Generator, Iterable, T | |
def my_filter(func: Callable[[T], Any], iterable: Iterable[T]) -> Generator[T, None, None]: | |
"""Yields all values from the iterable for which the function returns a truthful value""" | |
for value in iterable: | |
if func(value): | |
yield value |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from typing import List | |
def prime_factors(num: int) -> List[int]: | |
""" | |
Searches for numbers that evenly divide the given | |
number and makes a list of these numbers, returning | |
the list. The product of the list is equivalent to | |
the original number as long as it's > 1, returning | |
an empty list otherwise. | |
""" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from typing import Any, Callable, Generator, Iterable, List | |
def my_zip(*iterables: List[Iterable[Any]]) -> Generator[List[Any], None, None]: | |
""" | |
Mimics the built-in zip function, accepting any number of iterables | |
and yielding values from all of them until one or more are exhausted. | |
""" | |
iterators = [iter(iterable) for iterable in iterables] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from collections import deque | |
from typing import Generator | |
import warnings | |
def n_fibonacci(n: int = 2) -> Generator[int, None, None]: | |
""" | |
Returns a generator that yields the values of a Fibonacci sequence of a given 'base'. | |
When `n == 0`, the returned sequence simplifies to an infinite sequence of `0`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
from typing import Callable, Iterable, T | |
def my_reduce(func: Callable[[T, T], T], iterable: Iterable[T]) -> T: | |
""" | |
Iterates over the given iterable and feeds the values | |
through the given function until the iterable is | |
exhausted, returning the final function value. | |
""" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
# -*- coding: utf-8 -*- | |
# The above two lines specify two things. The order must always be the same if both are used. | |
# The first line is a shebang, used by Unix-like systems to determine how to run a file. | |
# The second is a way to specify the encoding used by the file. | |
# Neither are necessary, especially the second one, since Python 3 is UTF-8 by default. | |
""" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from typing import Generator, Iterable, T, Tuple | |
def my_enumerate(iterable: Iterable[T], start: int=0) -> Generator[Tuple[int, T], None, None]: | |
""" | |
Mimics the built-in enumerate-function, accepting any iterable, | |
and yielding incremented indices and values from it. | |
""" | |
idx = start | |
for value in iterable: |