# data[].attributes.headline
ejercicio 1 Guía programación - paralelo C2

# data[].attributes.subject
ejercicio 1 Guía programación - paralelo C2

# data[].attributes.attachment_link.readable_text
'''

                            Online Python Compiler.
                Code, Compile, Run and Debug python program online.
Write your code in this editor and press "Run" button to execute it.

'''
tabla = int(input("Ingrese un n��mero del 1 al 9 para la tabla de multiplicar: "))
cantidad = int(input("Ingrese la cantidad de n��meros a mostrar: "))

for i in range(1, cantidad + 1):
    print(f"{tabla} x {i} = {tabla * i}")
    
while True:
    tabla = int(input("Ingrese un n��mero del 1 al 9 para la tabla de multiplicar: "))
    if 1 <= tabla <= 9:
        break
    print("El n��mero debe estar entre 1 y 9.")

while True:
    cantidad = int(input("Ingrese la cantidad de n��meros a mostrar (positiva): "))
    if cantidad > 0:
        break
    print("La cantidad debe ser un n��mero positivo.")

for i in range(1, cantidad + 1):
    print(f"{tabla} x {i} = {tabla * i}")

# data[].attributes.attachment_link.readable_text
# -*- coding: utf-8 -*-
"""
Editor de Spyder

Este es un archivo temporal.
"""
# 1. ��Qu�� ocurrir�� si se ingresa un texto en nombre?
# R:No hay problema, ya que input devuelve siempre una cadena.

# 2. ��Es correcto el tipo de dato ingresado en edad? Fundamente."
# R:Depende, Si la edad se usar�� para c��lculos, debe convertirse a int o float. Si solo se mostrar��, en str es v��lido.

# 3. Interprete y explique con sus palabras el c��digo asumiendo que se corrige el tipo de dato en nombre
#��Existe alguna anomal��a durante la ejecuci��n del c��digo? En caso deencontrar alguna sugiera una soluci��n

# Este c��digo tiene dos problemas principales:

#R:Conversi��n innecesaria y err��nea de texto a entero
#R:Falta de actualizaci��n de la condici��n del bucle, lo que genera un bucle infinito.

#Soluciones:
#1.usar simplemente input sin conversi��n, ya que los nombres son cadenas de texto.
#2.agregar nombre = input (ingrese el nombre) al final del bucle para actualizar la condici��n.


#Correcion del Codigo:


cantidadPersonas = 0

nombre = input("Ingrese un nombre: ")

while nombre != "FIN":
    edad = float(input("Ingrese la edad: "))
    cantidadPersonas += 1
    nombre = input("Ingrese un nombre: ")

print(f"Se ingresaron datos de {cantidadPersonas} personas.")








# data[].attributes.attachment_link.readable_text
# -*- coding: utf-8 -*-
"""
Created on Thu Apr 24 00:58:02 2025

@author: Usuario
"""
# Eleg�� el ciclo while porque aqu�� no se especifica exactamente cu��ntas iteraciones hay,
# sino una condici��n basada en el valor de la variable. El ciclo while es ideal para este caso.
# Uso for porque sabemos exactamente desde qu�� n��mero empieza, hasta cu��l debe llegar,
# y con qu�� incremento/decremento. Ideal cuando la secuencia est�� bien definida.

for numero in range(100, -51, -5):
    print(numero)


numero = 100

while numero >= -50:
    print(numero)
    numero -= 5
    
for numero in range(100, -51, -5):
    print(numero)












# data[].attributes.attachment_link.readable_text
# -*- coding: utf-8 -*-
"""
Created on Thu Apr 24 01:07:57 2025

@author: Usuario
"""
#Caso 1: asuma que los datos ingresados son siempre correctos.

while True:
    nombre = input("Ingrese su nombre (ingrese '-' para salir): ")
    if nombre == "-":
        break

    aceleracion = float(input("Ingrese la aceleraci��n (m/s^2): "))
    masa = float(input("Ingrese la masa (kg): "))
    fuerza = masa * aceleracion

    if fuerza < 50 or fuerza > 150:
        print(f"Fuerza fuera del rango permitido: {fuerza} N")
    else:
        print(f"Fuerza dentro del rango permitido: {fuerza} N")

#Caso 2: valide que la masa sea mayor a 0.

