Está en la página 1de 2

#Numero Romano

def conversion(valor,indice,resultado):
separar=""
cadena=""
if (valor[indice]!="0"):
for i in range(indice, (len(valor))):

separar= separar + valor[i]


dato=int(separar[0])
if(len(separar)==3):
if (dato<=3):
cadena="C"
elif (dato==4):
cadena="CD"
elif(dato==5):
cadena="C"
elif(dato>=6 and dato<=8):
cadena="DC"
elif(dato==9):
cadena="CM"
elif(len(separar)==2):
if (dato<=3):
cadena="X"
elif (dato==4):
cadena="XL"
elif(dato==5):
cadena="L"
elif(dato>=6 and dato<=8):
cadena="LX"
elif(dato==9):
cadena="XC"
elif(len(separar)==1):
if (dato<=3):
cadena="I"
elif (dato==4):
cadena="IV"
elif(dato==5):
cadena="V"
elif(dato>=6 and dato<=8):
cadena="VI"
elif(dato==9):
cadena="IX"
else:
cadena="M"

if (dato<=3):
posicion=0
else:
posicion=1
if (dato>1 and dato<=3 ):
for i in range(1, dato):
cadena=cadena+cadena[posicion]

elif(dato>=6 and dato<=8):


if(dato== 6): i=1
if(dato==7): i=2
if(dato==8): i=3
for i in range(1, i):
cadena=cadena+cadena[posicion]
resultado=resultado+cadena
indice+=1
if(indice<=len(valor)-1):
return conversion(valor,indice,resultado)
else:
return resultado

try:
'Captar dato del usuario'
valor= int(input("Ingrese un numero en el rango de 0 a 1000 -->"))
'Validar si el dato se encuentra en el rango 0 - 1000'
if (valor>0 and valor<=1000):
print(" * El valor esta dentro del rango*")
print("Número --> "+str(valor)+ " En Romano --> " +
str(conversion(str(valor),0,"")))
else :
print("El valor no esta en el rango")

except ValueError:
print("Valor "+ valor +" no es un numero Entero *Error*")

También podría gustarte