Que tal compañeros como andan? bueno verán llevo un tiempo aquí en este magnifico foro y no me había animado a hacer ningún post hasta ahora, pero en esta ocasión quiero compartirles un sencillo programita que desarrolle (cabe aclarar que soy un novato en python ;D pero ya saben lo que dicen "la practica hace al maestro"). Bueno volviendo al tema este pequeño script convierte de Romano a Decimal y Viceversa
def num_roman():
num_map = [(1000, 'M'), (900, 'CM'), (500, 'D'), (400, 'CD'), (100, 'C'), (90, 'XC'),
(50, 'L'), (40, 'XL'), (10, 'X'), (9, 'IX'), (5, 'V'), (4, 'IV'), (1, 'I')]
num = int(input("DECIMAL: "))
roman = ''
while num > 0:
for i, r in num_map:
while num >= i:
roman += r
num -= i
print("\t-------------",roman,"-------------")
def roman_num():
values=(("M", 1000),
("CM", 900),
("D", 500),
("CD", 400),
("C", 100),
("XC", 90),
("L", 50),
("XL", 40),
("X", 10),
("IX", 9),
("V", 5),
("IV", 4),
("I", 1)
)
result = 0
lista = []
romano = input("ROMANO: ")
if romano.upper().count("X")>3 or romano.upper().count("I")>3 or romano.upper().count("V")>3 or romano.upper().count("L")>3 or romano.upper().count("D")>3 or romano.upper().count("M")>3:
print("[X]")
else:
for i in range(len(romano.upper())):
for letter, value in values:
if romano.upper()[i] == letter:
lista.append(value)
lista.append(0)
for i in range(len(romano.upper())):
if lista[i] >= lista[i+1]:
result = result + lista[i]
else:
result = result - lista[i]
print("\t-------------",result,"-------------")
def choose():
print (" _______|______________________________________|_______")
print (" \ | | /")
print (" \ | 1)Decimal to Roman | /")
print (" \ | 2)Roman to Decimal | /")
print (" / |____________________________ ________| \ ")
print (" /_________) (________\ ")
opc = int(input("INGRESE UNA OPCION: "))
if opc == 1:
num_roman()
elif opc == 2:
roman_num()
else:
print("Error")
if __name__ == '__main__':
choose()
se que existen mejores maneras de hacerlo y mas completas, pero aun asi quise compartirlo con ustedes
Saludos a todos!