while True:
    nombre = input("Ingrese su nombre (ingrese '-' para salir): ")
    if nombre == "-":
        break

    aceleracion = float(input("Ingrese la aceleraci��n (m/s^2): "))
    while True:
        masa = float(input("Ingrese la masa (kg): "))
        if masa > 0:
            break
        print("La masa debe ser mayor a 0.")

    fuerza = masa * aceleracion

    if fuerza < 50 or fuerza > 150:
        print(f"Fuerza fuera del rango permitido: {fuerza} N")
    else:
        print(f"Fuerza dentro del rango permitido: {fuerza} N")

# data[].attributes.attachment_link.readable_text
1. Tipos de ciclos vistos en clases:
- for:se utiliza cuando se conoce de antemano la cantidad de iteraciones que se desea realizar. 
Por ejemplo, recorrer los elementos de una lista o ejecutar un bloque de cÃ³digo un nÃºmero determinado de veces.
- while:se utiliza cuando no se conoce cuÃ¡ntas veces se debe repetir una acciÃ³n, 
y la condiciÃ³n depende del resultado de alguna operaciÃ³n lÃ³gica.
Un ciclo 'for' puede representarse con un 'while' y viceversa. Por ejemplo, un 'for i in range(10)' puede escribirse como:
    i = 0
    while i < 10:
        ...
        i += 1
2. Diferencia entre varios (if) seguidos y (if â elif):
- Con varios 'if' seguidos, todas las condiciones se evalÃºan, incluso si una anterior ya fue verdadera.
- Con 'if â elif', se evalÃºa cada condiciÃ³n solo si la anterior fue falsa. Apenas una condiciÃ³n se cumple.
numero = int(input("ingrese un valor"))
R: esto convierte el valor ingresado (que es string) a entero. se lanza un error si el input no es un nÃºmero vÃ¡lido.
decimal = float(422134)
R:esto convierte el nÃºmero entero al tipo float: 422134.0
valor = int(2306.85)
R: convierte el nÃºmero decimal a entero, truncando (sin redondear): 2306
texto = str(valor)
R: convierte el valor numÃ©rico (por ejemplo: 51) a un texto: "51"

# data[].attributes.attachment_link.readable_text
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

#programa principal

import temperaturas as t

semana = ["lunes","martes","miercoles","jueves","viernes","sabado","domingo"]
temperaturas = []


t.registrar_temperaturas(temperaturas, semana)
print(temperaturas)

promedio_temperaturas = t.promedio_temperaturas(temperaturas)
print(f"El promedio de las temperaturas es {promedio_temperaturas}")

mayor_temperatura,mayor_dia = t.mayor_temperatura(temperaturas, semana)
print(f"El d��a {mayor_dia} se registro la mayor temperatura con {mayor_temperatura} ��C")

cantidad = t.dias_bajo_cero(temperaturas)
print(f"La cantidad de dias registrados con temperaturas bajo 0 son {cantidad}")

# data[].attributes.attachment_link.readable_text
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

    
#registrar_temperaturas(): Permite ingresar las temperaturas en una lista.  

def registrar_temperaturas(t,s):
    for i in range(7):
        temperatura = float(input(f"Ingrese la temperatura del {s[i]} ��C:"))
        t.append(temperatura)
    
#promedio_temperaturas(): Calcula y retorna el promedio de las temperaturas.

def promedio_temperaturas(t):
    promedio = sum(t)/len(t)
    return promedio

#mayor_temperatura(): Retorna la temperatura m��s alta y el d��a en que ocurri�� (asuma que es solo una)

def mayor_temperatura(t,s):
    temperatura_mayor = max(t)
    pos_mayor = t.index(temperatura_mayor) 
    dia_mayor = s[pos_mayor]
    return temperatura_mayor,dia_mayor
    
#dias_bajo_cero(): Retorna cu��ntos d��as estuvieron bajo 0��C.

def dias_bajo_cero(t):
    contador = 0
    for i in range(len(t)):
        if t[i] < 0:
            contador += 1
    return contador
    
    
    
    
    
    
    
    

        

    
        
    
    


    

# data[].attributes.attachment_link.readable_text
# -*- coding: utf-8 -*-
"""
Created on Wed May 28 19:56:39 2025

@author: Matriculas
"""
# fuerzas.py
# registrar las fuerzas de la lista 
def registrar_fuerzas():
    fuerzas = []
    n = int(input("��Cuantas fuerzas deseas ingresar?: "))
    for i in range(n):
        f = float(input(f"Ingrese la fuerza {i + 1}: "))
        fuerzas.append(f)
    return fuerzas

