
presenta un resumen de los temas y conceptos clave extraídos del curso «Aprende Python ahora! curso completo e intensivo desde cero». El curso abarca desde los fundamentos de las operaciones matemáticas y la sintaxis básica hasta conceptos más avanzados como funciones, estructuras de control, tipos de datos avanzados (listas, sets, diccionarios) y la manipulación de estos.
Temas Principales
1. Introducción a las Operaciones Básicas y Tipos de Datos Fundamentales
- Operaciones Matemáticas: Python permite realizar operaciones aritméticas básicas como suma (+), resta (-), multiplicación (*), división (/). También introduce la división entera (//) que devuelve solo la parte entera del resultado y el operador módulo (%) que retorna el resto de una división.
- Ejemplos: «acá me está devolviendo cuatro en este caso el resultado de la acción de 2 + 2», «también podemos restar 3 – 1 este nos entrega 2», «así es que escribimos dos asterisco y el número que queremos multiplicar en este caso Yo quiero que sea cuatro nos devuelve 8», «voy a colocar 16 dividido el dividido se utiliza con el Slash hacia delante se realiza con el Slash hacia delante y aquí yo lo que voy a hacer Es que voy a escribir cuatro y Por ende el resultado va a ser el de cuatro».
- Booleanos y Operadores de Comparación: Se introducen los valores booleanos True y False como resultado de comparaciones. Se muestran ejemplos de operadores de comparación como mayor que (>) y cómo estos devuelven valores booleanos.
- Ejemplos: «vamos a colocar en este caso un dos seguido del símbolo mayor que y vamos a colocar el número uno y esto como pueden ver me está devolviendo true esto es un bullan», «si yo coloco dos Es mayor que c presiono enter Y en este caso me va a devolver false que este también es un bullan».
- Errores de Sintaxis: Se ejemplifica cómo Python indica errores de sintaxis cuando se realizan operaciones incompletas.
- Ejemplo: «si yo coloco por ejemplo 5co más y no coloco absolutamente nada más Solamente acá yo presiono enter y me voy a dar cuenta que aquí me está mostrando un error», «el error que yo estoy recibiendo es el de syntax error o syntaxis inválida».
- Variables y Asignación: Se explica cómo crear variables y asignarles valores de diferentes tipos, incluyendo enteros (integer), números de punto flotante (float) y booleanos (boolan). Se detallan las reglas para nombrar variables (no pueden iniciar con un número, pueden contener letras, números y guion bajo).
- Ejemplos: «vamos a crear una variable de alumnos y esta va a tener el valor de 5,000 después de esto nosotros vamos a crear otra variable que va a tener el valor de puntaje y esta le vamos a indicar que tiene el valor de 9.9», «vamos a preguntar por si es que este curso se encuentra publicado o no y vamos a indicar que este curso sí se encuentra publicado en este caso yo le estoy asignando el valor de true».
- Strings: Se introduce el tipo de dato string, cómo definirlos utilizando comillas simples o dobles, y cómo acceder a caracteres individuales mediante indexación (comenzando desde el índice 0). También se explica el slicing para obtener subcadenas.
- Ejemplos: «cuando nosotros queremos definir un String o una variable que contenga el valor de un String nosotros t…», «si yo quisiera Acceder al caráter u yo lo que tengo que hacer acá es pasarle el valor de cer0», «vamos a colocar nuevamente un print vamos a pasar nuevamente el nombre de la variable que es nombre de curso utilizamos nuevamente nuestros paréntesis de corchete y aquí nosotros vamos a ver una anotación bastante similar vamos Eso sí a deslizarnos hacia abajo un poco y Dentro de este paréntesis de corchete vamos a hacer lo siguiente vamos a colocar unos dos puntos».
- Formateo de Strings: Se presentan métodos para modificar la capitalización de strings (capitalize) y para eliminar espacios en blanco al inicio y al final (strip).
- Ejemplos: «animal capitalize lo que va a hacer es tomar la primera letra de cada palabra que se encuentre dentro de nuestro Stream en este caso Está tomando la c de Chanchito y está tomando la f de feliz y las está pasando a mayúsculas y el resto absolutamente el resto de todas las otras letras… lo está pasando todo para minúscula», «animal pero aquí vamos a pasarle strip me equivoqué no es String es strip ahora qué es lo que hace strip para poder verlo lo que tenemos que hacer es agregarle un par de espacios aquí al comienzo y aquí al final».
- Secuencias de Escape en Strings: Se mencionan caracteres especiales dentro de strings como comillas, backslash y nueva línea.
2. Entorno de Desarrollo y Ejecución de Python
- Terminal Integrada en VS Code: Se enseña cómo abrir y utilizar la terminal integrada en Visual Studio Code mediante el atajo de teclado Ctrl + backtick.
- Ejemplo: «les voy a mostrar la forma divertida Y en este caso es utilizando un atajo de teclado para eso nosotros lo que vamos a hacer es mantenemos presionada la tecla de control y presionamos la tecla de backtick y va es la tecla que se encuentra justamente a la izquierda del número uno en nuestros teclados y eso lo que va a hacer es que nos va a abrir esta terminal integrada que nosotros estamos viendo acá».
- Ejecución de Programas Python: Se explica cómo ejecutar un archivo .py desde la terminal utilizando los comandos python (en Windows) o python3 (en macOS) seguido del nombre del archivo.
- Ejemplo: «aquí mismo dentro de nuestra misma terminal integrada vamos a escribir python en el caso de Windows y en el caso de macos nosotros vamos a escribir python 3 y luego de eso tenemos que escribir el nombre del archivo que nosotros creamos si no recordamos el nombre del archivo este se encuentra acá en este caso es intro py y así que escribimos intro py y presionamos enter y aquí nosotros podemos ver cómo nuestro programa se está ejecutando de manera correcta».
- Linters (Pylint) en VS Code: Se introduce el concepto de linters y se muestra cómo VS Code puede integrar herramientas como Pylint para identificar posibles errores y problemas de estilo en el código antes de la ejecución. Se menciona la ventana de «Problems» para visualizar estos errores.
- Ejemplo: «Non se encuentra utilizando de todas maneras pilint yo Sencillamente voy a presionar escape ahora vamos a ver una última funcionalidad que tiene el linter en este caso yo voy a colocar aquí nuevamente un tres más no voy a colocar absolutamente nada más y voy a guardar aquí nosotros deberíamos tener los dos problemas uno que es que nos falta una nueva línea y además que aquí nosotros tenemos una expresión inválida si nosotros quisiéramos ver absolutamente todos los problemas que se encuentran dentro de nuestro código basta con que nosotros nos vayamos aquí abajo al izquierda donde aparece esta crucecita acompañada de un dos y ese símbolo de advertencia acompañado de un cero no nosotros podemos pinchar acá y aquí nos va a mostrar todos los potenciales errores que tiene nuestra aplicación incluso antes de ejecutarla».
- Formatters de Código: Se menciona la importancia de tener un código con estilo consistente y se introduce la idea de usar formatters para lograrlo, aunque sin detallar su configuración o uso específico en este extracto.
- Ejemplo: «Ahora les voy enseñar a hacer que su código en python se vea sensual para eso nosotros vamos a venir acá nuevamente a BS code y lo que vamos a hacer es para mantenernos un poco más ordenados vamos a crear un nuevo archivo que se va a llamar format py y esto lo vamos a dejar justamente al lado de intro py y aquí lo que vamos a hacer es lo siguiente vamos a escribir la variable Chanchito igual y vamos a colocar feliz como una palabra o frase como nosotros habíamos visto antes».
3. Números en Python
- Tipos de Números: Se profundiza en los tipos de números en Python: enteros (int), números de punto flotante (float) y números imaginarios (complex), aunque se menciona que estos últimos no serán necesarios para el curso.
- Ejemplos: «vamos a crear un nuevo archivo que se va a llamar Llamar 06 gu n.py vamos a cerrar nuestro archivo anterior y ahora sí comenzamos nosotros lo que sabemos hasta ahora para poder trabajar con números es que estos pueden ser de dos tipos nosotros tenemos un número por ejemplo yo le voy a decir que se llama número este va a ser igual a 2 y este en este caso es un entero si nosotros colocamos los comentarios con el numeral justamente después del código como nosotros lo estamos haciendo acá lo que va a ocurrir es que esta sección se va a ejecutar pero todo lo que se encuentra a la derecha va a ser ignorado este vendría siendo un número entero ahora Nosotros también podríamos tener un número decimal que en este caso un decimal se hace con la anotación de punto en este caso tenemos 1.2 y esto se conoce como float».
- Operaciones con Números: Se revisan las operaciones aritméticas y se introducen operadores como la exponenciación (**) y las asignaciones compuestas (+=, -=, *=, /=).
- Ejemplos: «aquí vamos a escribir print y vamos a sumar 1 + 3 por ejemplo vamos a duplicar esta línea también lo que podemos hacer es restar la primera operación es por supuesto que suma después viene resta esa tú ya Las conoces por supuesto vamos a pasar a la siguiente que es multiplicación y vamos a ir a la siguiente que es la división», «vamos a suponer ahora que nosotros vamos a tener 2 y lo que quiero hacer es elevarlo a 3 O sea 2 * 2 4 nuevamente por 2 8 Cómo se haría eso nosotros en lugar de utilizar el símbolo de porcentaje tenemos q…», «Si yo quiero tomar este número que se encuentra acá y quiero sumarle cinco lo que yo podría hacer es escribir número va a ser igual a número + 5 pero también existe una forma abreviada de poder hacer esto mismo y es número + = 5».
- Funciones Nativas para Números: Se presentan funciones nativas como round() para redondear números y abs() para obtener el valor absoluto.
- Ejemplos: «lo que vamos a hacer es imprimir la siguiente función round Abre paréntesis y aquí nosotros vamos a colocar 1.3 vamos a guardar y ahora vamos a ejecutar nuestra aplicación para ver qué es lo que nos arroja», «vamos a colocar nuevamente print y aquí nosotros vamos a escribir iir ABS abre y cierra paréntesis ABS lo que hará será entregarnos el valor absoluto del número que nosotros le pasemos a esta función».
- Módulo math: Se introduce el módulo math de Python, que proporciona una gran cantidad de funciones matemáticas. Se muestra cómo importarlo (import math) y se ejemplifican algunas de sus funciones como math.ceil() (redondea al entero superior), math.floor() (redondea al entero inferior), math.pow() (eleva a una potencia) y math.sqrt() (calcula la raíz cuadrada). También se menciona math.isnan() para verificar si un valor no es un número, aunque se señala que no funciona con strings. Se explica cómo encontrar la documentación del módulo math en la web.
- Ejemplos: «lamentablemente python no tiene muchas funciones nativas para que nosotros podamos trabajar con números Pero afortunadamente este viene con un módulo incluido de manera nativa que nosotros podemos importar para poder trabajar con números ahora Qué es un módulo un módulo vendría siendo como otro archivo que nosotros podemos traer y que este ya viene con código escrito en python Entonces vamos a importar el módulo que necesitamos nosotros para eso nos vamos a venir aquí a nuestra primera línea y vamos a escribir import math», «justamente acá abajo vamos a escribir print maths esto lo que va a hacer es que va a tomar el número y va a llevarlo al número superior entero más cercano Entonces si nosotros tenemos acá por ejemplo 1.1 si nosotros ejecutamos esto el número más cercano hacia arriba va a ser do», «vamos a colocar print nuevamente ma punto y aquí nosotros vamos a colocar flor y flor lo que va a hacer es que va a tomar el número independiente de cuál sea por ejemplo 1.9999 y lo va a llevar hacia el número entero que se encuentra más cercano pero hacia abajo», «vamos a colocar print ma. Pau y qué es lo que hace Pau Bueno nos permite a nosotros poder Elevar un número a la potencia de algo voy a colocar acá 10 elevado a 3», «fíjense en esto sqrt esto lo que hará será sacar la raíz cuadrada del número que nosotros le pasemos aquí yo le voy a pasar nueve».
4. Conversión de Tipos
- Funciones de Conversión: Se explican las funciones nativas para convertir entre diferentes tipos de datos: int() (a entero), str() (a string), float() (a punto flotante) y bool() (a booleano).
- Ejemplos: «independiente de lo que nosotros recibiéramos por parte del usuario x siempre iba a ser de tipo String y que nosotros necesariamente íbamos a tener que transformarla a un tipo entero o integer Y eso nosotros lo hicimos con la función nativa de python llamada int int no es la única función nativa que existe dentro de python existen varias más existe vamos a irlas anotando aquí inmediatamente int las voy a dejar como comentario también existe str que str lo que hace es que agarra cualquier tipo de dato y lo transforma a un String a continuación También tenemos float este es bastante autoexplicativo y lo que hace es que va a tratar de agarrar cualquier tipo de dato y lo va a transformar en un por si no lo habías notado en un float Y por supuesto que también tenemos Bull y bull lo que va a hacer es que va a tratar de transformar este dato a un bullan o un bullano pero le vamos a decir bullan por ahora».
- Truthy y Falsey: Se introduce el concepto de valores «truthy» (evalúan a verdadero en un contexto booleano) y «falsey» (evalúan a falso), específicamente para la función bool(). Se mencionan como falsey: strings vacíos («»), el número cero (0) y el objeto None. Se demuestra con ejemplos cómo diferentes valores son evaluados por bool().
- Ejemplos: «dentro de python existe un concepto que se llama truthy y falsey esto quiere decir que van a existir datos o ciertos tipos de datos que van a ser evaluados en true si es que nosotros se los pasamos a esta función de poll y también van a existir otros datos que van a evaluar en falso si es que nosotros se los pasamos a esta función de no float a esta función de pll ahora qué datos son esos la verdad es que esto es bastante fácil los datos falsi vendrían siendo o falsey son un String vacío esto quiere decir un String que no tiene absolutamente nada el segundo dato que evalúa en falsy es el cero… y el último dato que puede ser evaluado en falsy es un objeto que se llama Non», «vamos a llamar a Bull de un String vacío esto por supuesto que lo tenemos que imprimir… luego le vamos a indicar Bull de cero después tenemos Bull de Non y después tenemos un Bull de un String con un espacio… vamos a tener otro Bull que va a tener el valor de cero Entonces el primero va a devolver falso el segundo va a devolver true porque es un String que contiene el valor de cer0 el tercero va a devolver falso este va a devolver true y este va a devolver falso».
5. Control de Flujo
- Operadores de Comparación: Se explican detalladamente los operadores de comparación: mayor que (>), menor que (<), mayor o igual que (>=), menor o igual que (<=), igual a (==) y no igual a (!=). Se enfatiza que estas expresiones siempre devuelven un valor booleano (True o False).
- Ejemplos: «lo primero que tenemos que hacer es por supuesto escribir la instrucción de print para poder mostrar en la terminal en qué va a ir evaluando cada cada una de las expresiones que nosotros vamos a colocar», «aquí nosotros vamos a colocar 1 mayor que 2 y qué creen que va a devolver Esto bueno esta expresión cuando nosotros estamos utilizando estos comparadores lógicos van a devolver siempre un valor que puede ser o true o puede ser false», «uno es menor que dos por supuesto que sí Esto va a devolver true», «el siguiente que viene es el de menor igual que vamos a duplicar esto y vamos a cambiarlo por el símbolo de mayor o igual que en este caso uno es mayor o igual que 2s no no lo es es menor que Y en este caso uno es menor o igual que 2 en este caso Sí sí lo es así es que esto debiese devolver true», «cuando nosotros estamos utilizando este operador lógico nosotros estamos utilizando la combinación entre el símbolo de mayor que e igual o sea que si es que el número de acá es igual al número de acá entonces Esto va a evaluar en true pero también va a ser true si es que el número que se encuentra a la izquierda Es mayor que este», «lo que tenemos que hacer es colocar el operador de la doble igualdad Por qué doble igualdad Porque si nosotros colocamos solamente un igual lo que estaríamos haciendo es asignar una variable al valor que se encuentra a la izquierda pero nosotros no lo podemos hacer con los números Así que lo que vamos a hacer es colocar nuevamente la doble igualdad en este caso 2 es igual a 2 por supuesto que sí Esto va a devolver true», «veamos el caso Cuando esto devuelve falso nuevamente lo dejamos en 2 = 3 es ahora Esto va a devolver falso ahora qué es lo que ocurriría si nosotros comparamos dos con el String de dos en este caso como esto es de tipo número específicamente esto es un int Y esto es un String nosotros vamos a tener dos tipos de datos que son completamente distintos Por ende Esto me va a devolver falso», «Vamos a continuar ahora con el último que en este caso vendría siendo la desigualdad o en este caso el not equal esto quiere decir not equal o o no es igual a en este caso dos es no igual a el String de dos por supuesto que sí esto nos va a devolver true pero si nosotros en lugar de eso escribiéramos 2 e distinto de 2 Claro que no son exactamente iguales Así que esto me va a devolver falso».
- Sentencia if: Se introduce la estructura condicional if para ejecutar bloques de código basados en si una condición es verdadera. Se explican las cláusulas elif (else if) para verificar condiciones adicionales si la anterior fue falsa, y else para ejecutar un bloque de código si ninguna de las condiciones anteriores fue verdadera. Se enfatiza la importancia del orden de las condiciones en if/elif.
- Ejemplos: «If a nosotros nos va a poder permitir tomar decisiones en cuanto a qué camino tiene que tomar nuestro código dependiendo del valor que tengan las variables con las que estamos trabajando vamos a verlas para eso nosotros nos venimos nuevamente acá al explorador volvemos a crear un archivo el cual se va a llam Llamar 02 gu ifp y vamos a cerrar el archivo anterior cerramos nuestro explorador y continuamos vamos a suponer que nosotros queremos compr…», «voy a agregar Otra condición más que es lo que pasaría si es que yo Después de haber preguntado si es que tiene más de 54 quiero hacerle otra pregunta Como por ejemplo Ahora quiero saber si es que el usuario es mayor de 18 en ese caso tengo que utilizar la instrucción de El If y aquí yo coloco edad es mayor a 17 dos puntos y aquí es donde yo tengo que colocar nuevamente mi print donde le voy a indicar puedes ver la película», «en cuanto a els no nos tenemos que preocupar tanto ya que si no se cumple esta y si no se cumple esta misión siempre se va a ejecutar Else».
- Operador Ternario: Se presenta una forma concisa de escribir sentencias if-else en una sola línea, útil para asignar un valor a una variable basado en una condición.
- Ejemplos: «Te voy a enseñar un truco para poder escribir nuestros If de manera mucho más concisa vamos a verlo para para eso nosotros vamos a abrir nuevamente nuestro explorador y vamos a crear un nuevo archivo que se va a llamar 03 guif gu ternario py Ahora sí podemos cerrar nuestro explorador Y también vamos a cerrar nuestra pestaña anterior ahora lo que vamos a hacer es crear una nueva variable que va a ser la de edad y aquí Nosotros le vamos a indicar que este tiene 15 años Entonces nosotros podríamos…», «el operador ternario que es este que nosotros estamos viendo acá tiene como objetivo devolver algún valor y ese ser asignado a una variable que nosotros vamos a tener a la izquierda que en este caso es mensaje Por ende el operador ternario lo que va a hacer es asignarle el valor a la variable ya sea con el valor que nosotros le indicamos 100% a la izquierda o sea es mayor o el valor que se encuentra completamente a la derecha y finalmente lo que se encuentra acá en el medio vendría siendo la condición que nosotros tenemos que cumplir».
- Operadores Lógicos (and, or, not): Se explican los operadores lógicos para combinar condiciones. and requiere que ambas condiciones sean verdaderas para que la expresión sea verdadera. or requiere que al menos una de las condiciones sea verdadera. not niega el valor de una condición. Se muestran ejemplos de cómo usarlos en sentencias if.
- Ejemplos: «vamos a crear un nuevo archivo y se va a llamar 04 guion operadores gu logicos.pdf voy a dejarlos separados por coma and nosotros lo vamos a utilizar cuando nosotros tengamos dos condiciones por ejemplo podría ser si es que x es mayor a 5 y si es que un y es mayor a 10 en ese caso nosotros vamos a utilizar and y cuando estos dos sean true en ese caso la operación completa va a evaluar en true Pero si por alguna razón alguno de estos dos valores llegase a ser falso cualquiera de los dos llegas a ser falso en ese caso esto ya no va a poder ser true sino lo que va a ser completamente false», «en el caso de or va a funcionar más o menos similar en ese caso Nosotros también vamos a tener dos condiciones vamos a tener por ejemplo nuevamente un x es mayor a 5 y un y es mayor a 10 y aquí nosotros vamos a utilizar or entonces en el caso que uno de estos dos sea true da lo mismo cual sea pero solamente basta con que uno sea true para que el resultado completo de esta operación sea true», «en el caso de not not lo que hará será negar el resultado de una operación», «ahora lo que nosotros vamos a hacer acá es colocar un If y vamos a preguntar si es que gas y encendido son igual a true en este caso no es necesario que nosotros coloquemos la doble igualdad Ya que en este caso gas ya vendría siendo true o falso y encendido también vendría siendo true o falso Así es que nosotros acá podemos presionar enter y vamos a imprimir puedes avanzar», «qué es lo que pasa si es que nosotros en lugar de utilizar and nosotros lo cambiamos por or en ese caso cualquiera de estos dos valores puede ser true para que nos indica que podemos avanzar», «not lo que hará será tomar este valor cualquiera de estos que sea y le va a cambiar su valor en este caso al completamente opuesto Así es que por ejemplo si es que gas llegas a ser falso lo va a cambiar a true si es que encendido llegas a ser falso lo va a cambiar c a true».
- Cortocircuito en Operadores Lógicos: Se explica cómo funcionan los operadores lógicos and y or en corto circuito. Con and, si la primera condición es falsa, la segunda no se evalúa. Con or, si la primera condición es verdadera, la segunda no se evalúa. Se destaca el beneficio de esto para optimizar el código evitando evaluaciones innecesarias, especialmente en operaciones costosas.
- Ejemplos: «va a depender del operador con el cual nosotros estemos trabajando operador de cortocircuito quiere decir lo siguiente si es que nosotros estamos trabajando con nuestro operador lógico andt quiere decir que necesita que absolutamente Todas Las evaluaciones que están utilizando andt en este caso vendría siendo la evaluación de la izquierda y la evaluación de la derecha ambas tienen que ser true Pero qué es lo que ocurre si es que la primera que es la que se encuentra a la izquierda es falso Bueno en ese caso lo que va a ocurrir es que python va a revisar este valor se va a dar cuenta de que es falso y lo que se encuentra a la derecha derechamente no lo va a evaluar», «en el caso de or Nosotros sabemos que necesitamos por lo menos solamente una expresión que esta evalúe true para que sea considerado absolutamente todo como true entonces en el caso de or basta con que el valor de la izquierda sea true para que ya no se evalúe el valor que se encuentra a la derecha y en el caso que el valor de la izquierda sea falso en ese caso sí se va a evaluar la declaración que se encuentra a la derecha».
- Encadenamiento de Operadores de Comparación: Se menciona la posibilidad de encadenar múltiples operadores de comparación en Python de forma concisa (ej., 1 < x < 10).
6. Bucles
- Bucle for: Se introduce el bucle for para iterar sobre secuencias (como rangos, listas o strings). Se explica cómo usar la función range() para generar una secuencia de números y cómo iterar sobre ella.
- Ejemplos: «vamos a crear un nuevo archivo el cual se va a llamar 06 gu for py Cerramos nuestro archivo anterior Cerramos nuestro explorador y aquí nosotros vamos a comenzar a hablar acerca de los loops o bucles y en este caso vamos a comenzar con el bucle de for el bucle de for nosotros lo vamos a utilizar para poder iterar sobre alguna secuencia por ejemplo podría ser una lista de números una lista de nombres o incluso una secuencia que nosotros vamos a generar en este momento para poder generar una secuencia de números nosotros vamos a utilizar la palabra reservada de Range abre paréntesis y acá nosotros le vamos a indicar la cantidad de números que nosotros queremos generar en este caso le voy a indicar cinco», «La primera vez que se ejecute este bloque de código número va a tener el valor de cero la siguiente vez que se ejecute porque se va a ejecutar por cada uno de los elementos que tenemos Dentro de este Rango va a tener el valor de uno La siguiente vz va a tener el valor de 2s después tres y después cuatro Así es que vamos a colocar acá un print de número».
- break y for-else: Se explica la instrucción break para salir de un bucle for anticipadamente. También se introduce la cláusula else en un bucle for, que se ejecuta si el bucle termina de forma natural (sin ser interrumpido por break). Esto es útil para determinar si se encontró o no un elemento durante la iteración.
- Ejemplos: «lo que yo quiero hacer es poder detener la ejecución de este de código porque Sencillamente el elemento Ya lo encontré Entonces no quiero seguir iterando Por qué Porque si es que yo sigo iterando Voy a darme cuenta que también voy a después continuar con el número cuatro porque Recuerden que este Rango va desde el cer0 hasta el cuatro Pero si yo lo encuentro en mi tercera iteración yo lo que quiero hacer es detener inmediatamente la ejecución de mi Script Así es que lo que nosotros vamos a hacer es utilizar la palabra reservada de break esta instrucción nos va a permitir a nosotros poder detener la ejecución de nuestro código», «qué ocurriría si por alguna razón nosotros no lleg hacemos a encontrar el elemento supongamos que estoy buscando un elemento cuyo valor va a ser 10 pero este Por supuesto que no se va a encontrar dentro de Rango 5 en ese caso nosotros podemos utilizar acá Else que en este caso Else se utiliza como un for Else en este caso sería si es que por alguna razón Yo no he llamado a esta instrucción que es la de break yo lo que voy a hacer es ejecutar esta instrucción que aparece acá y aquí es donde nosotros tenemos que colocar print no en encontré el número buscado y una carita triste».
- Iterables: Se define el concepto de iterable como cualquier objeto sobre el cual se puede iterar en un bucle for. Se menciona que los rangos y los strings son ejemplos de iterables.
- Ejemplo: «nosotros vimos que podemos iterar lo que nos nos devuelve Range 5 en este caso Range 5 corresponde a un iterable y un iterable es cualquier cosa con la cual nosotros podamos iterar Qué quiere decir esto nosotros después vamos a poder crear nuestros propios tipos en este caso…».
- Bucle while: Se introduce el bucle while que ejecuta un bloque de código mientras una condición sea verdadera. Se advierte sobre la importancia de asegurar que la condición eventualmente se vuelva falsa para evitar bucles infinitos. Se muestra cómo usar break también dentro de un bucle while para salir de él bajo ciertas condiciones.
- Ejemplos: «vamos a crear un nuevo archivo el cual se va a llamar 07 guion While py Cerramos nuestro archivo anterior Cerramos nuestro explorador y aquí nosotros vamos a comenzar a hablar sobre el bucle de While el bucle de While nosotros lo vamos a utilizar cuando nosotros no sabemos exactamente cuántas veces nosotros vamos a tener que ejecutar un determinado bloque de código sino que esto va a depender de una condición», «cuál es el problema con esto nosotros podríamos estar ejecutando un Loop que consuma una cantidad de memoria ridícula y eventualmente mi aplicación cuando Cuando consuma toda la memoria de la máquina o cuando el sistema operativo detecte que está consumiendo demasiada memoria Sencillamente va a matar nuestra aplicación y va a dejar de ejecutarse por esto mismo Nosotros siempre nos tenemos que preocupar que si es que vamos a tener algún Loop que va a ser infinito como este que tiene un Wi TR que siempre le agreguemos una condición de salida», «si el usuario escribe exactamente igual a salir en ese caso nosotros vamos a llamar nuevamente a la instrucción de break».
- Bucles Anidados: Se explica el concepto de bucles anidados, donde un bucle se encuentra dentro de otro. Se utiliza un ejemplo con dos bucles for para iterar sobre rangos y se muestra el orden de ejecución de los bucles interno y externo. Se advierte sobre el posible impacto en el rendimiento al trabajar con grandes cantidades de datos en bucles anidados.
- Ejemplos: «Para comenzar a ver los loops anidados lo primero que tenemos que hacer por supuesto es crearnos un nuevo archivo el cual va a ser 08 gu Loop gu anidado py Cerramos el archivo anterior cerramos nuestro explorador y aquí nosotros vamos a comenzar cuando estamos desarrollando existe el concepto de Loop anidado vamos a verlo inmediatamente supongamos ahora que nosotros vamos a tener un número que se va a llamar j y este se va a encontrar dentro del Rango de vamos a decir tres para mantenerlo cortito y justamente aquí adentro tenemos nuevamente otro Loop pero que aquí también va a ser un número pero en lugar de llamarlo J este se va a llamar K Este es el típico ejemplo que te enseñan en las universidades en los bootcamp en todos lados y es la manera más simple de poder entender los loops anidados supongamos ahora que yo voy a tener un Rango de dos y aquí yo lo que quiero hacer es imprimir los números que este me está arrojando».
7. Funciones
- Definición de Funciones: Se enseña cómo definir funciones utilizando la palabra clave def, seguida del nombre de la función, paréntesis (para los parámetros) y dos puntos. El bloque de código de la función se define con indentación. Se muestra cómo llamar a una función utilizando su nombre seguido de paréntesis.
- Ejemplos: «Para comenzar a hablar sobre las funciones lo primero que tenemos que hacer por supuesto es crear un nuevo archivo el cual se va a llamar 01 gu funciones py Cerramos nuestro archivo anterior Cerramos nuestro explorador y aquí nosotros vamos a comenzar lo primero que vamos a hacer es crear nuestra primera función para eso vamos a utilizar la palabra reservada de def seguido de eso nosotros tenemos que darle un nombre a cómo nosotros la vamos a llamar en este caso nuestra función se llama Hola seguido de eso nosotros tenemos acá un abre y cierra paréntesis que en el siguiente video vamos a ver ver por qué va ese abre y cierra paréntesis y después de eso nosotros tenemos unos dos puntos aquí nosotros justamente dentro de nuestra función vamos a escribir print abre y cierra paréntesis y acá vamos a pasarle el String de Hola mundo», «después de esto nosotros lo que queremos hacer es Llamar a nuestra función Por qué Porque si nosotros tratáramos de ejecutar nuestra función inmediatamente no va a ocurrir absolutamente nada Es más hagámoslo ahora voy a pinchar acá y vemos que claro se está ejecutando mi archivo pero no está ocurriendo absolutamente nada Por qué Porque cuando yo creo una función de esta manera yo lo que en verdad estoy haciendo es que estoy creando un bloque de código que va a quedar guardado por ahí y no va a ser llamado hasta que yo no diga que lo voy a llamar así es que llamémoslo lo primero que tenemos que hacer es escribir acá el String de Hola abre y cierra paréntesis y esto lo que hará será Llamar a nuestra función».
- Parámetros y Argumentos: Se explica la diferencia entre parámetros (las variables definidas en la declaración de la función) y argumentos (los valores que se pasan a la función cuando se la llama). Se muestra cómo definir funciones que aceptan parámetros y cómo pasar argumentos al llamarlas. Se destaca que los parámetros en la definición de la función son obligatorios por defecto.
- Ejemplos: «Este es el momento donde nosotros tenemos que ver los argumentos y parámetros de una función Entonces lo primero que nosotros tenemos que hacer es entregarle a esta función una variable que nosotros podamos utilizar en el contexto de la misma función de manera que yo pueda utilizar la variable en cualquier parte de acá y que este me imprima esa variable en este contexto de esta función entonces para eso nosotros vamos a recibir una variable que se va a llamar nombre en este caso esta variable que aparece acá que se llama nombre nosotros vamos a poder utilizarla en el contexto de nuestra función No la vamos a poder utilizar afuera o sea acá no nosotros no la podemos utilizar solamente la vamos a poder utilizar en el contexto de la función ahora como Esto va a ser una variable nosotros vamos a poder imprimirla Así es que vamos a imprimirla acá mismo en el segundo print vamos a cambiar este String a un String formateado y vamos a colocar aquí la variable de nombre y vamos a guardar ahora lo que ocurrió es que cuando nosotros estamos llamando la función nos la está subrayando en rojo y esto es porque todas estas variables que nosotros estamos utilizando en las funciones son obligatorias lo que quiere decir que cada vez que nosotros llamemos a esta función vamos a tener que pasarle un valor para que este sea utilizado en lugar de esta variable Así que vamos a hacer eso aquí mismo donde nosotros estamos Llamando a nuestra función de ola tal cual como nosotros lo hacemos con la función de print vamos a pasar pasarle un valor justamente entre los paréntesis Y en este caso yo le voy a indicar que el valor que le voy a pasar es el String Nicolás», «cada vez que nosotros hacemos referencia a una variable dentro de una función Como por ejemplo aquí podría ser nosotros decimos que estamos haciendo uso de sus parámetros entonces acá donde nosotros estamos imprimiendo nombre esto es un parámetro de la función en este caso el nombre del parámetro es nombre entonces este parámetro se llama nombre y acá solamente en este contexto se llama parámetro por el contrario cuando No nosotros llamamos a la función acá y esta Por supuesto que deja de ser una variable y empieza a tener un valor es cuando nosotros en lugar de referirnos a estos como parámetros nos referimos a estos como argumentos».
- Múltiples Parámetros: Se explica cómo definir funciones con múltiples parámetros, separándolos por comas en la definición. Se muestra cómo pasar múltiples argumentos al llamar a la función, también separados por comas, en el mismo orden que los parámetros definidos.
- Ejemplo: «qué es lo que ocurre si es que yo le quiero pasar más de un valor a esta función en este caso Quiero que mi función tenga más de un parámetro cómo hacemos eso los separamos por coma vamos a venir acá y después de nombre vamos a colocar una coma y vamos a colocar el parámetro de apellido ahora nuestras funciones más abajo cuando las estamos llamando estas Por supuesto que nos estn arrojando un error Por qué Porque falta que le pasemos el apellido o múltiples argumentos en ese caso los tenemos que separar por coma Así es que yo voy a colocar acá coma espacio y nuevamente como un String schurman y vamos a dejar Chanchito feliz como si estos fuesen absolutamente dos strings completamente separados y los vamos a separar acá por una coma ahora vamos a guardar y vemos que nuestra aplicación ya no está teniendo un error pero sí tenemos acá una advertencia Y por qué tenemos esta advertencia porque tenemos una variable en este caso un parámetro que no estamos utilizando que se llama apellido».
- Argumentos por Posición y por Nombre (Keyword Arguments): Aunque no se detalla explícitamente en los extractos proporcionados, la forma en que se pasan los argumentos (según su posición en la llamada a la función, que corresponde al orden de los parámetros en la definición) es la forma predeterminada. El uso de «keyword arguments» (pasando argumentos especificando el nombre del parámetro, e.g., nombre=»Nicolás») es una característica relacionada que podría ser cubierta en secciones posteriores del curso.
- *args (Argumentos Posicionales Variables): Se introduce el uso de *args en la definición de una función para aceptar un número variable de argumentos posicionales. Estos argumentos se recogen en una tupla dentro de la función. Se muestra cómo iterar sobre args para procesar todos los argumentos pasados.
- Ejemplos: «qué es lo que pasa si nosotros queremos pasarles múltiples múltiples múltiples argumentos a una función y la verdad es que no sabemos Cuántos estos van a llegar a recibir bueno para eso podemos utilizar la instrucción de xar vamos a verla o sarks como les pueden decir alguno para eso nos venimos nuevamente acá al editor vamos a crear un nuevo archivo que se va a llamar xarpi y le vamos a antes poner un 02 Ahora sí vamos a cerrar el archivo anterior y cerramos nuestro editor aquí adentro vamos a definir una función que se va a llamar suma y esta por supuesto va a recibir dos argumentos dos parámetros el primero va a ser a y el segundo va a ser B Entonces nosotros acá vamos a colocar un print a + b y tenemos que pasarlos a la función como a y b perfecto y ahora lo que tenemos que hacer es ejecutar esta función vamos a llamar a suma y le vamos a pasar los valores de 2 y 5 Ahora sí vamos a guardar y vamos a ejecutar nuestra aplicación y aquí nosotros vemos que nos está entregando el valor de s Sí definitivamente py sabe sumar ahora qué es lo que pasa si nosotros queremos pasarle un siguiente argumento por ejemplo recibir un parámetro c Bueno en este caso nosotros necesariamente tendríamos que venir aquí a nuestra función y pasarle la c pero esto sería contraproducente Porque después significa que yo tengo que ir a modificar esta función nuevamente Así es que aquí yo le paso siete Pero qué es lo que pasa si yo quiero reutilizar esta función de nuevo y no quiero andar sumando tres números siempre quiero sumar dos o de pronto quiero no sumar dos sino que quiero poder sumar 2 8 7 c 54 muy bien 45 32 y así sucesivamente bueno en este caso estas funciones no me van a funcionar no se van a ejecutar de hecho me está arrojando error afortunadamente nosotros tenemos una nueva instrucción que vamos a ver ahora que nos va a permitir a nosotros poder tomar absolutamente todos los argumentos que queramos en el llamado de una función Así es que nos vamos a venir para acá vamos a eliminar todo esto y vamos a darle un nombre en plural para que nosotros sepamos que estamos hablando de muchos elementos y aquí yo le voy a indicar que se va a tratar de el parámetro números y este como pueden ver se encuentra en plural Además de eso nosotros tenemos que entregarle una instrucc ión que es mágica que va a hacer que todo esto funcione y es el asterisco justamente al comienzo del nombre de nuestro parámetro», «La primera vez números va a ser un iterable se acuerdan que vimos los iterables Bueno aquí vamos a tener un iterable que va a ser 2 5 y 7 va a contener absolutamente todos estos valores No se preocupen por esta sintaxis la vamos a ver más adelante en el curso pero preocúpense de entender que estos son iterables y como todo Buen iterable nosotros les vamos a poder aplicar un for y de esta manera es como nosotros vamos a recor correr todos los números que se encuentran dentro de los argumentos de una función y eso También incluye Este ejemplo que se encuentra acá aquí nosotros vamos a tener un iterable que va a contener 2 8 7 45 y 32 y todos estos van a ser asignados al parámetro de números Así es que ahora nos podemos devolver acá vamos a eliminar esto y aquí es donde nosotros podemos llamar for número in números dos puntos vamos a crear una variable que se va a llamar resultado ya está inicialmente va a valer cer0 y lo que haremos será ir sumándole cada uno de los números a esta variable de resultado Así es que acá nosotros escribimos resultado Esto va a ser igual a más igual número y esta parte es super importante nosotros después lo que tenemos que hacer es presionar enter y si se fijan el editor me va a dejar la entación acá yo no quiero dejar la entación ahí porque si es que yo dejo la entación acá se va a ejecutar la siguiente instrucción que yo escriba Tantas veces como elementos nosotros le estamos pasando a ot través de los argumentos Así es que yo voy a colocar acá un Backspace y aquí es donde yo voy a imprimir la variable que me interesa que en este caso es el resultado y ahora sí voy a guardar».
- **kwargs (Argumentos por Nombre Variables): Se introduce el uso de **kwargs en la definición de una función para aceptar un número variable de argumentos pasados por nombre (keyword arguments). Estos argumentos se recogen en un diccionario dentro de la función, donde las claves son los nombres de los argumentos y los valores son sus respectivos valores.
- Ejemplos: «qué es lo que pasa si nosotros queremos pasarle múltiples argumentos a una función pero en lugar de pasárselos por posición como lo estábamos haciendo recién nosotros se los queremos pasar por nombre bueno para eso nosotros podemos utilizar doble asterisco y aquí nosotros le vamos a colocar por ejemplo el nombre de producto», «cuando nosotros estamos Llamando a una función y le estamos pasando estos dos asteriscos al parámetro en ese caso nosotros cuando llamemos a la función necesariamente vamos a tener que colocar el nombre del parámetro el cual queremos que este sea asignado aquí en la función cuando nosotros hagamos referencia a este ahora Cuántos argumentos podemos pasarle a esta función todos los que queramos absolutamente todos por ejemplo yo le puedo pasar otro que se va a llamar name y este va a tener el valor de por ejemplo iPhone y vamos a tener otro que se va a llamar desk y este vendría siendo la descripción y vamos a indicar que esto es un iPhone por ejemplo», «el valor que se encuentra a la izquierda es el nomb…».
- Alcance de las Funciones (Scope): Se explica el concepto de alcance de las variables en Python. Las variables definidas dentro de una función tienen un alcance local, lo que significa que solo son accesibles dentro de esa función. Las variables definidas fuera de cualquier función tienen un alcance global y pueden ser accedidas desde cualquier parte del programa, aunque se advierte sobre las malas prácticas que puede generar la modificación de variables globales dentro de funciones. Se muestra cómo el nombre de una variable local puede ocultar una variable global con el mismo nombre dentro de la función. Se introduce la palabra clave global para modificar una variable global desde dentro de una función, aunque se recomienda evitar su uso.
- Ejemplos: «vamos a comenzar creando una función que se va a llamar saludar esta no va a recibir absolutamente ningún parámetro y vamos a definir una variable dentro de esta función que se va a llamar saludo y esta va a decir hola mundo vamos a definir ahora otra función que se va a llamar saluda Chanchito y esta tampoco va a recibir ningún parámetro y su mensaje va a ser saludo Hola Chanchito vamos a guardar en este caso Nosotros hemos creado dos funciones una que se llama saludar y otra que se llama saluda Chanchito ambas contienen una variable que se llama saludo y cada una contiene un valor completamente distinto al otro uno contiene el valor de Hola mundo y otra contiene el valor de Hola Chanchito Entonces qué ocurriría si es que nosotros tratáramos de imprimir estas variables Por ejemplo si yo me coloco acá abajo y escribo print saludo vamos a ver qué es lo que ocurre yo ya sé que es lo que ocurre no nos va a funcionar y esto nos va a arrojar un error pero veámoslo de todas maneras vamos a pinchar acá y nos va a indicar el error de name saludo is not defined Qué quiere decir esto que esta variable que se llama saludo no existe no se encuentra definida Pero por qué Si nosotros la estamos viendo acá dentro de la función de saludar y también la tenemos dentro de acá de nuestra función de saluda Chanchito esto es porque el alcance de esta variable que nosotros estamos tratando de llamar es el alcance donde también se encuentran estas mismas funciones iones nosotros podemos definir los alcances de una variable o función dependiendo de dónde se encuentren o dónde se estén definiendo en este caso Yo estoy definiendo la función de saludo dentro de saludo Chanchito y también lo estoy haciendo dentro de la función de saludar ahora qué es lo que ocurre cuando nosotros definimos una función que esta Va a contener una variable en este caso saludo nosotros Solamente vamos a poder acceder a esa variable dentro de la misma función de saludar Qué quiere decir esto nosotros No la vamos a poder llamar …», «pero la verdad es que se ve bastante feo y es una mala práctica Por qué Porque nosotros estamos redefiniendo una variable global dentro de una función y esto podría traer problemas más adelante en nuestro código así es que lo que se suele hacer es utilizar la palabra reservada de global pero ojo esto también es considerado una mala práctica».
- Retorno de Valores (return): Se explica cómo utilizar la instrucción return dentro de una función para devolver un valor. Se muestra cómo el valor retornado puede ser asignado a una variable al llamar la función. Se enfatiza que return también finaliza la ejecución de la función.
- Ejemplo: «Ahora lo que vamos a hacer es crear una función que va a recibir un número y lo que va a hacer es multiplicarlo por cco para eso vamos a crear nuestra función que se va a llamar multiplicar por cco va a recibir un parámetro que se va a llamar número y lo que va a hacer esta función es retornar número asterisco cco ahora yo voy a crear una variable que se va a llamar l y esto va a ser igual a multiplicar por 5 y le voy a pasar el valor de 10 ahora si yo imprimo L voy a guardar y voy a ejecutar mi código voy a ver que tengo el valor de 50».
- Debugging en VS Code: Se introduce brevemente el uso del debugger integrado en VS Code para identificar y solucionar errores en el código. Se menciona cómo establecer puntos de interrupción (breakpoints) para pausar la ejecución y examinar el estado de las variables.
- Ejemplo: «Para eso lo que nosotros vamos a hacer es venirnos acá donde tenemos los números de las líneas y vamos a pinchar por ejemplo acá en la línea 10 y vamos a ver que se va a colocar un puntito de color rojo Esto vendría siendo nuestro punto de quiebre o nuestro break point vamos a hacer exactamente lo mismo acá en la línea número 14 y ahora lo que vamos a hacer es que en lugar de ejecutar nuestro programa de la manera tradicional vamos a venirnos acá arriba donde dice Run y vamos a pinchar en donde dice Start debugging o también podemos presionar la tecla de f5», «una vez que nosotros pinchamos acá vamos a ver que la ejecución de nuestro código se va a detener inmediatamente en la primera línea que nosotros colocamos nuestro break point que en este caso es la número 10 y aquí nosotros podemos empezar a inspeccionar el valor que tienen nuestras variables en este caso l todavía no tiene ningún valor pero si nosotros avanzamos un paso pinchando en continuar que es este que se encuentra acá o presionando f10 vamos a ver que ahora sí l ya tiene el valor de 50 y también podemos ver acá arriba en la sección de variables el valor que tiene l en este momento también podemos inspeccionar el valor de la variable número en este contexto que es 10».
- Ejercicio de Palíndromo: Se presenta un ejercicio para implementar una función que determine si una cadena de texto es un palíndromo (se lee igual al derecho y al revés). Se sugiere crear funciones auxiliares para invertir una cadena y para eliminar espacios.
- Ejemplos: «lo que nosotros tenemos que hacer es primero crear un archivo que se va a llamar 07 ejercicios y aquí nosotros vamos a tener que definir una función que se va a llamar es- b palíndromo y esta va a recibir un parámetro un palíndromo por si no lo sabías es una palabra o frase u oración que se escribe Exactamente igual si es que tú la escribes al derecho o si es que la escribes al revés me explico por ejemplo nosotros tenemos la banda de música ava ava Si es que nosotros la escribimos al revés nos vamos a dar cuenta que es a b b a entonces también va a ser Aba otro palíndromo También conocido es reconocer si es que nosotros escribimos reconocer al revés nos va a dar que esto es reconocer Y así sucesivamente esta función yo ya la tengo implementada y les voy a mostrar a ustedes cómo debería comportarse esta función lo primero que vamos a hacer es imprimir en nuestra terminal el String que queremos verificarse que es un palíndromo Así que vamos a dar con Aba después de eso vamos a llamar a la función de esp palíndromo y aquí le tenemos que pasar el String de ava ahora yo lo que voy a hacer Es que voy a ejecu…».
8. Tipos de Datos Avanzados
- Listas: Se profundiza en el tipo de dato lista en Python. Se explica cómo crearlas (usando corchetes [] y separando los elementos por comas), que pueden contener elementos de diferentes tipos. Se muestra cómo acceder a elementos por índice, cómo realizar slicing para obtener sublistas, y cómo crear listas con valores repetidos utilizando el operador de multiplicación. También se explica cómo concatenar listas usando el operador + y cómo crear listas a partir de iterables como rangos y strings usando la función list().
- Ejemplos: «las listas en python son tal cual como suenan una lista como podría ser por ejemplo una lista del supermercado en una lista del supermercado nosotros podríamos colocar cosas como por ejemplo pan podríamos colocar también cosas como aceite también podríamos colocar cosas como zanahorias Y así sucesivamente Hasta Que terminamos nuestra lista y finalmente esta lista después nosotros se la vamos a pasar a alguien o la podemos tomar nosotros y con eso vamos a ir nosotros al supermercado a poder realizar la compra en base a esta lista que nosotros hemos creado las listas en python son Exactamente lo mismo con la diferencia que además de poder colocar por ejemplo pan aceite zanahorias vamos a poder colocar también números hasta los números que queramos vamos a poder colocar también caracteres vamos a poder colocar también otras listas dentro de estas listas que vendría siendo algo así como una sublista vamos a poder juntarlas entre otras cosas así es que vamos a verlas inmediatamente lo primero que vamos a hacer es crear una lista de números que…», «ahora qué es lo que pasa si es que nosotros queremos por ejemplo un listado que contenga por ejemplo 10 ceros Cómo podemos hacerlo podemos crear nuestra variable que se va a llamar ceros y esta Va a ser igual a un listado que va a contener 00 pero esto tomaría much mucho tiempo y la verdad es que se vería bastante feo existe una forma bastante mejor de poder crear esto y cómo sería eso nosotro…», «ahora qué es lo que pasaría si por ejemplo nosotros queremos crear un listado que contenga un Rango de números Como por ejemplo podría ser vamos a colocar acá una variable de Rango que tenga el número del 1 al 10 se puede hacer esto no esto no lo podemos hacer con esta sintaxis que yo estoy utilizando Pero afortunadamente nosotros podemos utilizar una función que ya la habíamos…», «se acuerdan Qué cosas también son iterables los strings aquí Nosotros le vamos a colocar el String de Hola mundo y vamos a guardar vamos a aprovechar de colocar nuestro print the chars para ver qué es lo que esto nos muestra y ahora sí ejecutamos nuestra aplicación y vemos ahora que tenemos los strings de Hola mundo separados por cada uno de los elementos Dentro de este listado».
- Manipulación de Listas: Se enseña cómo acceder a elementos individuales y a sublistas (slicing), cómo modificar elementos existentes, y cómo usar índices negativos para acceder a elementos desde el final de la lista. Se explica el uso del paso en el slicing (ej., [::2] para obtener elementos con un paso de 2).
- Ejemplos: «vamos a crear un nuevo archivo que se va a llamar 02 gu manipulando guion listas py vamos a cerrar el archivo anterior cerramos también nuestro explorador y ahora sí vamos a comenzar lo primero que necesitamos es una lista que se va a llamar mascotas y este listado de mascotas va a contener a volfgang a pelusa al pulga y a copito vamos a imprimir ahora nuestro listado de mascotas para ver que esto está funcionando Por supuesto que correctamente», «ahora nosotros podemos acceder a cada uno de los elementos de un listado Exactamente igual como nosotros podemos acceder a un car carácter de un String eso nosotros lo hacemos utilizando el paréntesis cuadrado y acá Nosotros le vamos a indicar el índice del elemento al cual nosotros queremos acceder supongamos que nosotros queremos acceder a wolfgang en ese caso tenemos que colocar el número cero porque acuérdense que las listas comienzan desde el cero al igual que los strings», «ahora qué es lo que ocurre si nosotros queremos cambiar un elemento del listado eso nosotros lo podemos hacer utilizando también este paréntesis de llaves accediendo al elemento y acá Nosotros con el símbolo de igual le indicamos Cuál es el nuevo valor que queremos que tenga este elemento del listado en este caso wolfgang aquí Nosotros le vamos a indicar que el primer elemento Ahora va a ser bicho», «supongamos que yo quiero obtener una parte parcial de la lista al igual que con el String nosotros podemos utilizar una convención o una nomenclatura bastante similar De hecho no bastante similar es exactamente la misma nosotros podemos indicar que queremos desde el elemento cero y luego de eso queremos tres elementos y si nosotros imprimimos esto vamos a ver que nos va a devolver los primeros tres elementos nos devuelve bicho pelusa y pulga», «qué es lo que ocurre si yo decido utilizar por ejemplo un índice negativo pongamos por e…», «acá nosotros vamos a escribir mascotas nuevamente vamos a utilizar los paréntesis cuadrados y aquí nosotros vamos a hacer lo siguiente vamos a colocar dos puntos dos puntos nuevamente y le vamos a colocar el número dos cuando nosotros estamos colocando el número dos le estamos diciendo tomo el primer elemento el siguiente Salto saltalo toma el siguiente el siguiente sát Alo y toma el siguiente».
- Desempaquetado de Listas: Se enseña una forma elegante de asignar los elementos de una lista a variables individuales utilizando la sintaxis de desempaquetado (ej., primero, segundo, tercero = [1, 2, 3]). También se muestra cómo desempaquetar una parte de la lista y asignar el resto a otra lista utilizando el asterisco (*otros).
- Ejemplos: «si nosotros quisiéramos obtener cada uno de estos números o cada uno de los valores que se encuentran dentro de estas listas de manera que nosotros podamos utilizarlas como variables independientes tendríamos que necesariamente según lo que hemos aprendido hasta ahora a hacer esto crearíamos una variable que se va a llamar primero y Esto va a ser igual a números cero voy a copiar y pegar esta lista varias veces este elemento Perdón esta línea y voy a colocar acá segundo Aquí tengo que colocarle números uno y aquí tengo que acceder al segundo índice y por supuesto cambiar el nombre de la variable a tercero y de esta manera Nosotros sabemos que primero contiene el valor de uno segundo contiene el valor de dos y tercero contiene el valor de tres ahora esto que nosotros estamos haciendo acá es feo es horrible les voy a enseñar una manera bastante más elegante de poder hacer exactamente esto mismo», «justo ente más abajo vamos a escribir la variable de primero luego vamos a colocar coma después vamos a colocar segundo coma nuevamente y después colocamos tercero y aquí ya no colocamos más coma pero sí vamos a colocar el símbolo de igual y vamos a colocar nuestra lista de números Esta es la forma corta que nosotros tenemos para poder obtener cada uno de los elementos que se encuentran dentro de un listado ahora primero va a ser uno segundo va a ser dos y tercero va a ser tres profesor no le creo Bueno te lo voy a mostrar vamos a imprimir esto escribimos Sprint primero segundo y tercero Ahora sí vamos a guardar y vamos a ejecutar nuestra aplicación y aquí nosotros vemos que tenemos los valores de 1 2 y T…», «vamos a crear una variable que se va a llamar otros y aquí nosotros vamos a colocar un asterisco y vamos a indicar que lo que sobre de esta lista que tenemos acá la vamos a asignar a otros ahora nosotros vamos a imprimir otros y vamos a ver qué es lo que nos muestra».
- Métodos de Listas: Se introducen algunos métodos importantes para manipular listas:
- append(): Añade un elemento al final de la lista.
- Ejemplo: «vamos a tomar nuestra lista de mascotas y le vamos a agregar un nuevo elemento al final para eso nosotros vamos a escribir mascotas punto y aquí vamos a escribir append abre y cierra paréntesis y aquí adentro nosotros vamos a pasarle el elemento que queremos agregar en este caso vamos a agregar un nuevo perrito que se va a llamar Pluto».
- insert(): Inserta un elemento en una posición específica de la lista.
- Ejemplo: «vamos a insertar un nuevo elemento en nuestra lista de mascotas para eso nosotros vamos a escribir nuevamente mascotas punto y vamos a escribir insert abre y cierra paréntesis y este método recibe dos argumentos el primer argumento es el índice donde nosotros queremos insertar el nuevo elemento en este caso yo quiero que sea en el índice cero O sea al comienzo de la lista y después separado por una coma le vamos a indicar Cuál es el elemento que nosotros queremos insertar vamos a colocar acá Fifi».
- extend(): Añade todos los elementos de un iterable (como otra lista) al final de la lista.
- Ejemplo: «tenemos nuestra primera lista de números y tenemos nuestra segunda lista de más números lo que vamos a hacer ahora es tomar nuestra primera lista de números y vamos a extenderla con los elementos que se encuentran dentro de más números para eso nosotros vamos a escribir números punto y vamos a escribir extend abre y cierra paréntesis y aquí adentro le vamos a pasar nuestra segunda lista que es más números».
- remove(): Elimina la primera ocurrencia de un valor específico de la lista. Si el valor no existe, lanza un error.
- Ejemplo: «vamos a eliminar un elemento de nuestra lista de mascotas para eso nosotros vamos a escribir mascotas punto y vamos a escribir remove abre y cierra paréntesis y aquí adentro nosotros le vamos a indicar cuál es el elemento que nosotros queremos eliminar en este caso vamos a eliminar a pulga».
- pop(): Elimina y devuelve el elemento en un índice específico (el último por defecto si no se especifica el índice).
- Ejemplo: «qué es lo que ocurre si nosotros queremos eliminar el último elemento de nuestra lista pero a su vez queremos saber cuál es el elemento que nosotros eliminamos bueno para eso nosotros vamos a escribir mascotas punto y vamos a escribir pop abre y cierra paréntesis y esto por defecto lo que va a hacer es eliminar el último elemento de la lista pero a su vez lo va a retornar y nosotros lo podemos guardar en una variable vamos a crear una variable que se va a llamar ultimo y le vamos a asignar lo que nos devuelva mascotas punto pop y después vamos a imprimir la lista de mascotas y también vamos a imprimir cuál fue el último elemento que nosotros eliminamos», «si nosotros le pasamos un índice a pop por ejemplo el índice cero lo que va a hacer es que va a eliminar el primer elemento».
- del: Se menciona brevemente como otra forma de eliminar elementos o sublistas utilizando la sintaxis del lista[índice] o del lista[inicio:fin].
- clear(): Elimina todos los elementos de la lista, dejándola vacía.
- Ejemplo: «si nosotros quisiéramos eliminar absolutamente todos los elementos que se encuentran dentro de nuestra lista de mascotas lo que podemos hacer es escribir mascotas punto y vamos a escribir clear abre y cierra paréntesis y después vamos a imprimir nuestra lista de mascotas para ver qué es lo que ha ocurrido».
- sort(): Ordena los elementos de la lista in situ (modifica la lista original). Admite argumentos para personalizar el orden (ej., reverse=True).
- Ejemplo: «vamos a ordenar nuestra lista de números para eso nosotros vamos a escribir números punto y vamos a escribir sort abre y cierra paréntesis y esto por defecto lo que va a hacer es ordenarlos de menor a mayor si es que se trata de números o alfabéticamente si es que se trata de strings», «si nosotros quisiéramos ordenarlos de mayor a menor lo que tenemos que hacer es pasarle un argumento a la función de sort en este caso le tenemos que indicar Reverse igual a true».
- sorted(): Devuelve una nueva lista ordenada a partir de los elementos de un iterable, sin modificar el iterable original.
- Ejemplo: «existe otra función que se llama sorted que lo que va a hacer es crear una nueva lista ordenada con los elementos de un iterable por ejemplo nosotros acá le vamos a pasar nuestra lista de números y lo que va a hacer es que nos va a devolver una nueva lista ordenada con estos números».
- index(): Devuelve el índice de la primera ocurrencia de un valor específico en la lista. Lanza un error si el valor no se encuentra.
- Ejemplo: «si nosotros quisiéramos encontrar un elemento Dentro de este listado nosotros podemos hacer uso del método index entonces acá nosotros escribimos mascotas pun Index y acá nosotros podemos escribir Cuál es el elemento que nosotros estamos buscando para que este nos devuelva el índice siempre y cuando este exista entonces yo voy a colocar acá entre comillas dobles voy a buscar a pulga y esto por supuesto lo vamos a imprimir».
- count(): Devuelve el número de veces que un valor específico aparece en la lista.
- Ejemplo: «para contar Cuántas veces existe algo dentro de un arreglo Por qué si es que yo llego a colocar por ejemplo como segundo elemento también wolfgang y ejecu…».
- Búsqueda en Listas: Se muestra cómo usar el método index() para encontrar la posición de un elemento y cómo utilizar el operador in para verificar si un elemento existe en la lista antes de intentar acceder a él.
- Ejemplos: «si nosotros quisiéramos encontrar un elemento Dentro de este listado nosotros podemos hacer uso del método index entonces acá nosotros escribimos mascotas pun Index y acá nosotros podemos escribir Cuál es el elemento que nosotros estamos buscando para que este nos devuelva el índice siempre y cuando este exista entonces yo voy a colocar acá entre comillas dobles voy a buscar a pulga y esto por supuesto lo vamos a imprimir», «si nosotros no queremos que esto nos arroje un error necesariamente vamos a tener que revisar primero si es que el elemento se encuentra dentro del listado Y eso nosotros lo hacemos escribiendo un sencillo If y aquí nosotros vamos a escribir lo que nosotros estamos buscando por ejemplo If wolfgang in mascotas dos puntos y ahora en el caso que este se encuentre sí lo va a imprimir».
- List Comprehensions: Aunque no se menciona explícitamente, las list comprehensions son una forma concisa de crear listas basadas en iterables existentes y podrían ser cubiertas en secciones posteriores del curso.
9. Sets
- Sets: Se introduce el tipo de dato set en Python. Se explica que los sets son colecciones desordenadas de elementos únicos (no duplicados). Se muestra cómo crear sets utilizando llaves {} o la función set() a partir de otros iterables (como listas o tuplas). Se enfatiza que, al ser desordenados, no se puede acceder a los elementos de un set por índice.
- Ejemplos: «vamos a crear un nuevo archivo el cual se va a llamar 09 gu sets py Cerramos el archivo anterior Cerramos nuestro explorador y aquí nosotros vamos a comenzar a hablar sobre otro tipo de dato avanzado que nos ofrece python el cual se conoce como sets o conjuntos los sets son muy similares a las listas con la gran diferencia de que los sets no mantienen un orden y tampoco permiten elementos duplicados para poder crear un set nosotros vamos a tener dos alternativas la primera es crear una variable y asignarle llaves de esta manera vamos a colocar acá primer set va a ser igual a Abre llave uno coma dos coma tres y cierra llave», «para poder crear un segundo set el cual va a ser por ahora va a ser una lista la cual va a ser 3 cu y 5 ahora Nosotros sabemos que si utilizamos los paréntesis cuadrados estamos creando una lista y no un set Entonces vamos a transformar esto a un set Así que lo que vamos a hacer es reemplazar nuestra variable de segundo y vamos a indicar que esto se va a crear a partir de la función set que como tienes que haber pensado bien Por supuesto que tú lo ent tuviste set Recibe un iterable y se acuerdan que las listas también son iterables Entonces nosotros lo que vamos a hacer es que le vamos a pasar segundo que vendría siendo la lista que nosotros definimos acá arriba Ahora sí nosotros vamos a guardar y esto lo que hace por supuesto es crear un set en base a una lista pero también lo podríamos hacer en base a una tupla», «Ahora sí nosotros vemos que tenemos el 3 4 y 5 que vendría siendo nuestra segunda lista que después la transformamos a un set».
- Operaciones con Sets: Se explican las operaciones de conjuntos:
- Unión (| o union()): Combina todos los elementos de ambos sets, eliminando duplicados.
- Ejemplo: «el primer operador es este y si nosotros colocamos primer con segundo y lo imprimimos vamos a ver qué es lo que nos devuelve y aquí nosotros vemos que tenemos los números el 1 2 3 4 y 5 Qué quiere decir esto se va a encargar de poder hacer una Unión de los sets que nosotros le pasemos Y por supuesto como tiene la característica de ser un set va a eliminar todos los elementos que se encuentran duplicados en este caso va a sacar uno también va a sacar dos pero este set no cuenta con el cinco pero sí cuenta con tres y cuenta con cuatro así es que no va a agregar el tres no va a agregar el cuatro Pero sí va a agregar el cinco aquí al final Esa es la gracia que tienen los sets cuando nosotros estamos utilizando este operador este operador que aparece acá se le conoce como Unión y como bien Dice el nombre se va a encargar de poder juntar el primer set con el segundo set y los va a unir».
- Intersección (& o intersection()): Devuelve un nuevo set con los elementos comunes a ambos sets.
- Ejemplo: «vamos a ver el siguiente operador que es el de interse para eso nosotros vamos a crear primer Aquí vamos a colocar un ampersand y el segundo set vamos a aprovechar de comentar la línea de arriba Vamos a guardar y vamos a ejecutar nuestro código y aquí nosotros vemos que nos está devolviendo el tres y el cuatro por qué Porque la intersecci…».
- Diferencia (- o difference()): Devuelve un nuevo set con los elementos que están en el primer set pero no en el segundo.
- Ejemplo: «vamos a ver el siguiente que vendría siendo la diferencia para eso nosotros vamos a colocar primer menos segundo vamos a comentar la línea de arriba guardamos ejecutamos y acá nosotros vemos que nos devuelve el uno y el dos por qué porque estos son los elementos que se encuentran en el primer set pero no se encuentran en el segundo set».
- Diferencia Simétrica (^ o symmetric_difference()): Devuelve un nuevo set con los elementos que están en uno de los sets pero no en ambos.
- Ejemplo: «Vamos a ver la última operación que vamos a ver de sets que es la diferencia simétrica para eso nosotros vamos a tomar primer vamos a colocar este símbolo de techito que vendría siendo la diferencia simétrica y vamos a colocar segundo vamos a comentar la línea de arriba guardamos ejecutamos y aquí nosotros vemos que tenemos un 1 do Y cco por qué tenemos un 2 y cco porque acá se encuentra el uno y el dos acá se encuentra el cinco pero el tres y el cuatro se encuentra en el primero y en el segundo Entonces los saca de esta operación».
- Consultar Existencia en Sets: Se muestra cómo usar el operador in para verificar de forma eficiente si un elemento pertenece a un set.
- Ejemplo: «lo que sí podemos hacer es preguntar If por ejemplo c in segundo y en el caso de que este sí se encuentre nosotros vamos a imprimir Hola mundo».
10. Diccionarios
- Diccionarios: Se introduce el tipo de dato diccionario en Python. Se explica que los diccionarios son colecciones de pares clave-valor, donde las claves deben ser únicas e inmutables (generalmente strings) y los valores pueden ser de cualquier tipo. Se muestra cómo crear diccionarios utilizando llaves {} y la sintaxis clave: valor para definir los pares.
- Ejemplos: «los diccionarios son una colección de datos que se encuentran agrupados por una llave y un valor esto quiere decir que nosotros podemos tener una colección que va a tener por ejemplo un identificador como nombre que vendría siendo muy similar a lo que vendría siendo un nombre de variable y luego de esto a esta llave Nosotros le vamos a asignar un valor que podría ser por ejemplo Hola mundo Nosotros también podríamos después tener otra llave que podría ser por ejemplo la edad y la edad Podría tener el valor de por ejemplo 27 y así sucesivamente vamos a ver ahora cómo nosotros podemos crear un diccionario ya todo esto los diccionarios son sumamente utilizados porque por lo general es como las bases de datos nos devuelven a nosotros los datos como por ejemplo podría ser un listado de usuarios un listado de productos y a…», «para poder crear un diccionario tenemos que utilizar el Abre paréntesis de llaves y para poder cerrar nuestro diccionario vamos a tener que utilizar el cierra paréntesis de llaves Luego de eso cada llave que nosotros definamos la vamos a tener que que definir necesariamente con un String Luego de eso nosotros vamos a colocar los dos puntos y al costado derecho le vamos a indicar el valor que le queremos asignar si nosotros queremos agregar además otra llave Dentro de este diccionario necesariamente los vamos a tener que separar por una coma».
- Acceso a Valores: Se enseña cómo acceder a los valores de un diccionario utilizando la clave entre corchetes (ej., diccionario[«clave»]). Se explica que intentar acceder a una clave inexistente genera un KeyError.
- Ejemplo: «si nosotros queremos acceder a alguno de los valores que se encuentran asociados a estas llaves nosotros podemos utilizar el paréntesis cuadrado ahora Estos no son listas y tampoco son sets Así es que nosotros no podemos acceder a estos va lores utilizando el 0 o el uno aquí nosotros tenemos que indicarle mediante un String Cuál es la llave a la cual nosotros queremos acceder Entonces si nosotros queremos acceder a x nosotros acá dentro de este paréntesis cuadrado tenemos que colocar el String de X», «intentemos de acceder a Lala que es lo lo que ocurrirá nosotros vamos a ejecutar nuestra aplicación y acá nosotros vemos que tenemos un error nos está indicando key error Lala Qué quiere decir esto que la llave Lala no existe».
- Agregar y Modificar Pares Clave-Valor: Se muestra cómo agregar nuevos pares clave-valor a un diccionario simplemente asignando un valor a una nueva clave (ej., diccionario[«nueva_clave»] = valor). Si la clave ya existe, se actualiza su valor.
- Ejemplo: «nosotros podemos llamar a punto utilizamos los paréntesis cuadrados nuevamente y acá le vamos a indicar una nueva llave que nosotros queramos agregar en este caso yo le voy a indicar Z y le voy a asignar el valor de 45 y vamos a guardar ahora si es que yo decido imprimir nuevamente mi punto vamos a ejecutar nuestra aplicación vamos a ver ahora que nuestro diccionario tiene el valor de X tiene el valor de I y el valor de Z como sus llaves ya a la derecha se encuentran los valores asociados a estos».
- Método get(): Se presenta el método get() como una forma segura de acceder a los valores de un diccionario. Si la clave existe, devuelve su valor; si no existe, devuelve None por defecto o un valor predeterminado especificado como segundo argumento.
- Ejemplo: «el siguiente método que nosotros podemos utilizar para poder acceder a un valor del diccionario pero que nuestra aplicación no explote es utilizando el método get que tienen los diccionarios en ese caso nosotros vamos a llamar a print vamos a llamar a punto y aquí escribimos punto get abre y cierra paréntesis y acá Nosotros le tenemos que indicar el String que le vamos a pasar como argumento y este String va a ser la llave del diccionario acá nosotros vamos a a colocar x y vamos a guardar ahora vamos a ejecutar y acá nosotros vemos que tenemos nuevamente el valor de 25 Ahora qué pasa si por alguna razón el valor no existiese como por ejemplo podría ser Lala vamos a guardar y vamos a ver qué es lo que nos devuelve nos está devolviendo Non esto quiere decir que el valor por supuesto no existe dentro de este diccionario afortunadamente lo que nosotros también podemos hacer es pasarle un valor por defecto en el caso que la llave no exista y eso se lo pasamos como un segundo argumento aquí yo le voy a indicar que el valor por defecto va a ser 97».
- Eliminar Pares Clave-Valor (del): Se explica cómo usar la palabra clave del para eliminar un par clave-valor específico de un diccionario.
- Ejemplo: «si yo quisiera eliminar alguna de estas llaves incluyendo su valor yo lo que puedo hacer es utilizar del espacio seguido de la llave que yo quiero eliminar en conjunto con su valor en este caso vamos a eliminar x y esto es lo que hará será eliminar por supuesto x asociado con su valor pero también existe una función que se llama del que me va a permitir a mí poder eliminar también una llave que se encuentra asociada a mi diccionario».
- Iterar sobre Diccionarios: Se muestran diferentes formas de iterar sobre un diccionario usando un bucle for:
- Iterar sobre las claves (por defecto): for llave in diccionario:.
- Ejemplo: «for y luego de eso vamos a escribir valor in punto dos puntos y luego vamos a imprimir valor vamos a ver qué es lo que esto nos devuelve porque lo más probable es que no nos devuelva lo que tú estás esperando ahora sí nosotros vamos a pinchar acá para poder ejecutar nuestra aplicación y fíjense que ahora me está devolviendo Z y x que vendrían siendo las llaves que tienen asociado este diccionario».
- Iterar sobre los valores: for valor in diccionario.values():. (No se muestra en el extracto, pero es una forma común).
- Iterar sobre los pares clave-valor (ítems): for llave, valor in diccionario.items():.
- Ejemplo: «acá nosotros vamos a escribir for valor in punto y acá vamos a llamar al método items y vamos a pasarle una ciera paréntesis luego de esos dos puntos y vamos a imprimir valor para ver qué es lo que esto nos devuelve vamos a ejecutar nuestra aplicación y Aquí vemos que nos está devolviendo tuplas donde el primer elemento vendría siendo la llave y el segundo elemento vendría siendo el valor y como nosotros aprendimos Nosotros podemos hacer un desempaquetado de las tuplas para poder acceder a sus valores al igual que con las listas Así es que vamos a hacer eso mismo vamos a copiar esta línea vamos a pegarla acá abajo y aquí en lugar de escribir valor vamos a escribir llave coma valor y ahora podemos imprimir acá llave y valor y ahora si nosotros ejecutamos nuestra aplicación vamos a ver que tenemos nuevamente z45 y x25».
- Desempaquetado de Iterables Múltiples: Se introduce el uso del operador de desempaquetado (* para listas/tuplas y ** para diccionarios) para combinar múltiples iterables en una sola lista o diccionario de forma concisa. Se muestra cómo desempaquetar listas y cómo desempaquetar diccionarios (uniendo los pares clave-valor; en caso de claves duplicadas, la última en ser desempaquetada prevalece).
- Ejemplos: «vamos a crear una lista combinada que se va a llamar combinada y Esto va a ser igual a una lista operador de desempaqueta esto lista uno coma espacio asterisco nuevamente lista dos y ahora si es que nosotros imprimimos combinada vamos a ver que tenemos una nueva lista que contiene absolutamente todos los elementos de la lista uno y también de la lista dos Nosotros también por supuesto Podemos agregar elementos al comienzo por ejemplo vamos a agregar acá Hola entre medio de lista uno y lista dos vamos a agregar mundo y al final vamos a agregar el String de Chanchito ahora vamos a guardar y vamos a volver a ejecutar y acá nosotros tenemos Hola tenemos nuestra lista uno después tenemos mundo tenemos nuestra lista dos y después tenemos Chanchito», «la única diferencia Es que la sintaxis va a ser similar a esta en lugar de utilizar un asterisco va a utilizar dos les voy a mostrar ahora Cómo se haría eso vamos a crear acá nuestro punto 1 y Esto va a ser igual a x y su valor va a ser 19 vamos a tener un punto 2 el cual va a tener un y y su valor va a ser 15 ahora vamos a guardar y vamos a generar un nuevo punto y esto vamos a decir que va a ser igual nuevamente a un diccionario pero aquí nosotros vamos a utilizar el operador de desempaqueta para los diccionarios y este se hace con dos asteriscos acá nosotros colocamos punto un coma nuevamente dos asteriscos y punto dos ahora vamos a guardar y vamos a ejecutar aquí nosotros vemos ahora que no nos muestra nada porque nos faltó colocar un print volvemos a ejecutar y acá nosotros tenemos un nuevo diccionario creado con las propiedades de ambos diccionarios las de punto un y también las propiedades de punto dos y estos se encuentran dentro de nuevo punto ahora qué es lo que ocurriría si nosotros además de Esto colocá justamente en punto uno nuevamente la propiedad de y y le qué creen que pasaría Bueno vamos a verlo en este caso vamos a ejecutarlo Y tenemos nuevamente el valor de 19 y también el de 15 para Y qué es lo que está ocurriendo la forma de asignar las propiedades es desde la derecha hacia la izquierda Qué quiere decir esto Si es que acá yo tengo una propiedad x y acá yo también tengo una propiedad x esta propiedad x va a ser reemplazada por la que se encuentra en la derecha pero si es que esta propiedad x no se encuentra en la izquierda lo que va a hacer es que va a venir y se va a asignar a este diccionario que se encuentra en la izquierda ahora Nosotros también lo que podemos hacer es agregarle más llaves con valores a este diccionario».
Este briefing document proporciona una visión general de los temas fundamentales cubiertos en los extractos del curso «Aprende Python ahora!». El curso progresa de manera lógica desde los conceptos más básicos hasta la introducción de estructuras de datos más complejas, preparando al estudiante para escribir programas en Python de manera efectiva.convert_to_textConvertir en fuenteNotebookLM puede ofrecer respuestas inexactas. Compruébalas.
Preguntas Frecuentes sobre los Fundamentos de Python
1. ¿Cuáles son las operaciones matemáticas básicas que se pueden realizar en Python y cómo se representan?
Python permite realizar operaciones aritméticas fundamentales:
- Suma: Se realiza con el operador +. Ejemplo: 2 + 2 devuelve 4.
- Resta: Se efectúa con el operador -. Ejemplo: 3 – 1 resulta en 2.
- Multiplicación: Se usa el operador *. Ejemplo: 2 * 4 da como resultado 8.
- División: Se realiza con el operador /. Ejemplo: 16 / 4 produce 4.0.
- División Entera: Se obtiene solo la parte entera del cociente con //.
- Módulo: Se calcula el resto de una división con el operador %.
- Exponenciación: Se eleva un número a una potencia utilizando **.
2. ¿Cómo maneja Python los valores booleanos y los operadores de comparación?
Python utiliza los valores booleanos True (verdadero) y False (falso) para representar resultados de comparaciones lógicas. Los operadores de comparación permiten evaluar relaciones entre valores y siempre devuelven un booleano. Algunos operadores comunes son:
- Mayor que: > (ejemplo: 2 > 1 devuelve True)
- Menor que: <
- Mayor o igual que: >=
- Menor o igual que: <=
- Igual a: ==
- No igual a: !=
3. ¿Qué son los strings en Python y cómo se pueden manipular para acceder a partes de ellos o modificar su formato?
Los strings son secuencias de caracteres que se utilizan para representar texto en Python. Se definen utilizando comillas simples (‘) o dobles («). Se puede acceder a caracteres individuales utilizando la indexación (el primer carácter tiene el índice 0). El slicing permite obtener subcadenas especificando un rango de índices. Métodos útiles para manipular strings incluyen:
- .capitalize(): Convierte la primera letra de cada palabra a mayúscula y el resto a minúscula.
- .strip(): Elimina los espacios en blanco al inicio y al final del string.
4. ¿Cuáles son los tipos de datos numéricos fundamentales en Python y qué operaciones se pueden realizar con ellos?
Python soporta tres tipos principales de datos numéricos:
- Enteros (int): Números enteros sin parte decimal (ejemplo: 2).
- Números de punto flotante (float): Números con parte decimal (ejemplo: 1.2).
- Números imaginarios (complex): Números complejos (ejemplo: 2 + 2j). Se pueden realizar operaciones aritméticas básicas (+, -, *, /), división entera (//), módulo (%), y exponenciación (**). También existen asignaciones compuestas como +=, -=, *=, /=.
5. ¿Cómo se utilizan las estructuras de control de flujo for y while para realizar tareas repetitivas en Python?
El bucle for se utiliza para iterar sobre una secuencia (un iterable) como un rango de números
Guía de Estudio de Fundamentos de Python
Quiz (Respuestas Cortas)
- ¿Cuáles son cuatro operaciones matemáticas básicas que se pueden realizar en Python y cuáles son sus símbolos correspondientes? Se pueden realizar la suma (+), la resta (-), la multiplicación (*) y la división (/). Python también ofrece la división entera (//) y el operador módulo (%).
- ¿Qué son los booleanos en Python y qué tipo de valores representan? Proporciona un ejemplo de una operación que resulta en un valor booleano. Los booleanos en Python son un tipo de dato que representa valores de verdad: True (verdadero) o False (falso). Un ejemplo de una operación que resulta en un booleano es la comparación, como 5 > 3, que evalúa a True.
- Explica brevemente qué es un error de sintaxis en Python y proporciona un ejemplo basado en el texto. Un error de sintaxis en Python ocurre cuando el intérprete encuentra un código que no sigue las reglas gramaticales del lenguaje. Un ejemplo es intentar una suma sin el segundo operando, como 5 +, lo cual generará un SyntaxError.
- ¿Cómo se define y se accede a un carácter específico en un string en Python? Proporciona un ejemplo utilizando el string «Python». Un string en Python se define utilizando comillas simples o dobles. Se accede a un carácter específico utilizando la indexación con corchetes [] y el índice del carácter, comenzando desde 0. Por ejemplo, en el string «Python», nombre_curso[0] accedería a la letra ‘P’.
- Describe la diferencia entre los métodos de string capitalize() y strip(). El método capitalize() convierte la primera letra de cada palabra en un string a mayúscula y el resto a minúscula. El método strip() elimina los espacios en blanco (y otros caracteres especificados opcionalmente) que se encuentren al principio y al final de un string.
- Nombra y describe brevemente dos tipos de números fundamentales en Python. Dos tipos de números fundamentales en Python son los enteros (int), que representan números enteros sin parte decimal (ej., 5, -2), y los números de punto flotante (float), que representan números con parte decimal (ej., 3.14, -0.5).
- ¿Para qué se utilizan las funciones nativas round() y abs() en Python? La función nativa round() se utiliza para redondear un número al entero más cercano (o a un número específico de decimales). La función nativa abs() se utiliza para obtener el valor absoluto de un número, es decir, su magnitud sin importar su signo.
- ¿Cuál es el propósito del módulo math en Python y cómo se importa? Nombra dos funciones del módulo math mencionadas en el texto. El módulo math en Python proporciona una colección de funciones matemáticas más avanzadas que las operaciones básicas. Se importa utilizando la declaración import math. Dos funciones mencionadas son math.ceil(), que redondea un número al entero superior más cercano, y math.floor(), que redondea un número al entero inferior más cercano.
- Explica la diferencia entre un bucle for y un bucle while en Python, según lo descrito en el texto. Un bucle for en Python se utiliza para iterar sobre una secuencia de elementos (como un rango o una lista) un número predefinido de veces. Un bucle while ejecuta un bloque de código mientras una condición especificada sea verdadera, y la cantidad de iteraciones puede no ser conocida de antemano.
- ¿Qué son los diccionarios en Python y cómo se accede a los valores dentro de ellos? Los diccionarios en Python son colecciones de pares clave-valor, donde cada clave es única y se utiliza para acceder a su valor asociado. Se accede a un valor en un diccionario utilizando su clave entre corchetes, por ejemplo, diccionario[«clave»].
Preguntas de Ensayo
- Compara y contrasta los diferentes tipos de datos fundamentales en Python (enteros, floats, booleanos, strings), discutiendo sus características, usos principales y cómo se declaran y manipulan.
- Describe el concepto de alcance (scope) de las variables en Python, explicando la diferencia entre variables locales y globales. Discute las implicaciones del alcance en la organización y la depuración del código.
- Explica la utilidad de las funciones en la programación en Python. Describe los diferentes tipos de argumentos que una función puede aceptar (*args y **kwargs) y cómo se utilizan dentro de la función.
- Discute la importancia de las estructuras de control de flujo (condicionales if/elif/else y bucles for/while) en la creación de programas en Python. Proporciona ejemplos de cómo se pueden utilizar estas estructuras para resolver problemas específicos.
- Compara y contrasta las listas, los conjuntos (sets) y los diccionarios en Python. Explica sus características distintivas, cuándo es apropiado utilizar cada tipo y cómo se realizan las operaciones básicas en cada uno de ellos.
Glosario de Términos Clave
- Booleano (Boolean): Tipo de dato que representa un valor de verdad: True o False.
- String: Secuencia de caracteres, utilizada para representar texto.
- Integer (Entero): Número entero sin parte decimal.
- Float (Punto Flotante): Número con parte decimal.
- Syntax Error (Error de Sintaxis): Error que ocurre cuando el código no sigue las reglas gramaticales del lenguaje Python.
- Variable: Nombre simbólico que se refiere a un valor almacenado en la memoria.
- Asignación: Proceso de dar un valor a una variable utilizando el operador =.
- Indexación: Acceder a un elemento específico de una secuencia (como un string o una lista) utilizando su posición o índice.
- Slicing (Rebanado): Obtener una subsección o subcadena de una secuencia especificando un rango de índices.
- Capitalización: Convertir la primera letra de una palabra a mayúscula y el resto a minúscula.
- Espacios en Blanco (Whitespace): Caracteres invisibles como espacios, tabulaciones y saltos de línea.
- Secuencia de Escape: Combinación de caracteres en un string que representa un carácter especial (ej., \n para nueva línea).
- Módulo: Archivo que contiene código Python (funciones, clases, variables) que puede ser importado y utilizado en otros programas.
- Función Nativa: Función que está integrada en el lenguaje Python y está disponible para su uso sin necesidad de importarla.
- Bucle (Loop): Estructura de control que permite repetir un bloque de código varias veces.
- Iteración: Cada ejecución del bloque de código dentro de un bucle.
- Iterable: Cualquier objeto en Python sobre el cual se puede iterar (ej., listas, strings, rangos).
- Condición: Expresión que evalúa a True o False y determina si un bloque de código se ejecuta.
- Break: Instrucción que se utiliza para salir inmediatamente de un bucle.
- Continue: Instrucción que se utiliza para saltar la iteración actual de un bucle y pasar a la siguiente.
- Bucle Anidado (Nested Loop): Un bucle que se encuentra dentro de otro bucle.
- Función: Bloque de código reutilizable que realiza una tarea específica.
- Parámetro: Variable definida en la definición de una función que recibe un valor cuando la función es llamada.
- Argumento: Valor que se pasa a una función cuando se la llama.
- *args: Parámetro especial en la definición de una función que permite recibir un número variable de argumentos posicionales como una tupla.
- **kwargs: Parámetro especial en la definición de una función que permite recibir un número variable de argumentos con nombre (palabra clave) como un diccionario.
- Alcance (Scope): Región del código donde una variable es accesible. Puede ser local (dentro de una función) o global (fuera de cualquier función).
- Retorno (Return): Instrucción dentro de una función que especifica el valor que la función debe devolver y finaliza la ejecución de la función.
- Debugging (Depuración): Proceso de identificar y corregir errores en el código.
- Breakpoint (Punto de Interrupción): Marcador en el código donde la ejecución del programa se pausa durante la depuración.
- Palíndromo: Palabra, frase u oración que se lee igual de izquierda a derecha que de derecha a izquierda.
- Lista: Colección ordenada y mutable de elementos.
- Set (Conjunto): Colección desordenada de elementos únicos.
- Diccionario: Colección de pares clave-valor, donde las claves son únicas y se utilizan para acceder a los valores.
- Clave (Key): Elemento único e inmutable en un diccionario que se utiliza para acceder a su valor asociado.
- Valor (Value): Dato asociado a una clave en un diccionario.
- Método get(): Método de los diccionarios que permite acceder a un valor utilizando su clave, devolviendo None o un valor predeterminado si la clave no existe.
- del: Palabra clave utilizada para eliminar elementos (ej., pares clave-valor de un diccionario).
- Método items(): Método de los diccionarios que devuelve una vista de los pares clave-valor (como tuplas).
- Desempaquetado (Unpacking): Extraer elementos de un iterable (como una lista o tupla) o pares clave-valor de un diccionario y asignarlos a variables individuales.
- Operador de Desempaquetado (* y **): Símbolos utilizados para desempaquetar iterables en listas/tuplas (*) o diccionarios (**) durante la creación de nuevas colecciones o en llamadas a funciones.