Con este curso darás tus primeros pasos en el mundo de la programación.
Aprenderás a programar desde cero utilizando Python y enfocando más el aprendizaje en el ¿qué hacemos al programar?, que con qué lenguaje lo hacemos. Llegaremos hasta los fundamentos de Programación orientada a objetos y principios de programación funcional con Python..
¿Por qué debes realizar este Curso de programación con KeepCoding?
Porque este curso no se centra en el lenguaje, no es de los que suponen que sabrás lo que es una variable o un dato o un if. Este curso parte realmente de que no sabes nada de programación y que tu contacto con los ordenadores siempre ha sido como usuario.
Bola extra, aprenderás los fundamentos con uno de los lenguajes de programación con más proyección actualmente.
¿Qué sabrás hacer al terminar el Curso de Python?
- Sabrás enfrentar problemas de programación, ir al cuaderno antes que al teclado.
- Pensar como un programador.
- También sabrás cómo llevar esa idea a la realidad en Python. Eso sí, deberás practicar y practicar para hacerte un maestro de la programación.
- Este curso te abre la puerta al mundo de la programación, una vez dentro deberás seguir mejorando..
¿Qué proyecto o práctica se realizará en este curso?
Se realizan pequeños programas de consola que van incrementando su complejidad a lo largo de tu evolución en el curso.
¿Cuáles son las oportunidades laborales?
Es muy pronto para programar profesionalmente, pero aunque no estes listo, este curso te permitirá aprender lo elemental, evolucionar en Python, elegir el enfoque que quieras: Big Data, Web, Machine Learning; para seguir tu ruta hacia la programación profesional.
¿Qué requisitos técnicos necesito para realizar este curso?
- Un ordenador con windows, macOs o linux.
- Un cuaderno y un boli/l´
¿Qué conocimientos debo tener para realizar este curso?
Manejar un ordenador como un usuario normal.
¿Te lo vas a perder?
Ramón Maldonado
Desarrollador en distintos entornos y lenguajes desde 1997. He trabajado para diferentes empresas de servicios y clientes incluyendo ASNEF/Equifax e IBM.
Como profe, me esfuerzo para que el alumno entienda perfectamente lo que quiero enseñarle, aunque para ello tenga que volver a aprenderlo con él.
Como desarrollador me puede la curiosidad de entender el negocio de mi cliente desde su punto de vista, para luego traducirlo a procesos programables.
¿Qué contiene el curso?
¿Qué es y para qué sirve programar?
¿Cómo se puede programar?
¿Qué estrategias de pensamiento utilizamos para programar?
Las herramientas necesarias para programar
- El ordenador.
- El terminal.
- El lenguaje de programación.
- Estructuras de control.
- Tipos de datos.
Estructuras de datos complejas.
Principios de programación tanto orientada a objetos, como funcional.
- Qué es programar 1 (5:53)
- Qué es programar 2 - Programando a un humano - Cambio de rueda. (9:08)
- Qué es programar 3 - Programando a un humano - Bot - Lenguaje de programación (4:42)
- Qué es programar 4 - Programando a un humano - Bot - Enunciado ejercicio (1:33)
- Qué es programar 5 - Programando a un humano - Bot - Realización del ejercicio (5:46)
- Qué es programar 6 - El lenguaje de programación (2:02)
- Qué es programar 7 - Conclusion (3:09)
- Instalando nuestros IDEs 1 - Qué necesitamos para programar (1:02)
- Instalando nuestros IDEs 2 - Lenguajes de programación (1:20)
- Instalando nuestros IDEs 3 - Qué es un IDE (1:49)
- Instalando nuestros IDEs 4 - Thonny en mac (1:38)
- Instalando nuestros IDEs 5 - Thonny en w10 (1:46)
- Instalando nuestros IDEs 6 - Thonny en ubuntu (1:55)
- Instalando nuestros IDEs 7 - Webmaker como webapp (1:55)
- Instalando nuestros IDEs 8 - Webmaker como extensión en chrome (1:11)
- Hola mundo con python - Print (2:05)
- Hola personalizado con python - Input (1:44)
- Hola personalizado con python - Variables (1:28)
- Hola personalizado con python - Operador de asignación (2:20)
- Hola personalizado con python - Programa finalizado (1:09)
- Hola mundo con javascript - Empezando con web maker (1:36)
- Hola mundo con javascript - El programa (alert) (1:06)
- Hola mundo con javascript - Guardar el programa (0:55)
- Hola personalizado con javascript - Crear nuevo proyecto (0:29)
- Hola personalizado con javascript - La consola del navegador (0:22)
- Hola personalizado con javascript - Prompt (0:54)
- Hola personalizado con javascript - Creando variables (0:47)
- Hola personalizado con javascript - null data (0:59)
- Hola personalizado con javascript - Programa finalizado (0:53)
- Conclusiones - salvar y comparar solución javascript y python (0:57)
- Conclusiones - input (py) vs prompt (js) (0:56)
- Conclusiones - print (py) vs alert( js) (0:33)
- Conclusiones - concatenación de literales en nuestro programa. Diferencias py vs js (0:58)
- Conclusiones - los dos programas juntos (py vs js) (0:43)
- Elementos de un programa y estructuras de control (0:38)
- Elementos de un programa vistos hasta ahora: Instrucciones, datos, operadores y variables (1:37)
- Estructuras de control vistas hasta ahora: Secuencia en el programa en python (1:52)
- Estructuras de control vistas hasta ahora: Secuencia en programa javascript (1:31)
- Planteamiento del problema (1:50)
- Pseudocódigo I (2:39)
- Pseudocódigo II (2:21)
- De pseudocódigo a código (1:59)
- Nuestro primer error - Anatomía de la traza de error (1:59)
- Tipos de datos primitivos en python 1 - str e int (1:49)
- Tipos de datos primitivos en python 2 - str e int (1:35)
- Conversión de tipos o type casting 1 (1:09)
- Conversion de tipos o type casting 2 (1:37)
- Segundo programa. Funciona (0:31)
- Segundo programa. 1ª mejora, aun no he cumplido (0:44)
- Segundo programa. Pseudocódigo 1ª mejora (1:59)
- Segundo programa. Dato nuevo. Has cumplido (1:59)
- Segundo programa. Nueva estructura de control 1. IF - Seleccion (1:50)
- Segundo programa. Nueva estructura de control 2. IF - ELSE (1:51)
- Segundo programa. Segunda versión también funciona (0:58)
- Segundo programa en javascript - introducción (0:52)
- Segundo programa en javascript - resta de cadenas en javascript (2:33)
- Segundo programa en javascript - todo el código (2:11)
- Segundo programa en javascript - Anatomía de un error y por fin funciona (1:44)
- Segundo programa. Nuevo tipo de datos - Booleanos (1:07)
- Operando con booleanos - asignación (1:15)
- Operando con booleanos - operadores (1:47)
- Operando con booleanos - comparaciones (1:27)
- Segundo programa. ¿Funciona? (1:55)
- Enunciado del problema (1:55)
- Análisis del problema - Del enunciado al papel (0:39)
- Análisis del problema - Determinando el tramo de retención (1:48)
- Análisis del problema - Exencion y sueldo a retener (1:37)
- Análisis del problema - Retención anual (0:40)
- Análisis del problema - Retención mensual (0:32)
- Análisis del problema - Creando mi primer juego de pruebas (1:20)
- Análisis del problema - Pseudocódigo I (2:00)
- Análisis del problema - Pseudocódigo II (1:59)
- Análisis del problema - Pseudocódigo III (1:08)
- Análisis del problema - Pseudocódigo Exenciones I (1:47)
- Análisis del problema - Pseudocódigo Exenciones II (2:07)
- Análisis del problema - Pseudocódigo Exenciones III (1:21)
- Primera versión - Obtener exención I (1:14)
- Primera versión - Obtener exención II (1:46)
- Primera versión - Probándola (0:55)
- Primera versión - Exención por defecto (0:44)
- Análisis del problema - Tabla de retenciones (1:52)
- Análisis del problema - Pseudocódigo retenciones (1:19)
- Segunda versión - Obtencion de porcentaje de retención (1:26)
- Segunda versión - Probando el código (con nuestro juego de pruebas) (1:33)
- Tercera versión - funcionalidad completa (1:55)
- Tercera versión en Javascript - Editor y configuración para <= (1:09)
- Tercera versión en javascript - Obtener exencion situacion 1 (2:02)
- Tercera versión en javascript - Primera prueba (0:30)
- Tercera versión en javascript - Sueldo a retener (2:00)
- Tercera versión en javascript - Porcentaje de retencion (1:49)
- Tercera versión en javascript - Últimos cálculos (1:59)
- Tercera versión javascript - Funcionalidad completa (0:37)
- Tercera versión javascript - conclusión diferente manejo de tipos y diferente sintaxis (0:29)
- Conclusiones - ¿Se puede mejorar? (2:00)
- Cuarto programa - Planteamiento del problema (0:28)
- Cuarto programa - Disección de la solución (0:59)
- Cuarto programa - Pseudocódigo con IFs (2:43)
- Cuarto programa - Código en python (2:02)
- Cuarto programa - Probandolo hasta que funcione (1:16)
- Cuarto programa - Introducción a listas en python (1:56)
- Cuarto programa - Las listas comienzan en la posicion 0 (1:35)
- Cuarto programa - Disección de la solución con una lista (2:20)
- Cuarto programa - Pseudocodigo iteracion - GOTO 1 (1:37)
- Cuarto programa - Pseudocódigo iteración - GOTO 2 (3:43)
- Cuarto programa - Pseudocódigo iteración - GOTO 3 (0:38)
- Cuarto programa - Del if+goto al while 1 - Pseudocódigo limpio (1:03)
- Cuarto programa - Del if+goto al while 2 (2:04)
- Cuarto programa - Python (2:45)
- Cuarto programa - Probando python (1:04)
- Cuarto programa - Javascript (2:19)
- Cuarto programa - probando javascript - parseInt (1:51)
- Planteamiento del problema - reconocer años bisiestos (0:41)
- Pseudocódigo - Comprobar que es bisiesto cambia la lista (1:16)
- Pseudocódigo - Función comprobar bisiesto (1:16)
- Criterios para saber si un año es bisiesto - inicio de pseudocodigo (1:07)
- Criterios para saber si un año es bisiesto - operadores de división en python (1:46)
- Pseudocódigo funcion es_bisiesto (2:04)
- Como se crea una función en python 1 - es_bisiesto (1:09)
- Como se crea una función en python y 2 - es_bisiesto (2:01)
- Invocando una función en python - es_bisiesto (1:21)
- Probando la función en python (1:54)
- El programa funciona y tiene una función (1:26)
- El programa en javascript - Definiendo la función esBisiesto (1:15)
- El programa en javascript - Invocando la función esBisiesto (2:04)
- El programa en javascript - Funciona (0:57)
- windows 10, linux/mac - introducción (1:16)
- windows 10 - que es un comando. Ej DIR (1:54)
- windows 10 - Documentación sobre los comandos HELP (0:28)
- windows 10 - CD cambiando de directorio (2:05)
- windows 10 - MD creando un directorio - El uso de la tecla TAB (0:42)
- windows 10 - Haciendo visibles las extensiones (1:39)
- windows 10 - REN renombrando archivos (0:37)
- windows 10 - RMDIR y DEL, borrando carpetas y archivos (1:44)
- linux/mac - introducción y PWD (1:08)
- linux/mac - LS contenido de un directorio (0:47)
- linux/mac - CLEAR y MAN. Borrar pantalla e información sobre un comando (1:42)
- linux/mac - CD. Moverse entre directorios (1:55)
- linux/mac - CD 2. La carpeta del usuario activo (1:06)
- linux/mac - MKDIR. Crear directorios (2:00)
- linux/mac - RM - r. Borra directorios (0:51)
- linux/mac - MV. Renombra ficheros. RM. Borra ficheros (1:09)
- ¿Como almacena los números un ordenador? - La pascalina (1:57)
- ¿Como almacena los números un ordenador? - Suma pascalina (1:08)
- ¿Cómo almacena los números un ordenador? - Dígito y acarreo (1:50)
- ¿Cómo almacena los números un ordenador? - La electrónica solo permite ceros y unos. (0:46)
- Sistema de numeración decimal - como funciona y origen (2:51)
- Sistema de numeración decimal - como funciona 2 (0:43)
- Como cuentan los Simpson - sistema de numeración octal (2:01)
- Como cuentan los Simpson - Su abaco ruso (1:17)
- Como cuentan los Simpson - Unidades (1:46)
- Como cuentan los Simpson - Decenas (1:09)
- Como cuentan los Simpson - Cada posición multiplica x 8 (1:24)
- Como cuentan los Simpson - El valor real de 276 en octal (2:00)
- Como cuentan los Simpson - Valor real de cualquier número en cualquier base (1:18)
- Sistemas de numeracion de diferente base - representación del 15 (1:35)
- Sistemas de numeración de diferente base - contador automático (1:14)
- Los ordenadores funcionan en binario - El bit y el byte (2:04)
- Almacenar un valor y el acarreo son la base de una calculadora (0:43)
- Operadores aritméticos 1 (1:49)
- Operadores aritméticos 2 (1:57)
- Precedencia de operadores (1:51)
- Números enteros: tipo int (1:19)
- Números reales: tipo float 1 - Su imprecisión (2:00)
- Números reales: tipo float y 2 - Alternativas a su imprecisión (1:27)
- Números complejos - Fuera de alcance (0:21)
- Introducción. ¿Como guardamos un texto en binario? Hablemos de morse. (1:52)
- ASCII viene de morse (2:03)
- ASCII en binario (1:16)
- De ASCII a ASCII extendido (1:59)
- De ASCII extendido a UNICODE (UTF) (1:36)
- Imprimiendo en japonés (2:09)
- Tipo primitivo String (cadena). Uso de comillas (1:15)
- Posición de un caracter en una cadena [] (1:15)
- Extrayendo subcadenas [:] (1:54)
- Posicion de un caracter desde el final. Indices negativos [-n] (1:47)
- Ejemplos de subcadenas con indices negativos [:] (2:05)
- Salteando cadenas [: :] (1:59)
- Invirtiendo cadenas y recorriendolas hacia atrás (1:48)
- Iterando sobre cadenas. for caracter in cadena (0:43)
- Ejemplo de iteracion. Extrae vocales (1:27)
- Operador in. Comprobar que una cadena está en otra (0:37)
- Métodos de cadena (0:29)
- Métodos upper y lower (0:59)
- Método replace (1:12)
- Métodos de cadena. Documentación (0:57)
- Método format. Como funciona (1:54)
- Método format. Minilenguaje (0:38)
- Método format. Uso básico y posicional (1:38)
- Método format. Modificadores (1:56)
- Método format. Tabla de multiplicar (1:40)
- Método format. Tabla de multiplicar y 2 (0:48)
- Ejercicio palíndromos: Palabras (1:05)
- Ejercicio Palíndromos: Frases (1:30)
- Ejercicio palíndromos: Planteamiento (0:48)
- Ejercicio palíndromos: Código python (1:53)
- Ejercicio palíndromos: Pruebas (1:20)
- Ejercicio Saca vocales: planteamiento (0:26)
- Ejercicio Saca vocales: código py (1:07)
- Ejercicio Saca vocales: pruebas (0:26)
- Diapositivas
- Datos primitivos vs complejos. Primitivos (1:09)
- Datos primitivos vs complejos. Datos complejos (0:47)
- Tuplas. Definición y creación (1:50)
- Tuplas. Acceso a sus elementos (0:37)
- Tuplas. Son inmutables (0:14)
- Listas. Definición y creación (1:02)
- Listas y tuplas no sólo son para cadenas. (1:06)
- Listas. acceso por posición (0:21)
- Listas. Son mutables (0:21)
- Listas. Métodos (0:57)
- Listas. Métodos 2 (1:21)
- Listas y tuplas. Iteración (0:42)
- Diccionarios. Definición y creación (1:45)
- Diccionarios. No solo es para cadenas (0:42)
- Diccionarios. Acceso [] y get (1:02)
- Diccionarios. Iteración (1:28)
- Diccionarios. Iteración y 2 (1:03)
- Conjuntos. Definición y creación (1:30)
- Conjuntos. Definición y creación y 2 (0:38)
- Conjuntos iteración (0:47)
- Conjuntos. Comprobar pertenencia (0:30)
- Conjuntos. Métodos pop() (1:10)
- Conjuntos. Métodos remove (0:46)
- Conjuntos. Métodos discard y clear (0:22)
- Conjuntos. Métodos update (0:59)
- Conjuntos. Métodos: add (0:47)
- Función es_anagrama. Requisitos (1:19)
- Función es_anagrama. Planteamiento (1:45)
- Función es_anagrama. Casos de prueba (1:25)
- Función es_anagrama. Planteamiento función tacha. (1:13)
- Función es_anagrama. Planteamiento tacha con string (1:57)
- Función es_anagrama. Pasar de cadena a lista (1:03)
- Función es_anagrama. Pasar de lista a cadena. (1:27)
- Función es_anagrama. Método join de cadenas. (1:53)
- Función es_anagrama. Pseudocódigo (0:52)
- Función es_anagrama. Código función tacha (2:04)
- Función es_anagrama. Las tuplas no sirven (0:43)
- Función es_anagrama. Función completa 1 (1:54)
- Función es_anagrama. Función completa 2 (1:29)
- Función es_anagrama. Pruebas función con listas (1:44)
- Función es_anagrama. Planteamiento con diccionarios (1:38)
- Función es_anagrama. Pseudocódigo con diccionarios (0:54)
- Función es_anagrama. Pseudo obtener_dict (1:07)
- Función es_anagrama. Repeticiones de letras en obtener_dict (1:25)
- Función es_anagrama. Pruebas en obtener_dict (1:55)
- Función es_anagrama. Comparar diccionarios (0:34)
- Función es_anagrama. Versión final con diccionarios (1:55)
- Función es_anagrama. Pruebas versión diccionarios (1:25)
- Función es_anagrama. Los conjuntos no sirven (1:22)
- Función es_anagrama. Conclusión (0:32)
- Que es una iteracion (0:54)
- Tipos de iteracion (0:24)
- Bucles de tipo WHILE (o until) (1:50)
- Bucles de tipo DO WHILE (o do until) (1:20)
- Bucles de tipo FOR (o repeat) (0:47)
- funcion nota_numerica. El problema (0:58)
- funcion nota_numerica. Análisis (disección) de la solución (1:55)
- funcion nota_numerica. Pseudocódigo I (1:31)
- funcion nota_numerica. Pseudocódigo II (2:26)
- funcion nota_numérica - Pseudocódigo III (1:06)
- función nota_numérica en python - Escribir programa (1:54)
- función nota_numérica en python - Probando el programa (0:55)
- función nota_numérica en javascript - Código (1:18)
- función nota_numérica en javascript - probando - bucles infinitos (1:19)
- funcion nota_numérica en javascript - por qué un bucle infinito 1 (2:00)
- funcion nota_numerica javascript. La comparación fuera de rango en python da ERROR (0:27)
- funcion nota_numerica javascript. La comparacion fuera de rango en javascript da UNDEFINED (1:01)
- funcion nota_numerica en javascript - por qué un bucle infinito y 4 (1:02)
- funcion nota_numerica en javascript - condicion adicional Array.length (0:54)
- funcion nota_numerica en javascript - funciona (0:37)
- Programa cálculo de la media de un alumno - El problema (1:15)
- Programa cálculo de la media de un alumno - Análisis (disección) del problema (2:32)
- Programa cálculo de la media de un alumno - Pseudocódigo - Tratando la primera nota con un IF (1:58)
- Programa cálculo de la media de un alumno - Pseudocódigo - Del IF al WHILE (0:57)
- Programa cálculo de la media de un alumno - Pseudocódigo - Calcular Media (0:40)
- Programa cálculo de la media de un alumno - Python - primera versión (1:59)
- Programa de cálculo de la media de un alumno - Python - Juego de pruebas (1:25)
- Programa de cálculo de la media de un alumno - Python - Primera ejecución con errores (1:30)
- Errores de sintáxis en python (1:38)
- Excepciones en python (0:57)
- Captura de excepciones en python - try except (1:37)
- Captura de excepciones por tipo en python - try except (1:46)
- Lanzamiento de excepciones por el programador en python. raise (0:37)
- Gestion de errores en javascript - INTRO (0:44)
- Gestion de errores en javascript - Syntax error vs el resto (1:46)
- Captura de errores en javascript - try catch escritura (1:37)
- Captura de errores en javascript - try catch pruebas (1:11)
- Lanzamiento de errores ad hoc javascript - throw (1:55)
- CONCLUSION - Como funcionan las excepciones en python, javascript (1:53)
- Programa cálculo de la media de un alumno con excepciones - planteamiento del problema (0:49)
- Usando try-except python 1 (2:23)
- Usando try-except python 2 (0:47)
- python Sigue fallando - no acepta minúsculas (0:47)
- python Solución a minúsculas. STRING.UPPER() (1:52)
- python Sigue fallando si no hay datos. Uso del DEBUGGER (1:33)
- python Programa finalizado y probado (2:12)
- javascript Modificar notaNumerica para que de error 1 (0:47)
- javascript Modificar notaNumerica para que de error 2 (1:18)
- javascript Crear bucle while (2:27)
- javascript Calcular y presentar media (0:57)
- javascript Probando el programa 1 (tiene un error y un caso adicional) (1:45)
- javascript Probando el programa - problemas con null (1:03)
- javascript Probando el problema - evitando el null (1:25)
- RESUMEN: bucle While (1:22)
- Bucles FOR - Presentacion (1:03)
- Programa de la nota media, variación for - planteamiento (1:01)
- Programa de la nota media, variación for - planteamiento - análisis (pseudocódigo) (1:59)
- Programa de la nota media, variación for - planteamiento - análisis (pseudocódigo) y 2 (1:33)
- Programa de la nota media, variación for - python 1 (0:56)
- Programa de la nota media, variación for - python 2 (RANGE) (1:40)
- Programa de la nota media, variación for - python 3 (1:32)
- Programa de la nota media, variacion for - primeras pruebas (0:59)
- Programa de la nota media, variación for - nuevos juegos de pruebas (0:46)
- Programa de la nota media, variación for - todas las pruebas. El programa falla. (0:53)
- Programa de la nota media, variación for - Resolviendo 3er caso de prueba (0:14)
- Programa de la nota media, variación for - 3er caso de prueba OK (1:59)
- Programa de la nota media, variación for - Resolviendo 4º caso de prueba (1:11)
- Programa de la nota media, variación for - 4º caso de prueba OK (0:43)
- Programa de la nota media, variacion for - Resolviendo 2º caso (1:56)
- Programa de la nota media. Validando entrada por consola con WHILE (pseudocodigo) (2:14)
- Programa de la nota media. Validando entrada por consola con WHILE (pseudocódigo 2) (1:39)
- Programa de la nota media. Validando entrada por consola con WHILE (pseudocódigo y 3) (1:24)
- Programa de la nota media. Validando entrada por consola con WHILE (repaso) (1:26)
- Programa de la nota media. Funcion pedir_nota_correcta python (1:56)
- Programa de la nota media. Modificar el programa para usar pedir_nota_correcta python (0:40)
- Programa de la nota media. Probando la funcion pedir_nota_correcta (1:35)
- Programa de la nota media. Prueba OK pedir_nota_correcta (2:04)
- Programa de la nota media. Entrada datos consola con while. CONCLUSION (0:39)
- Programa de la nota media. Todas pruebas OK. (0:58)
- Programa de la nota media. Un error nuevo (1:17)
- Programa de la nota media. Funcion pedir_numero (1:59)
- Programa de la nota media. Probando pedir_numero (0:57)
- Programa de la nota media. Version final (1:31)
- For en python. Iterables (1:15)
- Repaso de qué es una función. Visto hasta ahora (0:28)
- Como interpreta las funciones python (1:41)
- Qué significa ejecutar (invocar) una función (1:47)
- Funciones python sin paréntesis (1:57)
- Invocando funciones en la consola de python (1:46)
- Invocando funciones en la consola de python y 2 (2:12)
- IMPORT en python. Creando mis_funciones.py (1:20)
- import en python. Usando mis_funciones.py (1:59)
- import en python. Usando mis_funciones.py y 2 (1:45)
- import en python. Un programa, dos ficheros (0:44)
- import en python. Probando el código (0:59)
- import en python. Primera aproximación. Conclusión (0:20)
- PARÁMETROS POSICIONALES de una función. Función hipotenusa - inicio (1:00)
- hipotenusa.py. La función math.sqrt como encontrarla (2:00)
- hipotenusa.py. Como funciona una funcion (repaso) (1:58)
- hipotenusa.py. Parámetros de una función (siempre por copia) (1:32)
- hipotenusa.py. Los parámetros solo existen dentro de la función (1:36)
- hipotenusa.py. Ámbito local y global de una variable 1 (2:00)
- hipotenusa.py. Ámbito local y global de una variable conclusión (0:57)
- hipotenusa.py. Usando el debugger. Distinguiendo ámbitos (2:11)
- hipotenusa.py. Usando el debugger. Ámbito local (2:06)
- hipotenusa.py. En python todo son variables (0:51)
- hipotenusa.py PARAMETROS POSICIONALES fin (1:04)
- hipotenusa.py PARAMETROS POR DEFECTO inicio (0:29)
- hipotenusa.py El problema del cartabón (0:17)
- hipotenusa.py. Primera solución al cartabón. Función hcartabon (0:59)
- hipotenusa.py. Segunda solución al cartabón. Función llama a función (0:34)
- hipotenusa.py. Tercera solución, número de parámetros variables (0:46)
- hipotenusa.py. Tercera solución. El problema (0:52)
- hipotenusa.py. Tercera solución. Pseudocódigo (0:37)
- hipotenusa.py. Tercera solución. Código py (0:53)
- hipotenusa.py Tercera solución. Probando el código (1:52)
- hipotenusa.py Los parámetros posicionales pueden cambiar de orden (1:57)
- ANEXO: hcartabon Función llama a función con el debugger 1 (0:39)
- ANEXO: hcartabon Función llama a función con el debugger 2 (1:46)
- ANEXO: hcartabon Función llama a función con el debugger y 3 (0:59)
- Presentación (1:59)
- funcion media. Juego de pruebas inicial (2:00)
- funcion(*args) → args es una lista local (I) (1:42)
- funcion(*args) → args es una lista local (y 2) (0:45)
- Ejemplo multientrada con tres argumentos (1:30)
- Misma función con 5 argumentos y sin argumentos (0:41)
- Forzando a una función de parámetros variables a aceptar una lista como parámetro (1:57)
- funcion media(*notas) 1 (0:46)
- funcion media(*notas). Anexo, from file import func (1:37)
- funcion media(*notas) 2 (1:34)
- funcion media(*notas). ¿Que pasa si la llamamos sin parámetros? (1:02)
- funcion media(*notas). Probando la función. Primer error (1:28)
- funcion media(*notas). Probando la función. Final (1:57)
- Conclusión. Funciones con un número variable de parámetros (1:02)
- Presentación - La función boletín (2:00)
- funcion(**kwargs) → kwargs es un diccionario local (I) (1:31)
- funcion(**kwargs) → kwargs es un diccionario local (II) (1:42)
- funcion(**kwargs) → kwargs es un diccionario local (y 3) (1:04)
- función boletin - imprime asignaturas y notas (1:32)
- función boletin - calcula la media también (primera forma) (1:46)
- función boletin - calcula la media también (segunda forma) (1:53)
- Forzando a una función de tipo **kwargs a aceptar un diccionario como argumento (1:52)
- Conclusión. Funciones con un número variable de parámetros (**kwargs) (1:59)
- Presentación (0:58)
- Retomar donde lo dejamos (algoritmo y versión inicial) (1:58)
- Iteraciones y datos complejos en lugar de selecciones. (0:33)
- Creando una función para obtener exencion (1:13)
- Obtener exención. Extraer la función. (1:15)
- Obtener exención. Probar la función. (1:18)
- Obtener exención. Ajustar los parámetros. (1:26)
- Obtener exención. Necesitamos un return. (0:46)
- Obtener exención. Pruebas unitarias finales. (0:54)
- Obtener exención. Integrar la función en mi programa. (2:01)
- Obtener exención. Probar integración y fin. (0:34)
- Creando la función Obtener retención. Extraemos. (1:44)
- Obtener retención. Ajustando los parámetros. (1:30)
- Obtener retención. Pruebas unitarias. ¿Qué pasa con los negativos? (1:09)
- Obtener retención. Pruebas unitarias finales. (1:18)
- Obtener retención. Probar integración y fin. (1:50)
- El programa está más ordenado pero sigue igual de largo. (1:26)
- Qué son y para qué los usamos. (1:13)
- Módulos. Importando funcionalidad (import) (1:14)
- Import necesita de prefijos (1:13)
- Módulos. El porqué de los prefijos (espacios de nombres) (1:54)
- Módulos. Pruebas de nuestro módulo. Algunas ventajas del uso de módulos. (1:52)
- Módulos. Otra forma de uso de import. from modulo import ... (2:09)
- Módulos. Utilización de las funciones fuera de mi programa. (1:21)
- Módulos. Cambiando a from import en nuestro programa. (1:36)
- Módulos. Conclusión. (0:42)
- Módulos. Anexo. ¿Como encuentra python los módulos? I (1:24)
- Módulos. Anexo. ¿Como encuentra python los módulos? I (1:13)
- Módulos. Anexo. ¿Como encuentra python los módulos? I (1:56)
- Mejorar nuestras funciones con estructuras de datos e iteraciones. (0:39)
- Vuelta al origen. Repasamos el problema y nuestra solución. (1:42)
- Búsqueda de un valor en una tabla. Entendiendo el problema. (1:56)
- Búsqueda de un valor en una tabla. Pseudocódigo. (3:26)
- Búsqueda de un valor en una tabla. Probando mentalmente el pseudocódigo. (2:02)
- Búsqueda de un valor en una tabla. Añadimos el valor de otra tabla. (1:30)
- Búsqueda de un valor en una tabla. Versión final. (1:05)
- Obtener_exención con tablas. Crear las listas. (1:25)
- Obtener_exención con tablas. De pseudocódigo a código. (2:00)
- Obtener_exención con tablas. Probar nuestra función. (1:32)
- Obtener_exención con tablas. Caso final. ¿Por qué funciona? (3:45)
- Obtener_exención con tablas. Usando el debugger. (0:55)
- Usando el debugger. Step into (1:28)
- Usando el debugger. Sigue hasta el siguiente punto de ruptura. (2:01)
- Obtener_exención con tablas. Refinar la función. (1:32)
- Obtener_exención con tablas. Cambiando de while a for. (1:58)
- Obtener_exención con tablas. Tablas con más de una columna pueden ser listas de listas. (0:51)
- Obtener_exención con tablas. Lista de listas en Python. Estructura. (1:13)
- Obtener_exención con tablas. Lista de listas en Python. Acceso. (1:13)
- Obtener_exención con tablas. Crear la lista de listas. El problema de infinito. (1:23)
- Obtener_exención con tablas. Accediendo a elementos en la consola. (1:22)
- Obtener_exención con tablas. Cambiar el for para acceso a lista de listas. (2:04)
- Obtener_exención con tablas. Versión final. (0:30)
- Obtener_exención con tablas. Probando la versión final. (1:38)
- Obtener_exención con tablas. Importancia de buenas estructuras de datos. (1:01)
- Obtener retención. Primera aproximación con tres listas. (1:22)
- Obtener retención. Pseudocódigo, obtención. (1:57)
- Obtener retención. Crear listas en Python. (1:11)
- Obtener retención. Crear función en Python. (1:07)
- Obtener retención. Probar la función en Python. (2:00)
- Obtener retención. Mejorar la estructura. Diccionario de listas. (1:21)
- Obtener retención. Ventajas de esta estructura. (1:42)
- Obtener retención. Modificar la función para acceso a diccionario de listas. (1:30)
- Obtener retención. Gestión del error. Tú decides. (1:23)
- Módulo f_retenciones Versión final. (1:37)
- Módulo f_retenciones. Pruebas de integración en nuestro programa. (1:20)
- Módulo f_retenciones. Mejorando legilibilidad, uso de constantes. (0:57)
- Módulo f_retenciones. Mejorando legilibilidad. For con varias variables. (2:02)
- Retención de IRPF. Conclusión con funciones, iteraciones y estructuras de datos. (1:51)
- Qué es la persistencia (2:58)
- Nombre de un fichero (2:59)
- Donde está el fichero. Comandos de OS en thonny (2:56)
- Abriendo ficheros I (4:48)
- Abriendo ficheros II (1:05)
- Cerrando ficheros (0:43)
- Leer ficheros. fichero.read (1:53)
- Leer ficheros. El puntero de lectura (1:49)
- Leer ficheros. fichero.readline (1:28)
- Leer ficheros. Iterando la lectura con for (1:14)
- Leer ficheros. fichero.readlines (0:39)
- Escribir ficheros. fichero.write (3:06)
- Escribir ficheros. modo w vs modo a (1:00)
- Ejercicio cambia palabra en fichero. (7:01)
- Resumen de lo avanzado (2:23)
- Cambio a un IDE profesional. Visual Studio Code (2:08)
- Instalación VSC en windows (2:20)
- Instalación VSC en mac (2:08)
- Instalación VSC en ubuntu (3:03)
- Preparar el entorno para python: extensión (2:27)
- Preparar el entorno para python: bracket colorizer (1:16)
- Primer proyecto. Cambiando el terminal en windows (1:37)
- Primer proyecto. Crear la carpeta (2:04)
- Primer proyecto. Crear el programa (0:57)
- Primer proyecto. Ejecutar el programa (0:29)
- Usando el debugger. Puntos de ruptura (0:50)
- Usando el debugger. Fichero launch.json (1:15)
- Usando el debugger. Barra herramientas - botones - (1:10)
- Usando el debugger. Panel lateral (0:51)
- Usando el debugger. Ejecutar (1:29)
- Funciones de primera clase: Introfucción (2:49)
- Funciones de primera clase: ¿Qué son? (0:55)
- Funciones de primera clase: creando funciones de trabajo (4:56)
- Funciones de primera clase: asignándolas a variables (3:42)
- Funciones de primera clase: asignándolas a estructuras de datos (9:23)
- Funciones de orden superior: ¿Qué son? (0:58)
- Funciones de orden superior- Inciso: Arreglando el módulo funciones (2:00)
- Funciones de orden superior: Funciones como parámetros de otras funciones (7:05)
- Funciones de orden superior: Funciones como resultado de otras funciones, Cifrado CESAR (3:00)
- Funciones de orden superior: Cifrado CESAR, análisis - pseudocódigo - (10:16)
- Funciones de orden superior: creando cifrado de caracter, error con la Z (4:47)
- Funciones de orden superior: creando cifrado de caracter, solucion resto - pseudocodigo - (8:31)
- Funciones de orden superior: creando cifrado de caracter, solucion resto en Python (1:44)
- Funciones de orden superior: creando cifrado de frase (6:05)
- Funciones de orden superior: Una función que devuelve otra función al rescate (10:59)
- Funciones de orden superior: Funcionamiento al detalle (8:43)
- Introducción a funciones anónimas, map, filter y reduce (1:25)
- Funciones anónimas: ¿Qué son? (1:33)
- Funciones anónimas: Jugando con sumatorios (10:34)
- Funciones anónimas: Lambda, anatomía (1:28)
- Funciones anónimas: Sumatorio general (4:10)
- Operadores map, filter, reduce: Introducción (1:57)
- Operador map: ¿Cómo funciona? (2:35)
- Operador map: ejemplos (6:51)
- Operador filter: ¿Cómo funciona? (3:38)
- Operador filter: otros ejemplos (7:53)
- Operador reduce: ¿Cómo funciona? (3:37)
- Operador reduce: ejemplo sumatorio. La importancia del iniciador (12:08)
- Recursion: ¿Qué es? (8:04)
- Recursión: consulta y cambio del limite de recursion (5:26)
- Recursión: porqué no es eficiente en python (7:07)
- Recursión: ejemplo, más sumatorios (2:59)
- Necesidad de la POO, planteamiento (6:03)
- Necesidad de la POO, el contador de clicks. Planteamiento y creación con PF - closure y nonlocal - (7:22)
- Necesidad de la POO, el contador de clicks. Reutilización e inicialización. La idea de estado (4:05)
- Necesidad de la POO, el contador de clicks. Un prototipo con PF - análisis - (4:32)
- Necesidad de la POO, el contador de clicks. Un prototipo con PF - código 1, Funcion clic - (4:08)
- Necesidad de la POO, el contador de clicks. Un prototipo con PF - código 2, Funcion consulta - (3:55)
- Necesidad de la POO, el contador de clicks. Un prototipo con PF - código 3, Funcion reset - (5:05)
- Necesidad de la POO, el contador de clicks. Un prototipo con PF - código 4, control de errores y refactorización - (5:50)
- Necesidad de la POO, el contador de clicks. Conclusión (8:09)
- Necesidad de la POO, el contador de clicks. Versión Final (5:14)
- Conceptos básicos. el contador de click como clase python (13:51)
- Repaso antes de jugar con clases python. (7:44)
- Jugando con clases python. Una academia tiene Alumnos (3:06)
- La clase alumno en python. ¿Qué hace class? (6:35)
- La clase alumno en python. Entonces, ¿qué hace __init__? ¿qué es self? (9:44)
- La clase alumno en python. Construcción y pruebas (2:13)
- La clase alumno en python. Atributos de clase y de instancia (11:04)
- La clase alumno en python. Los métodos __str__ y __repr__ (8:09)
- La clase alumno en python. Diseño y construcción (7:27)
- La clase alumno en python. Un alumno asiste a una o más Asignaturas - composición de objetos 1- (13:46)
- La clase alumno en python. Un alumno asiste a una o más Asignaturas - composición de objetos 1- (5:26)
- La clase profesor en python. Diseño y construcción (11:39)
- La clase profesor en python. @ property, atributos calculados (7:31)
- Herencia. Profesor y alumno son personas - presentación (5:56)
- Herencia. Clase padre o superclase. Persona y Alumno (11:11)
- Herencia. Profesor como subclase de Persona (8:22)
- Herencia. Caso especial __str__ y __repr__ (8:41)
- Conclusión de objetos (1:55)