Introduces 2 equipos con sus respectivos sets en la misma línea separados por espacios:
Código:
equipoA 1 equipoB 2
Código:
equipoB 4 equipoC 3
Código:
equipoD 2 equipoA 3
El problema es que al introducir ese último equipo, me salta un error el cuál no entiendo:
Código:
Traceback (most recent call last):
File "(Ruta del archivo)", line 16, in <module>
diccionario[partido[2]] = diccionario[partido[0]] + 3
KeyError: 'equipoD'
Este es el código completo:
Código
[code]diccionario = {} puntos1 = 0 puntos2 = 0 parar = "" while parar != "FIN": partido = list(map(str, input("Introduzca un partido: ").split())) if partido[0] != "FIN": pal1 = partido[0] equipo1 = partido[0] puntos1 = partido[1] equipo2 = partido[2] puntos2 = partido[3] if puntos1 > puntos2 and partido[0] in diccionario: diccionario[partido[0]] = diccionario[partido[0]] + 3 elif puntos1 < puntos2 and partido[2] in diccionario: diccionario[partido[2]] = diccionario[partido[0]] + 3 elif puntos1 > puntos2: diccionario[partido[0]] = 3 diccionario[partido[2]] = 0 elif puntos2 > puntos1: diccionario[partido[2]] = 3 diccionario[partido[0]] = 0 else: print("No puede haber empates en un partido de pádel.") parar = partido[0] else: break print("Equipo ganador: " + max(diccionario, key=diccionario.get)) print("Resultados de la liga:") print(diccionario)
Sin embargo, hay a veces que el programa sí funciona si, por ejemplo, introduzco esto:
Código:
madrid 3 barcelona 2
betis 4 getafe 5
madrid 4 getafe 3
FIN
Equipo ganador: madrid
Resultados de la liga:
{'madrid': 6, 'barcelona': 0, 'getafe': 3, 'betis': 0}
Además de esto, tengo otro error, y es que la idea del programa es que si un equipo gana un partido, gana 3 puntos como expliqué antes, pero si pierde, no gana ni pierde puntos, pero mi programa cuando un equipo pierde un partido, le establece los puntos a 0, en vez de simplemente dejarle su puntuación normal.
¿Alguien entiende por qué tengo ambos errores? ¡Muchas gracias por la ayuda![/code]