# Calcular el equilibrio est��tico (si la suma de las fuerzas es 0).

def equilibrio_estatico (fuerzas):
    return sum(fuerzas) == 0

# Determinar la fuerza m��xima y m��nima.

def max_min_fuerzas (fuerzas):
    return max(fuerzas), min(fuerzas) 

#Crear una nueva lista con las fuerzas que superen un umbral ingresado por el usuario.

def filtrar_fuerzas(fuerzas, umbral):
    return [f for f in fuerzas if f > umbral]

fuerzas = registrar_fuerzas()
umbral = float(input("Ingrese el valor del umbral: "))

fuerzas_filtradas = filtrar_fuerzas(fuerzas, umbral)

print("Fuerzas mayores al umbral:")
print(fuerzas_filtradas)



# data[].attributes.attachment_link.readable_text
nombres = []
especializaciones = []
edades = []

especializaciones_validas = ["Oncolog��a", "Cirujano", "Medico General", "Fisioterapia"]

while True:
    nombre = input("Ingrese nombre del veterinario (o FIN para terminar): ")
    if nombre.upper() == "FIN":
        break

    especializacion = input("Ingrese especializaci��n (Oncolog��a, Cirujano, Medico General, Fisioterapia): ")
    while especializacion not in especializaciones_validas:
        print("Especializaci��n no v��lida.")
        especializacion = input("Ingrese especializaci��n v��lida: ")

    edad = int(input("Ingrese edad (>20): "))
    while edad <= 20:
        print("Edad no v��lida.")
        edad = int(input("Ingrese edad (>20): "))

    nombres.append(nombre)
    especializaciones.append(especializacion)
    edades.append(edad)


total = len(especializaciones)
oncologia = especializaciones.count("Oncolog��a")
porcentaje_oncologia = (oncologia / total) * 100 if total > 0 else 0


suma_edad_cirujanos = 0
cantidad_cirujanos = 0
for i in range(total):
    if especializaciones[i] == "Cirujano":
        suma_edad_cirujanos += edades[i]
        cantidad_cirujanos += 1

promedio_cirujanos = suma_edad_cirujanos / cantidad_cirujanos if cantidad_cirujanos > 0 else 0


edad_min = min(edades)
indice_joven = edades.index(edad_min)
nombre_joven = nombres[indice_joven]


mayor_edad = -1
indice_mayor_medico = -1
for i in range(total):
    if especializaciones[i] == "Medico General" and edades[i] > mayor_edad:
        mayor_edad = edades[i]
        indice_mayor_medico = i


print("\n--- Resultados ---")
print(f"Porcentaje de veterinarios en Oncolog��a: {porcentaje_oncologia:.2f}%")
print(f"Promedio de edad de los Cirujanos: {promedio_cirujanos:.2f}")
print(f"Veterinario m��s joven: {nombre_joven}, Edad: {edad_min}")

if indice_mayor_medico != -1:
    print(f"M��dico general m��s viejo: {nombres[indice_mayor_medico]}, Especializaci��n: {especializaciones[indice_mayor_medico]}, Edad: {edades[indice_mayor_medico]}")
else:
    print("No hay m��dicos generales registrados.")

# data[].attributes.attachment_link.readable_text
# Listas vac��as
ruts = []
nombres = []
asignaturas = []
a��os = []
carreras = []

