Autor: Juan Pablo Fuentes
Tema clásico
Ejercicio Curriculum
Vamos a crear tres páginas:
Una página de contacto con nuestros datos de contacto y un mapa incrustado
Una página portfolio con una galería de imágenes de nuestros supuestos (o reales proyectos)
Una página de experiencia con todos los trabajos que hemos realizado.
Con lo que sabéis, hacedlas bonitas.
Con estas páginas haced un menú que vaya al menú hamburguesa
Después, cambiad el color de la parte izquierda por uno más agradable o, mejor, por un degradado elegante.
Haced otros cambios de css si lo consideráis oportuno.
Práctica Gutemberg
Intentad hacer una página lo más parecida a esta (sin el menú negro de arriba):
Podéis intentarlo por secciones individuales. Si queréis imágenes aquí podéis encontrar muchas: https://picsum.photos/
Como funciona la caché
Ejercicios repaso examen
# función a la que le pasamos una lista de números y nos devuelve una tupla # con el número de pares y el número de impares # contarParidad([1,2,3,4,5])->(2,3) (dos pares y tres impares) def contarParidad(lista): pares = 0 impares = 0 for numero in lista: if numero % 2 == 0: pares += 1 else: impares += 1 return (pares, impares) def contarParidad2(lista): pares = len([numero for numero in lista if numero % 2 == 0]) return (pares, len(lista) - pares) print(contarParidad([1, 2, 3, 4, 5])) print(contarParidad2([1, 2, 3, 4, 5])) concesionario = [{"marca": "Tesla", "tipo": "Electrico", "autonomía": 500, "precio": 40000}, {"marca": "Citroen", "tipo": "Gasolina", "autonomía": 2500, "precio": 10000}, {"marca": "Ford", "tipo": "Gasolina", "autonomía": 3500, "precio": 20000}, {"marca": "Ferrari", "tipo": "Gasolina", "autonomía": 5500, "precio": 120000}, {"marca": "Seat", "tipo": "Electrico", "autonomía": 700, "precio": 10000}, {"marca": "Skoda", "tipo": "Gasolina", "autonomía": 3500, "precio": 7000}, ] # Cread una función que nos devuelva la suma de precios del concesionario def sumaPrecios(concesionario): total=0 for coche in concesionario: total+=coche["precio"] return total def sumaPrecios2(concesionario): return sum([coche["precio"] for coche in concesionario]) print(sumaPrecios(concesionario)) print(sumaPrecios2(concesionario)) # Cread una función a la que le pasamos una cadena y una longitud y nos devuelve las cadenas # que superan esa longitud # masLargas("hola que tal vamos",3)->["hola","vamos"] def masLargas(cadena, longitud): palabras=cadena.split(" ") resultado=[] for palabra in palabras: if len(palabra)>longitud: resultado.append(palabra) return resultado def masLargas2(cadena, longitud): palabras=cadena.split(" ") return [palabra for palabra in palabras if len(palabra)>longitud] print(masLargas("hola que tal vamos",3)) print(masLargas2("hola que tal vamos",3))
Repaso examen tipo
# corregir código def factorial(numero): total = 1 while numero > 1: total *= numero numero -= 1 return total print(factorial(5)) # 120 5*4*3*2*1 def palabraMaslarga(cadena): palabras = cadena.split(" ") masLarga = palabras[0] # Aquí NO hay un error for palabra in palabras: if len(palabra) > len(masLarga): # Aquí hay un error (al revés) masLarga = palabra # Aquí hay un error return masLarga def numeroMayor(lista): mayor = lista[0] for numero in lista: if numero > mayor: # Aquí hay un error (al revés) mayor = numero # Aquí hay un error return mayor print(palabraMaslarga("En un lugar de la mancha de cuyo nombre no quiero acordarme")) print(numeroMayor([1, 2, 3, 7, 6, 5, 2])) print(numeroMayor([-5, -2, -17 - 3])) # Cread una función porcentajeIva que nos devuelva: # 0 si el producto es "primera necesidad" # 4 si es 'libro' o 'revista' # 10 si es 'pañales' # 21 en otros casos def porcentajeIva(producto): if producto == "primera necesidad": return 0 elif producto == "libro" or producto == "revista": return 4 elif producto == "pañales": return 10 else: return 21 print(porcentajeIva("primera necesidad")) print(porcentajeIva("libro")) print(porcentajeIva("revista")) print(porcentajeIva("pañales")) print(porcentajeIva("cacahuetes")) # define una función a la que le pasamos una cadena y nos dice la media de longitud # de las palabras de la cadena def mediaLongitud(cadena): palabras = cadena.split(" ") longitudTotal = 0 for palabra in palabras: longitudTotal += len(palabra) return longitudTotal / len(palabras) def mediaLongitud2(cadena): palabras = cadena.split(" ") longitudes = [len(palabra) for palabra in palabras] return sum(longitudes) / len(palabras) print(mediaLongitud("aa bbbb ccc")) print(mediaLongitud2("aa bbbb ccc")) # Una función números pares a la que le pasamos una lista de números y nos devuelve los pares def numerosPares(lista): resultado = [] for numero in lista: if numero % 2 == 0: resultado.append(numero) return resultado def numerosPares2(lista): return [numero for numero in lista if numero % 2 == 0] print(numerosPares([1, 2, 3, 4, 5, 6, 7, 8])) print(numerosPares2([1, 2, 3, 4, 5, 6, 7, 8])) clase = [{ "nombre": "Ana", "creditos": 15, "curso": "Python" }, { "nombre": "Iu", "creditos": 5, "curso": "Python" }, { "nombre": "Eva", "creditos": 25, "curso": "BBDD" }, { "nombre": "Pep", "creditos": 7, "curso": "BBDD" }, ] # Crea una función a la que le pasamos una clase y nos devuelve el total de créditos def totalCreditos(clase): total = 0 for alumno in clase: total += alumno['creditos'] return total def totalCreditos2(clase): total = sum([alumno['creditos'] for alumno in clase]) return total def totalCreditosCurso(clase, curso): total = 0 for alumno in clase: if alumno['curso'] == curso: total += alumno['creditos'] return total def totalCreditosCurso2(clase, curso): total = sum([alumno['creditos'] for alumno in clase if alumno['curso'] == curso]) return total print(totalCreditos(clase)) print(totalCreditos2(clase)) print(totalCreditosCurso(clase, "BBDD")) print(totalCreditosCurso2(clase, "BBDD")) # ordenar los alumnos por crédito def ordenCredito(clase): ordenados = sorted(clase, key=lambda x: x['creditos']) return ordenados def ordenarCredito(clase): ordenados = sorted([alumno['creditos'] for alumno in clase]) return ordenados def mayorCredito(clase): mayor = max(clase, key=lambda x: x['creditos']) return mayor def mayorCredito2(clase): mayor = max([alumno['creditos'] for alumno in clase]) return mayor print(ordenCredito(clase)) print(ordenarCredito(clase)) print(mayorCredito(clase)) print(mayorCredito2(clase)) # Cread una función a la que le pasamos una cadena y una letra y nos devueve una # lista con las palabras que tienen esa letra def palabrasConLetra(cadena, letra): palabras = cadena.split(" ") resultado = [] for palabra in palabras: if letra in palabra: resultado.append(palabra) return resultado def palabrasConLetra2(cadena, letra): palabras = cadena.split(" ") return [palabra for palabra in palabras if letra in palabra] print(palabrasConLetra("hola que tal yo mal", "a")) print(palabrasConLetra2("hola que tal yo mal", "a")) # Una función a la que le pasamos una cadena y nos devuelve una lista # con la primera letra de cada palabra def primeraLetra(cadena): palabras = cadena.split(" ") resultado = [] for palabra in palabras: resultado.append(palabra[0]) return resultado def primeraLetra2(cadena): palabras = cadena.split(" ") return [palabra[0] for palabra in palabras] print(primeraLetra("hola que tal yo muy bien")) print(primeraLetra2("hola que tal yo muy bien")) # Cread una función a la que le pasamos una cadena y nos devuelve una lista de palabras # que empiecen y acaben con la misma letra def inicioFin(cadena): palabras = cadena.split(" ") resultado=[] for palabra in palabras: if palabra[0]==palabra[-1]: resultado.append(palabra) return resultado def inicioFin2(cadena): palabras = cadena.split(" ") return [palabra for palabra in palabras if palabra[0]==palabra[-1]] print(inicioFin("hola ana como sales tan pronto")) print(inicioFin2("hola ana como sales tan pronto"))
Soluciones ejercicios
import datetime import random # Cread una función tiradaDado que nos devuelva un número aleatorio del 1 al 6 def tiradaDado(limite=6): return random.randint(1, limite) for i in range(10): print(tiradaDado()) # Cread una función que nos devuelva al azar una provincia de Barcelona def provinciaAzar(): provincias = ["Barcelona", "Tarragona", "Lleida", "Girona"] return random.choice(provincias) for i in range(10): print(provinciaAzar()) # Cread una función que nos devuelva el año actual def anyoActual(): return datetime.date.today().year print(anyoActual()) # Cread una función que nos devuelva True si hoy es viernes y false en caso contrario def esViernes(): return datetime.date.today().weekday() == 4 # 0 lunes hasta 6 domingo print(esViernes()) # Cread una función que nos devuelva la fecha actual en formato día/mes/año def fechaActual(): return datetime.date.today().strftime("%d/%m/%Y") print(fechaActual()) # Cread una función que nos devuelva el siguiente día laborable a partir de hoy def siguienteLaborable(): fecha = datetime.date.today() fecha += datetime.timedelta(days=1) while fecha.weekday() > 4: fecha += datetime.timedelta(days=1) return fecha def siguienteLaborable2(): fecha = datetime.date.today() fecha += datetime.timedelta(days=1) if fecha.weekday() > 4: fecha += datetime.timedelta(days=(7 - fecha.weekday())) return fecha print(siguienteLaborable2())
Sesiones virtuales
SESIÓN VIRTUAL (10-04-2025 18_00_00)-20250410_180338-Grabación de la reunión.mp4
SESIÓN VIRTUAL (16-04-2025 18_00_00)-20250416_180432-Grabación de la reunión.mp4
SESIÓN VIRTUAL (22-04-2025 18_00_00)-20250422_180529-Grabación de la reunión.mp4
SESIÓN VIRTUAL (24-04-2025 18_00_00)-20250424_180332-Grabación de la reunión.mp4
SESIÓN VIRTUAL (25-04-2025 18_00_00)-20250425_180447-Grabación de la reunión.mp4
SESIÓN VIRTUAL (29-04-2025 18_00_00)-20250429_180841-Grabación de la reunión.mp4
SESIÓN VIRTUAL (30-04-2025 18_00_00)-20250430_180856-Grabación de la reunión.mp4
SESIÓN VIRTUAL (02-05-2025 18_00_00)-20250502_180552-Grabación de la reunión.mp4
SESIÓN VIRTUAL (05-05-2025 18_00_00)-20250505_180717-Grabación de la reunión.mp4
SESIÓN VIRTUAL (06-05-2025 18_00_00)-20250506_180919-Grabación de la reunión.mp4
SESIÓN VIRTUAL (07-05-2025 18_00_00)-20250507_181546-Grabación de la reunión.mp4
SESIÓN VIRTUAL (08-05-2025 18_00_00)-20250508_180607-Grabación de la reunión.mp4
SESIÓN VIRTUAL (09-05-2025 18_00_00)-20250509_181432-Grabación de la reunión.mp4
Ejercicios funciones
# Cread una función tiradaDado que nos devuelva un número aleatorio del 1 al 6 # Cread una función que nos devuelva al azar una provincia de Cataluña # Cread una función que nos devuelva el año actual # Cread una función que nos devuelva True si hoy es viernes y false en caso contrario # Cread una función que nos devuelva la fecha actual en formato día/mes/año # Cread una función que nos devuelva el siguiente día laborable a partir de hoy