Alphabet

Utility functions to convert integer into a base-26 “number”, and vis versa.

benker.alphabet.alphabet_to_int(letters, alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZ')

Convert a base-26 “number” using uppercase ASCII letters into an integer.

>>> from benker.alphabet import alphabet_to_int

>>> alphabet_to_int("A")
1
>>> alphabet_to_int("B")
2
>>> alphabet_to_int("AA")
27
>>> alphabet_to_int("AB")
28
>>> alphabet_to_int("ZZZ")
18278
>>> alphabet_to_int("")
0
>>> alphabet_to_int("AA@")
Traceback (most recent call last):
    ...
ValueError: AA@
Parameters
  • letters – string representing a “number” in the base-26.

  • alphabet – alphabet to use for the conversion.

Returns

Integer value of the “number”.

benker.alphabet.int_to_alphabet(value, alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZ')

Convert a non-nul integer into a base-26 “number” using uppercase ASCII letters.

Usage:

>>> from benker.alphabet import int_to_alphabet

>>> int_to_alphabet(1)
'A'
>>> int_to_alphabet(2)
'B'
>>> int_to_alphabet(26)
'Z'
>>> int_to_alphabet(27)
'AA'
>>> int_to_alphabet(28)
'AB'
>>> int_to_alphabet(52)
'AZ'
>>> int_to_alphabet(53)
'BA'
>>> int_to_alphabet(18278)
'ZZZ'
>>> int_to_alphabet(-5)
Traceback (most recent call last):
    ...
ValueError: -5
Parameters
  • value (int) – value to convert

  • alphabet – alphabet to use for the conversion.

Returns

string representing this “number” in the base-26.