indice:uba:ingenieria:uba-xxi:pensamiento-computacional:guias-y-resueltos:sesion-4

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
indice:uba:ingenieria:uba-xxi:pensamiento-computacional:guias-y-resueltos:sesion-4 [2025/04/20 11:34] – borrado - editor externo (Fecha desconocida) 127.0.0.1indice:uba:ingenieria:uba-xxi:pensamiento-computacional:guias-y-resueltos:sesion-4 [2025/04/20 11:35] (actual) upadmin
Línea 1: Línea 1:
 +====== Sesión 4 ======
  
 +===== Guías =====
 +
 +{{ indice:uba:ingenieria:uba-xxi:pensamiento-computacional:sesion-4:guia_de_ejercicios_n_4_-_parte_1.docx.pdf |Guía de Ejercicios Nro 4 - Parte 1}}
 +
 +===== Resueltos =====
 +
 +<file python resueltos_guia_4_1ra_parte.py>
 +#Ejercicio 1
 +""" Crear una lista con los números del 1 al 10. Acceder con el índice a la posición que contiene el número
 +5, e imprimirlo por pantalla. Recordar que el índice de las listas empiezan con 0. """
 +
 +#alternativa 1
 +lista_numeros = []
 +for i in range(1,11):
 +    lista_numeros.append(i)
 +print(lista_numeros)
 +
 +#alternativa 2
 +lista_numeros_1 = list(range(1,11))
 +print(lista_numeros_1)
 +
 +print(lista_numeros_1[4]) #trae el 5 que esta en la posicion 4
 +print(lista_numeros_1.index(5)) #pregunta cual es la posicion del numero 5
 +
 +
 +#Ejercicio 2
 +""" Con la lista del punto anterior, usar la función len() para averiguar su longitud, e imprimirla. """
 +
 +longitud_lista = len(lista_numeros_1)
 +print(longitud_lista)
 +
 +
 +#Ejercicio 3
 +""" Crear una secuencia con números distintos, y luego devolver el elemento máximo y el mínimo. """
 +
 +lista_numeros_distintos = [1,5,9,15,29,56,105,-4,0,8,94]
 +
 +#Alternativa 1
 +if len(lista_numeros_distintos) > 0:
 +    numero_maximo = lista_numeros_distintos[0]
 +    for i in lista_numeros_distintos:
 +        if i > numero_maximo:
 +            numero_maximo = i
 +    print("El numero maximo es:", numero_maximo)
 +else:
 +    print("La lista esta vacia por lo que no tiene un numero maximo")
 +
 +if len(lista_numeros_distintos) > 0:
 +    numero_minimo = lista_numeros_distintos[0]
 +    for i in lista_numeros_distintos:
 +        if i < numero_minimo:
 +            numero_minimo = i
 +    print("El numero minimo es:", numero_minimo)
 +else:
 +    print("La lista esta vacia por lo que no tiene un numero minimo")
 +
 +#Alternativa 2
 +print(max(lista_numeros_distintos))
 +print(min(lista_numeros_distintos))
 +
 +
 +#Ejercicio 4
 +""" Ordenar la secuencia del ejercicio anterior, e imprimirla por pantalla. (ver funciones de listas) """
 +
 +lista_numeros_distintos.sort()
 +print(lista_numeros_distintos)
 +
 +
 +#Ejercicio 5
 +""" Crear una tupla que guarde tu nombre y tu edad. Luego, imprimir por pantalla tu edad, accediendo al
 +elemento de la tupla que corresponda. """
 +
 +nombre_y_edad = ("aleandro","21")
 +edad = nombre_y_edad[1]
 +print(edad)
 +
 +
 +#Ejercicio 6
 +""" Hacer una lista con 5 nombres, y realizar las siguientes actividades con la misma:
 +a. Cambiar el último elemento de la lista y cambiar el último nombre por “Juan”. Olvidándonos de
 +que sabemos que tiene 5 elementos, ¿Cómo podría saber cuál es el último elemento si no sé la
 +longitud?
 +b. Devolver el nombre que esté a dos posiciones del final. ¿Cómo hacemos para que nos funcione
 +para cualquier lista y no solo para la que tenga 5 elementos?
 +c. Recorrer la lista e imprimir cada nombre por pantalla.
 +d. Imprimir por pantalla la lista con 3 repeticiones, usar el operador repetición (*). """
 +
 +lista_nombre = ["daniela", "paula", "rosina", "carina", "sonia"]
 +print(lista_nombre)
 +
 +#a)
 +lista_nombre.pop()
 +print(lista_nombre)
 +
 +lista_nombre.append("juan")
 +print(lista_nombre)
 +
 +#b)
 +print(lista_nombre[-2])
 +
 +#c)
 +for n in lista_nombre:
 +    print(n)
 +
 +#d)
 +print(3 * lista_nombre)
 +
 +
 +#Ejercicio 7
 +""" Se pide ahora crear 3 tuplas como las del ejercicio 5, con un nombre y una edad. A continuación,
 +guardarlas en una lista. Pensar, ¿De que nos servirá guardar las tuplas en una lista en vez de tenerlas
 +por separado? """
 +
 +nombre_y_edad_persona1 = ("aleandro","21")
 +nombre_y_edad_persona2 = ("daniela","35")
 +nombre_y_edad_persona3 = ("patricia","68")
 +lista_personas = []
 +lista_personas.append(nombre_y_edad_persona1)
 +lista_personas.append(nombre_y_edad_persona2)
 +lista_personas.append(nombre_y_edad_persona3)
 +print(lista_personas)
 +# serviria por ejemplo para construir matrices.
 +
 +
 +#Ejercicio 8
 +""" Se quiere guardar información de los siguientes países: Francia, Argentina, Japón, Alemania, Perú.
 +a. Crear una tupla para cada país que contenga su nombre, su capital y el continente donde se
 +encuentra.
 +b. Guardar las tuplas en una lista.
 +c. Hacer una función que reciba por parámetros la lista, e imprima la información de cada país
 +con el siguiente formato:
 +    País: <nombre>
 +    Capital: <capital>
 +    Continente: <continente>
 +    Por ejemplo:
 +        País: Japón
 +        Capital: Tokio
 +        Continente: Asia """
 +
 +#a)
 +datos_francia = ("Francia","Paris","Europa")
 +datos_argentina = ("Argentina","Buenos Aires","America")
 +datos_japon = ("Japon","Tokio","Asia")
 +datos_alemania = ("Alemania","Berlin","Europa")
 +datos_peru = ("Peru","Lima","America")
 +
 +#b)
 +#alternativa 1
 +lista_paises = []
 +lista_paises.append(datos_francia)
 +lista_paises.append(datos_argentina)
 +lista_paises.append(datos_japon)
 +lista_paises.append(datos_alemania)
 +lista_paises.append(datos_peru)
 +
 +#alternativa 2
 +lista_paises_1 = [datos_francia, datos_argentina, datos_japon, datos_alemania, datos_peru] 
 +
 +#c)
 +#alternativa 1
 +def inf_paises(lista):
 +    for i in lista:
 +        p,c,x = i
 +        print(f"Pais: {p}")
 +        print(f"Capital: {c}")
 +        print(f"Continente: {x}")
 +        print("-"*10)
 +inf_paises(lista_paises)
 +
 +#alternativa 2
 +def inf_paises_2(lista):
 +    for i in lista:
 +        print(f"Pais: {i[0]}")
 +        print(f"Capital: {i[1]}")
 +        print(f"Continente: {i[2]}")
 +        print("-"*10)
 +inf_paises_2(lista_paises)
 +
 +
 +#Ejercicio 9
 +""" Una librería tiene un sistema que guarda los nombres de todos los libros que tienen en una lista de la
 +siguiente forma: [“El principito”, “It”, “Sherlock Holmes”...]. Se quiere saber cuántos libros repetidos
 +tienen. Hacer código que imprima para cada título, cuántos ejemplares hay.
 +Aclaración: No se sabe la cantidad de elementos que tiene la lista, la lista nombrada es solo un ejemplo. """
 +
 +lista_libros = ["El principito", "It", "Sherlock Holmes","It","It","El principito"]
 +
 +libros_invertariados = []
 +for i in lista_libros:
 +    if i in libros_invertariados:
 +        continue
 +    else:
 +        libros_invertariados.append(i)        
 +        cantidad_ejemplares = lista_libros.count(i)
 +        print(f"{i}: {cantidad_ejemplares}"       
 +  
 +
 +#Ejercicio 10
 +""" Crear una lista que contenga los números del 1 al 10, luego recorrerla y guardar en otra lista esos
 +números elevados al cuadrado. """
 +
 +lista_num = list(range(1,11))
 +print("Lista: ", lista_num)
 +
 +#alternativa 1
 +lista_num_al_cuadrado = []
 +
 +for i in lista_num:
 +    cuadrado=i**2
 +    lista_num_al_cuadrado.append(cuadrado) 
 +
 +print("Nueva lista: ", lista_num_al_cuadrado)
 +
 +#alternativa 2
 +def cuadrado_1(numero):
 +    return numero ** 2
 +
 +lista_num_2 = list(range(1,11))
 +print("Lista: ", lista_num_2)
 +
 +lista_num_al_cuadrado_2 = list(map(cuadrado_1, lista_num_2))
 +print("Nueva lista: ", lista_num_al_cuadrado_2)
 +
 +
 +#Ejercicio 11
 +""" Se tiene la siguiente lista de palabras: [“entender”, “pueden”, “humanos”, “los”, “que”, “código”,
 +“escriben”, ”programadores”, “buenos”, “Los”, “entiende.”, “computadora”, “una”, “que”, “código”,
 +“escribe”, “tonto”, “Cualquier”]. Hacer una función que reciba una lista, y devuelva un string uniendo
 +las palabras desde el final de la lista hasta el principio con un “ ” (espacio) entre cada una, para formar
 +la frase. (ver funciones de listas y strings). """
 +
 +palabras = ["entender", "pueden", "humanos", "los", "que", "código",
 +"escriben", "programadores", "buenos", "Los", "entiende.", "computadora", "una", "que", "código",
 +"escribe", "tonto", "Cualquier"]
 +
 +#alternativa 1
 +def unir_palabras(lista):
 +    oracion = ""
 +    for i in lista:
 +        oracion = i + " " + oracion
 +    return oracion
 +print(unir_palabras(palabras))
 +
 +#alternativa 2
 +def unir_palabras_1(lista):
 +    lista.reverse()
 +    oracion_1 = " ".join(lista)
 +    return oracion_1
 +
 +print(unir_palabras_1(palabras))
 +
 +#Ejercicio 12
 +""" Se quiere hacer un sistema en la facultad para que un alumno pueda ir guardando las materias que va
 +haciendo. Para eso, crear una función que le pregunte al usuario la materia que quiere almacenar, e ir
 +guardando la información en una lista hasta que ingrese una ‘X’. ¿Qué funciones de listas no permiten
 +insertar en una lista? """
 +
 +lista_materias = []
 +materia = 1
 +while materia != "x":
 +    materia = input("Ingrese la materia hecha o presione 'x' para terminar: ")
 +    if materia != "x":
 +        lista_materias.append(materia)
 +
 +print(lista_materias)
 +
 +
 +#Ejercicio 13
 +""" Se tiene un ticket de supermercado que se puede representar como una lista de tuplas (producto,
 +precio).
 +a. Hacer una función que reciba la lista, calcule y devuelva el total que hay que pagar.
 +b. Ahora se tienen dos tickets. Juntar ambos y volver a calcular el total.
 +Un ejemplo de lista puede ser: [(“Detergente”, 123), (“Jabón Líquido”, 456)] y nos tendría que devolver
 +579. (No copien y peguen la lista de la guía, porque hay caracteres que no los va a reconocer el editor
 +de texto). """
 +
 +#a)
 +def calcular_total_ticket(ticket):
 +    total = 0
 +    for i in ticket:
 +        total += i[1]
 +    return total
 +
 +#b)
 +ticket1 = [("harina",10) , ("aceite",15) , ("pepsi",55)]
 +ticket2 = [("papa",1) , ("tomates",2) , ("yerba",3)]
 +
 +#alternativa 1
 +total_ticket1 = calcular_total_ticket(ticket1)
 +total_ticket2 = calcular_total_ticket(ticket2)
 +total_tickets = total_ticket1 + total_ticket2
 +print(total_tickets)
 +
 +#alternativa 2
 +lista_tickets = [ticket1, ticket2]
 +
 +total_tickets_3 = 0
 +for i in lista_tickets:
 +    valor_ticket_individual = calcular_total_ticket(i)
 +    total_tickets_3 += valor_ticket_individual
 +
 +print(total_tickets_3)
 +</file>