Q:

¿Por qué al convertir "0125" con int() se convierte en "125"?

Estoy usando Python 3.x para leer un número con el método input().
Cuando inserto 0125 y luego lo convierto en int() quiero que me almacene 0125 pero me almacena 125. ¿Cómo lo puedo solucionar?
Utilizo esto para que cuando yo haga un condicional if y pueda evaluar la clave que ingreso con las de un diccionario, siendo evaluada correctamente sin que me mande un KeysError.

A:

Al almacenarlo como numero entero, te elimina los ceros que tienes a la izquierda. Para mantenerlos tienes que tratarlo como texto.
Te dejo algunos ejemplos que puede que te sirvan a la hora de comparar los datos con las claves del diccionario:
diccionario = {'0125': 'la clave es un STRING', 125: 'La clave es un ENTERO'}

comparar1 = 125  # Tipo int
comparar2 = '0125'  # Tipo str

print(diccionario[comparar1])  # Devuelve La clave es un ENTERO
print(diccionario['0' + str(comparar1)])  # Devuelve La clave es un STRING

print(diccionario[comparar2])  # Devuelve la clave es un STRING
print(diccionario[int(comparar2)])  # Devuelve La clave es un ENTERO