while True:
    print("\n*** MEN�� ***")
    print("1. Leer archivo")
    print("2. Buscar por RUT")
    print("3. Mostrar estad��sticas")
    print("4. Guardar estad��sticas")
    print("5. Salir")

    opcion = input("Elija opci��n: ")

    if opcion == "1":
        ruts = []
        nombres = []
        asignaturas = []
        a��os = []
        carreras = []
        archivo = open("estudiantes.txt", "r")
        for linea in archivo:
            datos = linea.strip().split(",")
            ruts.append(datos[0])
            nombres.append(datos[1])
            asignaturas.append(int(datos[2]))
            a��os.append(int(datos[3]))
            carreras.append(datos[4])
        archivo.close()
        print("Archivo cargado.")

    elif opcion == "2":
        rut = input("Ingrese RUT a buscar: ")
        if rut in ruts:
            i = ruts.index(rut)
            print(nombres[i], "-", ruts[i], "-", asignaturas[i], "-", a��os[i], "-", carreras[i])
        else:
            print("No encontrado.")

    elif opcion == "3":
        total = len(ruts)
        if total == 0:
            print("No hay datos.")
        else:
            menor_a��o = min(a��os)
            i_menor = a��os.index(menor_a��o)
            nombre_menor = nombres[i_menor]

            cantidad_icci = carreras.count("ICCI")
            pct_icci = (cantidad_icci / total) * 100

            mas_6 = 0
            suma_asig = 0
            for a in asignaturas:
                suma_asig += a
                if a > 6:
                    mas_6 += 1

            pct_mas_6 = (mas_6 / total) * 100
            promedio_asig = suma_asig / total

            print("--- ESTAD��STICAS ---")
            print("Cantidad:", total)
            print("Estudiante m��s antiguo:", nombre_menor)
            print("Porcentaje en ICCI:", round(pct_icci, 2), "%")
            print("Porcentaje con >6 asignaturas:", round(pct_mas_6, 2), "%")
            print("Promedio asignaturas:", round(promedio_asig, 2))

    elif opcion == "4":
        archivo = open("estadisticas.txt", "w")
        archivo.write("--- ESTAD��STICAS ---\n")
        archivo.write("Cantidad: " + str(len(ruts)) + "\n")
        if len(a��os) > 0:
            menor = min(a��os)
            archivo.write("Estudiante m��s antiguo: " + nombres[a��os.index(menor)] + "\n")
        archivo.close()
        print("Guardado en archivo.")

    elif opcion == "5":
        print("Chao.")
        break

# data[].attributes.headline
ejercicio 3 guia 3 programacion (Codigo)

# data[].attributes.subject
ejercicio 3 guia 3 programacion (Codigo)

# data[].attributes.attachment_link.readable_text
nombres = []
ganadas = []

try:
    archivo = open("blackjack.txt", "r")
    lineas = archivo.readlines()
    archivo.close()

    nuevas_lineas = []

    for linea in lineas:
        datos = linea.strip().split(";")
        if len(datos) < 4:
            continue  

        nom1 = datos[0]
        pun1 = int(datos[1])
        nom2 = datos[2]
        pun2 = int(datos[3])

        
        if pun1 > pun2:
            ganador = nom1
        elif pun2 > pun1:
            ganador = nom2
        else:
            ganador = "Empate"

        
        if ganador != "Empate":
            if ganador in nombres:
                i = nombres.index(ganador)
                ganadas[i] += 1
            else:
                nombres.append(ganador)
                ganadas.append(1)

        nueva_linea = linea.strip() + ";" + ganador
        nuevas_lineas.append(nueva_linea)

    
    archivo = open("blackjack.txt", "w")
    for linea in nuevas_lineas:
        archivo.write(linea + "\n")
    archivo.close()

    
    archivo = open("infoBlackjack.txt", "w")
    archivo.write("** Estad��sticas **\n")

    if len(ganadas) > 0:
        mayor = max(ganadas)
        i_mayor = ganadas.index(mayor)
        archivo.write("- Nombre que ha ganado m��s partidas: " + nombres[i_mayor] + "\n")

        
        archivo.write("- Nombre con 0 victorias: (No registrado)\n")

       
        ganaron_mas_5 = 0
        for g in ganadas:
            if g > 5:
                ganaron_mas_5 += 1
        porcentaje = (ganaron_mas_5 / len(ganadas)) * 100
        archivo.write("- Porcentaje con m��s de 5 victorias: " + str(round(porcentaje, 2)) + "%\n")

        
        promedio = sum(ganadas) / len(ganadas)
        archivo.write("- Promedio de partidas ganadas: " + str(round(promedio, 2)) + "\n")
    else:
        archivo.write("No hubo ganadores.\n")

    archivo.close()
    print("��Listo! Archivos actualizados correctamente.")

except Exception as error:
    print("Error al procesar:", error)

# data[].attributes.headline
ejercicio 3 guia 3 programacion (TXT II)

# data[].attributes.subject
ejercicio 3 guia 3 programacion (TXT II)

# data[].attributes.attachment_link.readable_text
** Estadísticas **
- Nombre que ha ganado más partidas: Isidora
- Nombre con 0 victorias: (No registrado)
- Porcentaje con más de 5 victorias: 0.0%
- Promedio de partidas ganadas: 1.68

# data[].attributes.attachment_link.readable_text
def registrar_resistencias():
    resistencias = []
    n = int(input("��Cu��ntas resistencias desea ingresar? "))
    for i in range(n):
        r = float(input("Ingrese resistencia " + str(i+1) + ": "))
        resistencias.append(r)
    return resistencias

