mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-07-05 09:21:13 +08:00
Split base85.py into functions, Add doctests (#5746)
* Update base16.py * Rename base64_encoding.py to base64.py * Split into functions, Add doctests * Update base16.py
This commit is contained in:

committed by
GitHub

parent
24731b078c
commit
bdd135d403
@ -1,13 +1,33 @@
|
||||
import base64
|
||||
|
||||
|
||||
def main() -> None:
|
||||
inp = input("->")
|
||||
encoded = inp.encode("utf-8") # encoded the input (we need a bytes like object)
|
||||
a85encoded = base64.a85encode(encoded) # a85encoded the encoded string
|
||||
print(a85encoded)
|
||||
print(base64.a85decode(a85encoded).decode("utf-8")) # decoded it
|
||||
def base85_encode(string: str) -> bytes:
|
||||
"""
|
||||
>>> base85_encode("")
|
||||
b''
|
||||
>>> base85_encode("12345")
|
||||
b'0etOA2#'
|
||||
>>> base85_encode("base 85")
|
||||
b'@UX=h+?24'
|
||||
"""
|
||||
# encoded the input to a bytes-like object and then a85encode that
|
||||
return base64.a85encode(string.encode("utf-8"))
|
||||
|
||||
|
||||
def base85_decode(a85encoded: bytes) -> str:
|
||||
"""
|
||||
>>> base85_decode(b"")
|
||||
''
|
||||
>>> base85_decode(b"0etOA2#")
|
||||
'12345'
|
||||
>>> base85_decode(b"@UX=h+?24")
|
||||
'base 85'
|
||||
"""
|
||||
# a85decode the input into bytes and decode that into a human readable string
|
||||
return base64.a85decode(a85encoded).decode("utf-8")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
import doctest
|
||||
|
||||
doctest.testmod()
|
||||
|
Reference in New Issue
Block a user