no es necesario disculparse, cada uno codifica como quiere, de todas formas para mi gusto escribís código de más, lo haría así :
Código: python
dejo tu código y comentarios en su mayoría y saco lo repetitivo
#-*- coding: utf -8 -*-
from os import system, name
def clear():
# Acá no haría falta que cree una variable, solo llame a la función system y estaría.
if name == 'nt':
system('cls')
else:
system('clear')
valores = {2:["kilobytes","bytes"],3:["megabytes","kilobytes"],4:["gigabytes","megabytes"],5:["terabytes","gigabytes"]}
# Función para verificar si el dato ingresado es un entero
def ingresar(text):
# Mientras se ingrese erróneamente
while True: # error==True:
try:
x = int(input(text))
# Si el dato es correcto, sale del bucle
break
except ValueError:
# Se manipula la salida del error en caso de que el dato no sea el correcto
print("Error, se debe ingresar un número entero.\n")
return x
# Todo lo que tenga que ver con el menu, esta colocado en esta funcion.
def main():
menu = """
[1] Convertir bits a bytes
[2] Convertir kilobytes a bytes
[3] Convertir megabytes a kilobytes
[4] Convertir gigabytes a megabytes
[5] Convertir terabytes a gigabytes
[6] Salir
"""
print(menu)
# Entrada de usuario
the = ingresar("Selecciona una opción: ")
# Al presionar 6, el programa finaliza
while the!=6:
if the == 1:
# Se le pide el ingreso de datos al usuario
x = ingresar("Cuantos bits? ")
print(f"{x//8} es la cantidad de bytes en {x} bits.")
elif the in range(2,6):
texto= valores.get(the)
x = ingresar(f"Cuantos {texto[0]}? ")
print(f"{x * 1024 } es la cantidad de {texto[1]} en {x} {texto[0]}")
else:
print("\nElije una opción valida. Intentelo nuevamente.")
#clear()
input("\nPresione una tecla para continuar...\n")
clear()
print(menu)
the = ingresar("Selecciona una opción: ")
# Al salir del bucle, le mostrará el mensaje
print("\n\nHasta la próxima https://underc0de.org/foro/Smileys/default/smiley.gif\n\n")
if __name__ == '__main__':
# Llamamos a la funcion menu
main()
dejo tu código y comentarios en su mayoría y saco lo repetitivo