def clasificar_resistencias(lista):
    bajas = 0
    medias = 0
    altas = 0
    for r in lista:
        if r < 100:
            bajas += 1
        elif r <= 1000:
            medias += 1
        else:
            altas += 1
    print("Bajas:", bajas)
    print("Medias:", medias)
    print("Altas:", altas)

def promedio_resistencias(lista):
    promedio = sum(lista) / len(lista)
    return promedio

# data[].attributes.attachment_link.readable_text
archivo = open("velocidades.txt", "r")
velocidades = []
horarios = []

for linea in archivo:
    datos = linea.strip().split(";")
    horarios.append(datos[0])
    velocidades.append(int(datos[1]))

archivo.close()


promedio = sum(velocidades) / len(velocidades)
print("Velocidad promedio:", promedio)


print("Velocidades sobre el promedio:")
for i in range(len(velocidades)):
    if velocidades[i] > promedio:
        print(horarios[i], "-", velocidades[i])


limite = int(input("Ingrese l��mite de velocidad: "))
sobre_limite = 0
for v in velocidades:
    if v > limite:
        sobre_limite += 1
porcentaje = (sobre_limite / len(velocidades)) * 100
print("Porcentaje sobre el l��mite:", round(porcentaje, 2), "%")


print("Velocidad m��nima:", min(velocidades))
print("Velocidad m��xima:", max(velocidades))

# data[].attributes.attachment_link.readable_text
temperaturas = []
for i in range(7):
    temp = float(input("Ingrese temperatura del d��a " + str(i + 1) + ": "))
    temperaturas.append(temp)


suma = sum(temperaturas)
promedio = suma / len(temperaturas)


mayor = max(temperaturas)
dia_mayor = temperaturas.index(mayor) + 1  


bajo_cero = 0
for t in temperaturas:
    if t < 0:
        bajo_cero += 1


print("\n--- RESULTADOS ---")
print("Promedio de temperaturas:", round(promedio, 2))
print("Temperatura m��s alta:", mayor, "en el d��a", dia_mayor)
print("D��as bajo 0��C:", bajo_cero)

# data[].attributes.attachment_link.readable_text
1.Comprensión del problema
Se debe registrar la temperatura diaria (en °C) de una ciudad durante una semana (7 días).
Luego se debe calcular:
- El promedio semanal de temperaturas.
- La temperatura más alta y el día en que ocurrió.
- Cuántos días estuvieron bajo 0°C.

Entradas: 7 temperaturas (float), una por día.
Procesamiento:
  - Calcular promedio con suma / cantidad.
  - Buscar la mayor temperatura con max() y obtener su índice (día).
  - Contar cuántas son menores a 0.
Salidas:
  - Promedio de temperatura.
  - Temperatura máxima y el día.
  - Cantidad de días bajo cero.

2.Diseño del programa
1. Crear una lista vacía de temperaturas.
2. Repetir 7 veces:
   - Pedir la temperatura
   - Agregarla a la lista
3. Calcular promedio con sum(lista) / 7
4. Buscar el valor máximo y su índice
5. Contar cuántos valores son menores a 0
6. Mostrar los resultados por pantalla.

Justificación:
El uso de una lista puede simplificar el almacenamiento

3.Código Python
Ver el archivo (temperaturas_analisis.py)

4.Reflexión final
¿Cómo dividimos el problema?
- En tareas simples como el ingreso, promedio, máximo, conteo y salida.

¿Qué aspectos del diseño facilitaron la implementación?
- Separar pasos claramente antes de escribir el código.

¿Qué aprendimos al aplicar esta metodología?
- Que diseñar antes de programar permite resolver más fácil.

# data[].attributes.attachment_link.readable_text
def cargar_datos():
    datos = []
    with open("celular.txt", "r") as archivo:
        for linea in archivo:
            modelo, pais, cantidad = linea.strip().split(",")
            datos.append((modelo, pais, int(cantidad)))
    return datos

def procesar_datos(datos):
    ventas_por_pais = {}
    modelos_por_pais = {}

    for modelo, pais, cantidad in datos:
        ventas_por_pais[pais] = ventas_por_pais.get(pais, 0) + cantidad
        if pais not in modelos_por_pais:
            modelos_por_pais[pais] = set()
        modelos_por_pais[pais].add(modelo)

    print("Ventas por pa��s:")
    for pais, total in ventas_por_pais.items():
        print(f"{pais}: {total} unidades")

    mayor_pais = max(ventas_por_pais, key=ventas_por_pais.get)
    print(f"\n Pa��s con m��s ventas: {mayor_pais}")

    print("\n Modelos vendidos por pa��s:")
    for pais, modelos in modelos_por_pais.items():
        print(f"{pais}: {', '.join(modelos)}")


