How to use Python to convert an octal to a decimal

These first lines take any decimal number and convert it to any desired number base

def dec2base():
    a = int(input('Enter decimal number: \t'))
    d = int(input('Enter expected base: \t'))
    b = ""
    while a != 0:
        x = '0123456789ABCDEF'
        c = a % d
        c1 = x[c]
        b = str(c1) + b
        a = int(a // d)
    return (b)

The second lines do the same but for a given range and a given decimal

def dec2base_R():
    a = int(input('Enter start decimal number:\t'))
    e = int(input('Enter end decimal number:\t'))
    d = int(input('Enter expected base:\t'))
    for i in range (a, e):
        b = ""
        while i != 0:
            x = '0123456789ABCDEF'
            c = i % d
            c1 = x[c]
            b = str(c1) + b
            i = int(i // d)
    return (b)

The third lines convert from any base back to decimal

def todec():
    c = int(input('Enter base of the number to convert to decimal:\t'))
    a = (input('Then enter the number:\t ')).upper()
    b = list(a)
    s = 0
    x = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F']
    for pos, digit in enumerate(b[-1::-1]):
        y = x.index(digit)
        if int(y)/c >= 1:
            print('Invalid input!!!')
            break
        s = (int(y) * (c**pos)) + s
    return (s)

Note: I also have the GUI version if anyone needs them


From decimal to octal:

oct(42) # '052'

Octal to decimal

int('052', 8) # 42

If you want to return octal as a string then you might want to wrap it in str.