Curso Python 3 desde cero

  Рет қаралды 7,426

La Geekipedia De Ernesto

La Geekipedia De Ernesto

Күн бұрын

Пікірлер: 18
@Angel-mq2ev
@Angel-mq2ev 9 ай бұрын
Siempre agradecido Ernesto por este curso y estos proyectos finales. En mi caso, la lógica de la programación del algoritmo, se me hizo algo más complicada que el ejercicio anterior. No se me ocurrió invertir el número romano introducido, y lo que hago es ir sumando los valores y, si llegamos a una letra con valor mayor que el anterior, resto lo sumado anteriormente por dos para convertirlo a resta :-) Añadí un conjunto con las letras válidas para hacer validación con lo que aprendimos de subconjuntos. Mi código quedó así... equivalencias = {"M": 1000, "D": 500, "C": 100, "L": 50, "X": 10, "V": 5, "I": 1} romano_valido = {"M", "D", "C", "L", "X", "V", "I"} try: romano = input("Ingresa un número romano para convertirlo a entero: ").upper() entero = equivalencias[romano[0]] if set(romano) = equivalencias[romano[posicion+1]] : entero += equivalencias[romano[posicion+1]] else: entero = entero - equivalencias[romano[posicion]]*2 + equivalencias[romano[posicion+1]] print("Resultado:", entero) else: print("El número ingresado debe ser un número romano.") except Exception as e: print("Ingresa un número romano válido:", e)
@juan_ortega23
@juan_ortega23 6 ай бұрын
Aguante La Geekipedia De Ernesto, el mejor curso de Python en youtube. Saludos desde Argentina, gracias profe
@polar2678
@polar2678 Жыл бұрын
Por suerte este es un problema de Leetcode que ya había hecho hace tiempo jaja, aquí mi solución: . . . # Python 3.12.0 class Solution(object): def romanToInt(self, s: str): new_num = 0 units = { "I": 1, "V": 5, "IV": 4, "X": 10, "IX": 9, "L": 50, "XL": 40, "C": 100, "XC": 90, "D": 500, "CD": 400, "M": 1000, "CM": 900 } while s: for k, v in reversed(units.items()): if s.startswith(k): new_num += v s = s[len(k):] break return new_num print("Resultado:", Solution().romanToInt(input("Escribe un número romano para convertirlo a entero: ").upper()))
@alejandrotorresvalverde4096
@alejandrotorresvalverde4096 Жыл бұрын
Muchas gracias
@Nero01123
@Nero01123 3 ай бұрын
Lo admito, me quedo grande el ejercicio, pero muy bueno para trabajar y entrenar la logica 😅
@fernandoarroyo8935
@fernandoarroyo8935 11 ай бұрын
Comparto el programa más simplificado al anterior. Me divierte resolver estos acertijos. Saludos. Vamos ver como lo resolvió nuestro profe. Saludos compañeros. print(" PROGRAMA CONVERTIDOR DE NÚMEROS ROMANOS A DECIMALES ".center(100,"*")) print(" Ingresa un número Romano para hacer su conversión a número decimal") total = 0 num_correcto = "" num_usuario = input("¿Cúal es el numero Romano que deseas convertir?: ").upper() romanos = {0:{"MMM":3000, "MM":2000, "M":1000 }, 1:{"CM":900, "DCCC":800, "DCC":700, "DC":600, "D":500, "CD":400, "CCC":300, "CC":200, "C":100 }, 2:{"XC":90, "LXXX":80, "LXX":70, "LX":60, "L":50, "XL":40, "XXX":30, "XX":20, "X":10 }, 3:{"IX":9, "VIII":8, "VII":7, "VI":6, "V":5, "IV":4, "III":3, "II":2, "I":1, } } try: for cont in romanos: for key, value in romanos[cont].items(): if num_usuario.startswith(key): total += value num_usuario = num_usuario[len(key):] num_correcto += key break if len(num_usuario) == 0: print(f"El número Romano {num_correcto} en número decimal es: {total}") else: print("El dato proporcinado no es un número Romano, favor de verificar") except ValueError as ve: print("El dato proporcinado no es un número Romano, favor de verificar") except Exception as e: print(f"Estamos trabajando para resolver este error, {e}")
@andresfcp
@andresfcp 2 ай бұрын
-----> GRACIAS ERNESTO
@Rokko-
@Rokko- Жыл бұрын
Si ingresas iiv te devuelve 5, habría que corregirlo.
@sofyhernandez2652
@sofyhernandez2652 Жыл бұрын
Qué número romano es ese "iiv"? :/
@Rokko-
@Rokko- Жыл бұрын
@@sofyhernandez2652 justamente ninguno, por lo tanto debió rechazarlo el mismo programa
@Juststudy-cc4ow
@Juststudy-cc4ow 10 ай бұрын
Tarde casi 7 horas pero ahora tengo un convertidor de numeros romanos que te da un mensaje de error cada vez que quieras colocar algo que no sea un numero romano y tambien si quieres colocar un numero romano invalido algo asi como XXXX y ademas convierte en mayusculas el input en minusculas aqui esta el codigo. resultado = 0 error = 0 ee_ = 0 print("Este programa convertiralos numeros romanos en numeros Actuales " "Pero solo aceptamos los numeros desde el 1 hasta el 3999") print() a = input("Escribe el numero que quieras convertir: ") a = a.upper() m = a.count("M") em = a.count("CM") d = a.count("D") ed = a.count("CD") c = a.count("C") ec = a.count("XC") el = a.count("L") eu = a.count("XL") x = a.count("X") xi = a.count("IX") v = a.count("V") uv = a.count("IV") u = a.count("I") for caracter in a: ee_ += 1 if ee_ > 1: ee_ -= em ee_ -= m ee_ -= d ee_ -= ed ee_ -= c ee_ -= ec ee_ -= el ee_ -= eu ee_ -= x ee_ -= xi ee_ -= uv ee_ -= u error += ee_ if em == 1: c -= 1 x -= 1 if em == 1: m -= 1 if c == 1 and m == 1: c -= 1 if ed == 1 and d == 1: d -= 1 if ed == 1 and c == 1: c -= 1 if ec == 1: c -= 1 x =- 1 if el == 1 and eu == 1: el -= 1 if eu == 1 and x == 1: x -= 1 if x == 1 and xi == 1: x -= 1 if xi == 1: u -= 1 if x == 1 and ec == 1: x -=1 if u == 1 and uv == 1: u -= 1 if v == 1 and uv == 1: v -=1 s = 0 try: if m > 0 and m < 4: s = 0 while s < m: s += 1 resultado += 1000 if em == 1: resultado += 900 if ed == 1: resultado += 400 if d == 1: resultado += 500 if c > 0 and c < 4: s = 0 while s < c: s += 1 resultado += 100 if ec == 1: resultado += 90 if el == 1: resultado += 50 if eu == 1: resultado += 40 if x > 0 and x < 4: s = 0 while s < x: s += 1 resultado += 10 if xi == 1: resultado += 9 if v == 1: resultado += 5 if uv == 1: resultado += 4 if u > 0 and u < 4: s = 0 while s < u: s += 1 resultado += 1 if eu > 1 or el > 1 or uv > 1 or xi > 1 or ec > 1 or d > 1 or ed > 1 or em > 1: error += 1 elif u > 3 or x > 3 or c > 3 or m > 3: error += 1 except ValueError: print("Lo sentimos solo se permiten valores tipo String") if error > 0: print("Lo sentimos a sucedido un error, aparentemente no has ingresado un numero romano valido") elif error == 0: print(resultado)
@Juststudy-cc4ow
@Juststudy-cc4ow 10 ай бұрын
el codigo que quedo cuando lo empeze a reducir resultado = 0 error = 0 print("Este programa convertirá los números romanos en números actuales " "Pero solo aceptamos los números desde el 1 hasta el 3999") print() try: a = input("Escribe el número que quieras convertir: ").upper() valores_romanos = {'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} for simbolo, valor in valores_romanos.items(): cantidad = a.count(simbolo) resultado += cantidad * valor a = a.replace(simbolo, "") if a: error += 1 elif resultado < 1 or resultado > 3999: error += 1 except ValueError: print("Lo sentimos solo se permiten valores tipo String") if error > 0: print("Lo sentimos ha ocurrido un error, parece que no has ingresado un número romano válido.") else: print(resultado)
@Camach-o
@Camach-o 11 ай бұрын
Aquí mi solución. Curiosamente se me hizo más fácil que el de convertir un entero a romano xd numero = input("Ingresa un número romano para convertirlo a entero: ").upper() entero = 0 temp = 0 for x in numero: if x == 'I': n = 1 elif x == 'V': n = 5 elif x == 'X': n = 10 elif x == 'L': n = 50 elif x == 'C': n = 100 elif x == 'D': n = 500 elif x == 'M': n = 1000 if temp < n: entero -= temp n = n - temp entero += n else: entero += n temp = n print(entero)
Curso Python 3 desde cero #4 | Manipulación de cadenas de caracteres (Strings)
28:30
La Geekipedia De Ernesto
Рет қаралды 842 М.
Что-что Мурсдей говорит? 💭 #симбочка #симба #мурсдей
00:19
Правильный подход к детям
00:18
Beatrise
Рет қаралды 10 МЛН
Curso Python 3 desde cero #6 | Operadores aritméticos en Python
17:47
La Geekipedia De Ernesto
Рет қаралды 383 М.
Tu primera red neuronal en Python y Tensorflow
16:25
Ringa Tech
Рет қаралды 1,1 МЛН
CURSO Fundamentos de Funciones en PYTHON (curso de programación)
2:42:44
La Geekipedia De Ernesto
Рет қаралды 29 М.
10 Important Python Concepts In 20 Minutes
18:49
Indently
Рет қаралды 368 М.
Aprende Python - Curso de Python desde Cero
4:36:43
freeCodeCamp Español
Рет қаралды 1,5 МЛН
Что-что Мурсдей говорит? 💭 #симбочка #симба #мурсдей
00:19