datos = cargar_datos()
procesar_datos(datos)

# data[].attributes.attachment_link.readable_text
# -*- coding: utf-8 -*-

import numpy as np

listaCiudades = []
listaVotacion = ["apruebo", "rechazo", "nulo"]

listaVotacionCiudades = []

listaVotacionTipos = []

#Sobredimensionar las filas y las columnas siempre son 3
matriz = np.zeros([10,3])

def leerDatosTeclado():
    
    ciudad = input("Ingrese la ciudad de votacion(FIN para terminar)")
    
    while ciudad != "FIN":
        
        while True:
            
            votacion = input("El voto es ��apruebo, rechazo o nulo?")
            
            if votacion != "apruebo" and votacion != "rechazo" and votacion != "nulo":
                
                print("Error, ingrese una votacion valida.")
                continue
            else:
                break
        
            
        if ciudad not in listaCiudades:
            listaCiudades.append(ciudad)
        
        if votacion not in listaVotacion:
            listaVotacion.append(votacion)
            
        posicionCiudad = listaCiudades.index(ciudad)
        posicionVotacion = listaVotacion.index(votacion)
        
        matriz[posicionCiudad][posicionVotacion] += 1
        
        ciudad = input("Ingrese la ciudad de votacion(FIN para terminar)")

def estadistica1():
    
    for i in range(len(listaCiudades)):
        
        cantidad = 0
        for j in range(len(listaVotacion)):
            
            cantidad += matriz[i][j]
            
        listaVotacionCiudades.append(cantidad)
        
    
    mayor = max(listaVotacionCiudades)
    posicionMayor = listaVotacionCiudades.index(mayor)
    
    ciudad = listaCiudades[posicionMayor]
    
    print("La ciudad con mas votos en el pais fue " + ciudad + " con " + str(mayor) + " votos")
        
def estadistica2():
    
    for i in range(len(listaVotacion)):
        
        cantidad = 0
        for j in range(len(listaCiudades)):
            
            cantidad += matriz[j][i]

        listaVotacionTipos.append(cantidad)
        
    mayor = max(listaVotacionTipos)
    posicionMayor = listaVotacionTipos.index(mayor)
    
    votacion = listaVotacion[posicionMayor]
        
    print("La votacion con mas votos en el pais fue " + votacion + " con " + str(mayor) + " votos")

def estadistica3():

    suma = 0
    
    total = len(listaCiudades) * len(listaVotacion)
    
    for i in range(len(listaCiudades)):
        
        for j in range(len(listaVotacion)):
            
            suma += matriz[i][j]
            
    promedio = suma/total
    
    for i in range(len(listaVotacionTipos)):
        
        if listaVotacionTipos[i] > promedio:
            
            print(listaVotacion[i] + " fue elegido mas veces que el promedio")
            
  
def estadistica4():
    
    total = sum(listaVotacionCiudades)
    
    for i in range(len(listaVotacionCiudades)):
        
        porcentaje = (listaVotacionCiudades[i]/total)*100
        
        print("El porcentaje de votos en la ciudad de " + str(listaCiudades[i]) + " es " + str(porcentaje) + "%")
        

def estadistica5():
    
    ciudad = ""
    
    while True:
        
        ciudad = input("Ingrese una ciudad")
        
        if ciudad in listaCiudades:
            break
        else:
            print("La ciudad no existe, ingresela nuevamente")
            continue
        
    votacion = input("Ingrese un tipo de votacion")
    
    suma = 0
    
    total = len(listaCiudades) * len(listaVotacion)
    
    for i in range(len(listaCiudades)):
        
        for j in range(len(listaVotacion)):
            
            suma += matriz[i][j]
            
    promedio = suma/total
    
    posicionCiudad = listaCiudades.index(ciudad)
    posicionVotacion = listaVotacion.index(votacion)
    
    dato = matriz[posicionCiudad][posicionVotacion]
    
    if dato > promedio:
        print("La cantidad de votos ingresada supera al promedio")
    elif dato < promedio:
        print("La cantidad ingresada es menor al promedio")
    
leerDatosTeclado()
estadistica1()
estadistica2()
estadistica3()
estadistica4()
estadistica5()
