Base Converter

Code
def convertBinary(number, actualBase, base): base64_chars = get_base_character_set(base) negativeNum = False if str(number)[0] == "-": negativeNum = True if actualBase != 10: number = convertBase(number, actualBase) binary = "" questions = [] while True: newNumber = int(number / base) if newNumber == 0.0: remainder = (number - newNumber * base) # print(f"{number} = {newNumber} * {base} + {remainder}") questions.append([number, newNumber, base, remainder]) remainder = base64_chars[remainder] binary = str(remainder) + binary number = newNumber break remainder = (number - newNumber * base) # print(f"{number} = {newNumber} * {base} + {remainder}") questions.append([number, newNumber, base, remainder]) remainder = base64_chars[remainder] number = newNumber binary = str(remainder) + binary # print(questions) return binary , questions def get_base_character_set(base): if base < 2 or base > 62: raise ValueError("Base must be between 2 and 36.") base64_chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/=" if base <= 36: return base64_chars[:base] else: return base64_chars[:36] + base64_chars[36:base] def convertBase(number, base): newNumber = 0 strNum = str(number) negitiveNum = False for i in range(len(strNum)): if strNum[i] != '-': # Skip the negative sign when converting newNumber = newNumber + int(strNum[i]) * pow(base, len(strNum) - (i + 1)) else: negitiveNum = True if negitiveNum: return -newNumber return newNumber # number = int(input("Please enter the number: ")) # actualBase = int(input("Please enter the base (2-10): ")) # base = int(input("Please enter the base that you want to convert to (2-10): ")) def convert_to_subscript(number): subscript_digits = str.maketrans("0123456789", "₀₁₂₃₄₅₆₇₈₉") return str(number).translate(subscript_digits) # answer , working = convertBinary(number,actualBase,base) # print(answer,working)
Example