Hola a todos y bienvenidos a este curso de introducción a programación en python si siempre has querido aprender a programar bueno en las próximas horas vas a aprender todos los fundamentos que necesitas saber yo soy estefanía y este curso fue especialmente creado para freak torkham así que comenzamos primero que todo veamos por qué deberías aprender a programar el famoso steve jobs fundador de la Empresa apple dijo que todo el mundo debería aprender a programar porque te enseña a pensar esto lo dijo en 1995 y es totalmente cierto deberías aprender a programar porque te enseña a
resolver problemas cuando programamos resolvemos un problema y lo traducimos a una serie de pasos esos pasos o esa secuencia de instrucciones van a ser ejecutadas para resolver ese problema de forma automatizada estas instrucciones se escriben una a una en un lenguaje de Programación y en este caso tú vas a aprender a programar impacto pero existen muchos lenguajes de programación y en cada uno de ellos puedes implementar las instrucciones para resolver ese problema y los lenguajes de programación nos permiten comunicarnos con la computadora y decirle qué es lo que queremos que haga por nosotros para resolver
ese problema el código lo escribimos en archivos para poder utilizarlos y Ejecutarlos muchas veces las cuantas veces queramos veamos un poco más sobre qué es un lenguaje de programación en este curso vas a aprender sobre python que es un lenguaje de programación ampliamente utilizado actualmente un lenguaje de programación formalmente se define como un lenguaje formal con reglas que están bien definidas y nos permite escribir una serie de instrucciones esta es la palabra clave en la definición con un Lenguaje de programación nosotros lo que hacemos es escribir una serie de instrucciones y esas instrucciones pueden ser
leídas y ejecutadas por la computadora eso es exactamente lo que necesitamos un lenguaje que nos permita escribir las instrucciones para resolver el problema esa serie de instrucciones que vamos a escribir van a conformar lo que nosotros vamos a denominar un programa un programa va a ser un archivo en el cual vamos a escribir esa serie de Instrucciones veamos un poquito más sobre por qué deberías aprender pipe puesto actualmente es utilizada en la industria en aplicaciones reales así que estarán aprendiendo habilidades que puedes aplicar directamente en un trabajo es altamente poderoso y además es fácil de
aprender especificamente payton se utiliza en ciencia de datos en inteligencia artificial aprendizaje automático desarrollo web y en enseñanza de programación también porque es Altamente pedagógico se escribe muy parecido al lenguaje común que nosotros utilizamos para hablar y no tiene tantos detallitos que puede hacer que aprender a programar sea un poquito más difícil payton simplifica todo el proceso de aprendizaje de programación así nos podemos concentrar en los fundamentos de programación además se utiliza en diversas áreas que ni siquiera te imaginarías en desarrollo de juegos en la parte médica en ciencias puras como Por ejemplo en biología
e incluso en astronomía hay funciones especiales creadas en python para y aplicaciones diversas en todo tipo de industria que te imaginas aquí tenemos un breve resumen de las ventajas de payton es fácil de aprender tiene una sintaxis clara y sencilla es altamente poderoso y debido a que es altamente poderoso tiene aplicaciones reales en la industria y por lo tanto tiene alta demanda en el mercado laboral Ahora que has aprendido por qué deberías aprender a programar y las ventajas de aprender python veamos nuestra primera pregunta rápida en el curso vas a encontrar ciertos momentos en los
cuales vamos a tener preguntas rápidas para repasar lo que acabas de ver tengamos nuestra primera pregunta verdadero o falso un lenguaje de programación como python nos permite escribir instrucciones y estas instrucciones pueden ser leídas y ejecutadas por una Computadora verdadero o falso totalmente verdadero el lenguaje de programación es la herramienta que utilizamos para escribir los programas la serie de instrucciones que van a ser ejecutadas bien ahora comencemos con nuestro primer tema primero lo primero veamos cómo instalar python en tu computadora lo primero que debes hacer es ir a la página web payton punto o hereje
python punto org esa es la página oficial de payton desde Donde puedes descargar este lenguaje de programación lo primero que verá será esta pantalla y allí debes buscar downloads que significa descargas en español si tu sistema operativo es windows puedes hacer clic directamente en este botón descargar para windows y allí descargar a la versión más reciente de este lenguaje de programación en este momento esa versión es python 3.9 punto uno debes notar aquí hay una pequeña nota Que nos avisa que payton 3.9 en adelante no puede ser utilizado en windows 7 o versiones anteriores de
windows así que deberías descargar una versión anterior si este es tu sistema operativo también dependiendo de tu sistema operativo si tienes mac o en otras plataformas haces clic aquí y allí puedes escoger la versión de payton puedes descargar su instalador por ahora hagamos clic en este botón y vamos a ver cómo comienza la descarga Una vez que la descarga esté completada vas a ver un instalador donde deberías hacer doble clic luego de hacer doble clic vas a ver una pantalla similar a esta en este caso la versión que se muestra es 3.9 punto 0 porque
es el instalador que yo descargue pero esta versión va a corresponder al instalador que tú descargas de para tu sistema operativo esta parte de aquí va a ser una pequeña cajita donde puedes hacer clic para Comenzar la instalación esta parte de aquí también te permite personalizar la instalación donde se instalan lenguaje de programación y distintas características de la instalación pero yo recomiendo utilizar la instalación por defecto que viene con el listado esta opción que podemos ver por aquí nos permite instalar python para todos los usuarios ese es el setting o la configuración Recomendada y esta
cajita que tenemos por aquí no viene marcada por defecto pero si la marcamos vamos a poder usar python en la línea de comandos en este curso no vamos a requerir de esta cajita aquí no vamos a usar python en la línea de comandos y esto se puede modificar luego de instalar el lenguaje de programación así que si prefieres puedes dejarla desmarcado o también puedes marcarla si planeas usarlo con la línea de comandos Haz clic aquí instala python y nos vemos en el próximo tema son sólo unos minutos y luego estarás a un paso de comenzar
a aprender los fundamentos de programación tv oye buen trabajo si llega hasta este punto del curso es porque ya instaladas de payton en tu computadora ahora vamos a ver cómo puedes usar una herramienta poderosísima que se instaló junto con el lenguaje de programación esa herramienta se llama it le o en inglés se pronuncia Iron es una herramienta que nos va a permitir trabajar con nuestro código veamos más sobre este tipo de herramienta aire libre en un entorno integrado de programación que es un entorno integrado de programación es un software o una herramienta que nos permite
tener muchas herramientas pequeñitas abiertas juntas para poder trabajar con nuestro código ejecutarlo y también modificarlo esta herramienta y glenn se instala automáticamente cuando Instalas python en tu computadora con iron puedes básicamente hacer tres funciones para trabajar con tu código puedes escribir código archivos guardar archivos y trabajar con archivos python puedes editar esos archivos si necesitas cambiar algún programa y también puedes ejecutar el código de tus programas así que tenemos las funciones principales para trabajar compacto como puedes abrir un ejecutado normalmente Por defecto se instala en esta ubicación particular en la computadora veamos comenzamos con esta
pc luego el disco local el disco se usuarios en nombre de tu usuario en mi caso es staff en la carpeta update appdata aquí tenemos esa carpeta que puede estar oculta y ya veremos cómo puedes mostrarlos si está oculta en tu sistema operativo luego de app te irás vamos a la carpeta local Luego a programas luego a payton python 39 hay una carpeta para cada versión de payton yo tengo varias versiones de paignton instaladas y se pueden tener varias versiones instaladas simultáneamente 39 significa que ésta corresponde a payton 3.9 luego de que entramos a esta
carpeta python vamos al libro y luego la carpeta haedo de allí vamos a conseguir un archivo específico en el que vamos a Hacer clic vamos a ver esto con un poco más de detalle si nosotros vamos a mi disco local el disco same y hacemos clic en la carpeta y users usuarios luego hacemos clic en mi usuario que es staff en tu caso sería un usuario diferente el usuario con el cual te registraste en la computadora y aquí vemos distintas carpetas pero si vemos con detalle vamos a ver que no hay ningún lado una carpeta
que diga abdera como deberíamos tener aquí para llegar al archivo de id Esto ocurre porque la carpeta está escondida y cómo podemos mostrarla bueno haciendo clic aquí en view y luego seleccionando hidden ítems hay temas escondidos la marcamos y ahora sí vamos a ver una carpeta aquí que está como un poquito más clarita o transparente que nos dice a ctera hacemos doble clic aquí y luego vamos a la carpeta local luego vamos a la carpeta programs python python 39 en mi caso tengo varias versiones instaladas En simultáneo luego en la carpeta del live y dentro
de todas estas carpetas escogemos esta carpeta que se llama el lip aquí vamos a ver muchos archivos pero el que vamos a buscar es este específico ya vas a ver estos dos que están aquí y diles que tienen de nombre isla y ve es un símbolo específico de payton que es un archivo tipo país vamos a hacer clic en el archivo de Payton que contiene una línea de comandos aquí hay una que nos dice aquí en la descripción que tiene no tiene una consola no buscando ese no es el archivo en el que vamos a
hacer clic vamos a hacer clic en el de arriba el que sí tiene una consola ya vas a ver en un segundo que significa tener consola o no si hacemos doble clic vas a ver esta pantalla blanca por unos segundos con una orden de calor titilando y luego se abre esto que Tenemos aquí esta va a ser una de nuestras herramientas principales durante el curso que es la consola o el shell interactivo de payton donde vamos a poder escribir y ejecutar líneas de código de forma interactiva apenas las escribamos podamos ejecutarlas veamos cómo funciona esta
herramienta lo que llamamos la consola interactiva wii sail de payton y aquí vemos una descripción inicial de algunas características de nuestra Versión de payton y esta es la parte que más nos va a interesar durante el curso estas 3 flechitas que puedes ver aquí nos indican que la consola está lista para que ingresemos un comando aquí vas a ver un indicador titilando que nos dice que podemos ingresar un comando por ejemplo si nosotros queremos hacer una suma sencilla por ejemplo 5 + 5 podemos escribirla allí y ejecutar ese comando haciendo clic en enter vamos a
ver en azul el resultado de esa operación 10 Y felicitaciones ya ejecutas te tu primera línea de código porque también las operaciones aritméticas pueden ser líneas de código en tu programa y así sucesivamente podemos escribir y ejecutar comandos en la consola interactiva aquí arriba podemos ver una serie de herramientas que también podemos usar por ejemplo para las operaciones más comunes que vamos a utilizar son crear un nuevo archivo abrir un archivo existente guardar un Archivo y guardar un archivo como también puedes abrir archivos recientes y cerrar la ventana en el menú de eddie de editar
podemos deshacer y rehacer cortar copiar y pegar seleccionar todo y usar otras herramientas que nos permiten reemplazar valores o encontrar valores en las líneas que estamos escribiendo también tenemos el menú deseado que nos permite reiniciar la consola interactiva y interrumpir la ejecución de un programa Esta función de interrumpir la ejecución de un programa puede ser muy útil en algunos casos pero ya llegaremos a ello cuando le hablemos sobre los bucles o los ciclos en options podemos hacer clic en conflicto y ayron que nos permite configurar iron cambiar el tipo de letra el tamaño de la
letra que puede ser muy útil también si marcar esta cajita si queremos que la letra sea negrita y cambiar cómo se presenta nuestro código cuántos espacios se usan para escribir Nuestro código se pueden configurar otras cosas como se resalta el código y otras opciones generales en la pantalla general yo recomiendo marcar esta cajita específica que nos permite mostrar el número de la línea en los archivos cuando creamos una nueva ventana eso va a ser muy útil para que cada una de las líneas de nuestro archivo esté marcado con un número y así podamos referirnos a
ella más fácilmente ya sabes las herramientas principales de La parte interactiva de iron ahora vamos a ver cómo puedes crear un archivo se puede crear un archivo con el menú fire new file archivo nuevo eso va a abrir una pantalla nueva que podemos ver aquí esto es lo que denominamos un archivo de pipe creado con iron puedes ver que la primera línea hay un cursor o un indicador titilando y el número uno marcando esa línea si hacemos clic en enter se crean nuevas líneas y cada línea va a estar marcada con un número Porque hicimos
clic en esa cajita en la configuración general vas a ver que cuando trabajemos más en el curso esto se va a volver cada vez más útil tenemos los mismos menús son muy parecidos que en la zona interactiva de aero tenemos el menú de fallo con las mismas funciones de guardar abrir y crear un nuevo archivo tenemos las funciones para editar el contenido del archivo este menú es nuevo y nos va a permitir corregir el formato de nuestro Código y este menú también es nuevo la función más común que vamos a utilizar va a ser esto
lohan mayo que nos va a permitir ejecutar el módulo o el archivo con el cual estamos trabajando así podemos correr o ejecutar nuestro código en la en la zona interactiva de aero lo escribimos en el archivo el agua o el efecto se va a mostrar en la zona interactiva de airón genial ahora ya sabes las principales Funciones de aero así que comencemos y escribamos tu primer programa en parte si estás siguiendo el curso paso a paso al mismo ritmo que tron escribe esta línea print seguido de un par de paréntesis print en una función en
programación una función es un nombre que le asignamos a un proceso oa una secuencia de instrucciones específicas en este caso sprint nos va a permitir mostrar un mensaje y qué mensaje vamos a mostrar Bueno dentro de los paréntesis rodeamos entre comillas el mensaje este mensaje que vamos a mostrar es tradicional en el mundo de programación hola mundo con signo de exclamación para darle más emoción esta frase es tradicional para que todo el mundo que aprenda el programa prácticamente todos los desarrolladores comenzaron a aprender a programar escribiendo un programa o la moto así que felicitaciones recuerda
este momento Porque cuando ya tengas más experiencia programando siempre lo vas a tener presente cuando recuerdes tus inicios necesitamos guardar el archivo hacemos clic en file luego en save vamos a la carpeta donde queremos guardar el archivo y le asignamos un nombre en este caso vamos a ponerle hola mundo y guardamos una vez que tenemos guardado el archivo vamos a ver el nombre aquí con la Extensión del archivo pe y esta extensión nos dice que el archivo es un archivo pipe y aquí vemos la ubicación del archivo en la computadora ahora hagamos clic en round
y round match o correr el módulo y bueno aquí vemos ese mismo mensaje mostrado en azul cuando veas un elemento en azul en la consola interactiva ese es el resultado de ejecutar tu programa felicitaciones ya escribiste y ejecuta este tu primer programa en python hola Mundo ya está familiarizado con las funciones principales de iron así que comencemos con nuestro primer tema de contenido del curso donde aprenderás sobre las variables comencemos a ver uno de los conceptos más fundamentales de programación el concepto de variable una variable en programación es simplemente un nombre que se le asigna
a un valor que vamos a usar en el programa ese nombre representa un espacio en memoria que se Va a reservar para ese valor en la memoria de la computadora cuando nosotros creamos una variable básicamente estamos creando un espacio en la memoria donde vamos a poder alojar o guardar un valor específico nosotros asignamos el valor a la variable y luego ese valor podemos imaginar como si estuviera alojado dentro de la variable en realidad lo que estamos haciendo es asignar un nombre para referirnos al valor que está actualmente Ubicado en ese espacio en memoria y luego
podemos usar esa variable ese nombre que nosotros asignamos para usar o acceder al valor en nuestro programa además podemos actualizar el valor que está conectado o asociado a esa variable a ese nombre específico en el programa por eso que las variables son tan importantes porque nos permiten asignarle un nombre a un valor y usar ese valor en nuestro programa este es un ejemplo clásico de una asignación de un Valor una variable en este caso tenemos el nombre de la variable a la izquierda este es básicamente como debes escribir esa línea de código específica primero el
nombre de la variable a la izquierda luego el signo igual que es el operador el símbolo que vamos a usar para asignar un valor a la variable y luego el valor en sí que vamos a asignar en este caso estamos asignando el valor 5 a la variable no reservamos un espacio en memoria para esa variable y actualmente Le asignamos el valor 5 luego ese valor va a estar asociado a esta variable y vamos a poder usar este nombre en nuestro programa para referirnos al valor 5 en general esta es la forma de esta línea de
código que podemos usar para asignar un valor a una variable el nombre de la variable seguido de un signo igual y el valor en sí que vamos a asignar durante el curso vas a ver estos Símbolos que estoy usando aquí pero esto es sólo una forma de indicar que este contenido que está aquí por ejemplo va a dar variable en una descripción de lo que en realidad va a estar aquí es como una indicación de que aquí va a haber algo específico estos símbolos en realidad no se escriben en el código van a ser reemplazados
por el elemento que está descrito por la descripción van a ser reemplazados toda esta parte aquí por el nombre de la variable y aquí por El valor a ambos lados de este símbolo 'igual' tenemos que agregar un espacio esto no es estrictamente necesario en el lenguaje de programación pero es recomendado para hacer que nuestro código sea más fácil de leer y eso es algo muy importante seguir las recomendaciones de estilo del lenguaje de programación porque aunque algo esté permitido en un lenguaje de programación no necesariamente hay que hacerlo hay Que seguir las mejores prácticas para
escribir código que sea limpio código fácil de leer veamos un ejemplo de cómo podemos asignar un valor a una variable aquí estamos en la consola interactiva de payton en el shell de payton si nosotros definimos una variable digamos núm de número luego escribimos un espacio un signo igual otro espacio y un valor digamos 15 y podemos hacer clic en enter para Ejecutar esa línea de código no vemos nada como anteriormente habíamos visto una presentación o un valor azul pero esa línea de código se ejecutó y esa variable ahora existe en memoria como podemos comprobarlo bueno
si escribimos el nombre de la variable y hacemos clic en enter vamos a ver su valor retornado su valor en azul el valor 15 y así es como podemos comprobar que la variable en realidad existe en memoria y la podemos usar en nuestro Código si queremos actualizar el valor de la variable por ejemplo si queremos cambiarlo a un número digamos 8 usamos exactamente la misma forma de la línea de código la misma sintaxis en solo que denominamos sintaxis la forma de escribir una línea particular de código hacemos clic en enter y nuevamente no vemos nada
inmediatamente pero la línea de código si se ejecutó y el efecto sobre la variable también se ejecutó si volvemos a revisar el valor de la Variable ahora vemos el valor 8 porque actualizamos el valor con esta línea así es básicamente cómo funcionan las variables primero las definimos esto se llama una definición de una variable cuando la creamos por primera vez y le asignamos un valor luego la usamos en nuestro programa aquí por ejemplo podríamos haber usado esta variable como parte de cualquier línea del código y luego las actualizamos podemos cambiar su valor y Luego volverlas
a usar básicamente esta es la lógica de una variable en python podríamos haber usado esta variable en cualquier línea de código actualmente el valor de esta variable en este punto es 8 si nosotros sumamos 2 usamos esta variable y le sumamos 2 vamos a ver el valor 10 este valor automáticamente detrás de escena fue reemplazado por el valor 8 el valor de la variable genial ya sabes cómo funcionan las variables en Programación así que veamos más detalles sobre ellas existen ciertas reglas que debemos seguir para nombrar a las variables de nuestro programa una de esas
reglas es que los nombres de variables en python deben empezar con una letra o con un guión bajo así que normalmente iniciamos con una lista como veis aquí también está permitido comenzar con un guión bajo en teoría pero normalmente no lo usamos sino en un Tipo muy específico de programación y los nombres de las variables además no pueden no pueden simplemente no pueden porque está prohibido comenzar con un número en este caso este nombre de variable comienza con el número 9 y por lo tanto no está permitido y se va a mostrar un error si
tratamos de usarlo definirla en el programa de esta forma este es el error que va a ocurrir si intentamos ingresar este nombre de variable en el Chele interactivo aquí vemos error de sintaxis sintaxis inválida esto es lo que dice en español error de sintaxis sintaxis inválida cuando escribas algo que no está permitido en el lenguaje de programación es decir la forma de la línea de código no es la adecuada igual que cuando escribimos en español una oración puede ser que no sea correcta según las normas del lenguaje bueno también tenemos errores de sintaxis en programación
Cuando escribimos algo que viola las reglas del lenguaje de programación y este género que vas a ver aquí vemos más detalles sintaxis inválida así que no podemos comenzar el nombre de una variable con un número además las variables los nombres de las variables sólo pueden contener caracteres alfanuméricos desde la a la z en mayúscula de la a la z en minúscula 0 a 9 y además pueden contener guión bajo este es un carácter especial que pueden Contener los nombres de las variables y los vamos a usar para separar las distintas palabras si el nombre de
la variable requiere más de una palabra por ejemplo el número de vistas o número de visitas un nuevo nombre completo estos son ejemplos de variables que son un poco más complicados y por lo tanto como tienen varias palabras podemos separar esas palabras con un guión bajo ahora no puede contener ningún otro carácter que no sea alfanumérico y en este caso este Nombre de variable tiene una arroba este no es un carácter alfanumérico así que vemos un error de sintaxis porque se violaron las reglas del lenguaje las reglas de payton además es importante que sepas que
se distingue entre mayúsculas y minúsculas en python cuando nosotros definimos una variable por ejemplo edad y minúscula esa variable es distinta a la variable de edad que comienza con una letra Mayúscula y esa variable es a su vez distinta de otra variable definida completamente en mayúsculas son tres variables distintas vamos a confirmar esto en la consola interactiva si nosotros definimos una variable digamos edad 24 por ejemplo y presionamos enter vamos a definir esa variable en memoria asimismo si nosotros creamos una variable edad que comienza con una letra mayúscula y le asignamos El valor digamos 70
y definimos una tercera variable edad toda en mayúscula con un valor de 15 si estas variables se considerarán como la misma variable en memoria tendría que tener el último valor no 15 porque se consideraría como una simple actualización de su valor pero veamos qué es lo que pasó edad tiene su valor 24 resumen porque es una variable independiente de estas dos no se consideran como la misma variable edad Con mayúscula mantiene su valor 70 y edad escrita todo en mayúscula mantiene su valor 15 y así comprobamos que son variables distintas y debes tener eso presente
cuando programas en python bien ahora es momento de una pregunta rápida selecciona el o los nombres válidos para una variable según las reglas que acabas de aprender piénsalo durante unos segundos y ya revés las opciones correctos son la c y la b La opción c solo contiene letras y guión bajo y la opción de sólo contiene también letras y guión bajo y comienza con un guión bajo que está permitido en python y estas dos opciones no son válidas porque esta contiene un carácter que no es alfanumérico y está inicia con un número el nombre de
una variable no puede iniciar con un número bien ya sabes cómo funciona una variable en programación así que pasemos a Nuestro siguiente tema del curso ya sabes trabajar con variables pero qué tipo de datos podemos asignar a esas variables con qué tipos de datos podemos trabajar en python ese es el tema que vas a aprender ahora comencemos con el tipo de datos numéricos veremos dos tipos de datos numéricos el primero es el tipo de dato entero el tipo de dato entero está constituido por los números que no poseen decimales esos números pueden ser positivos negativos
o también Pueden ser en el 0 cuando está representado sin números decimales estos son ejemplos de números enteros números positivos números negativos y el 0 y cómo podemos comprobar que ellos realmente son del tipo entero podemos usar una función muy útil en python esta función nos permite obtener el tipo de datos del valor que pasamos entre paréntesis debemos pasar el valor que queremos analizar entre paréntesis para que la Función type nos diga qué tipo de valores si pasamos un valor entero vamos a ver este mensaje que podemos ver acá esta parte es la más importante
ésta es la que nos dice el tipo de datos del valor en este caso es int que es una abreviación de el inglés interior por eso se abrevia el tipo de dato como int integer enter aquí tenemos algunos ejemplos del uso de la función type para comprobar que estos valores son enteros 5 - 15 y 0 en python no existe un límite para el número máximo entero máximo que podemos representar en nuestro código está limitado únicamente por los recursos del dispositivo donde se está ejecutando el programa así que todo depende del dispositivo los números en
coma flotante en cambio son números que sí tienen decimales poseen decimales y pueden ser positivos o negativos o inclusive el 0 si está Representado como 0.0 cuando usamos la función time vamos a ver esto como el mensaje en azul el output el tipo de datos de en coma flotante se denomina flow en inglés flow en inglés significa flotar y por ello sale el nombre el número de coma flotante este nombre se debe a la forma en que se representan los números en memoria ese es un tema muy interesante en el que quizás quisieras profundizar más
sobre cómo se representan los números en coma flotante En programación en la memoria de la computadora aquí tenemos algunos ejemplos del uso de la función type para ver que estos valores en realidad son flight 0.5 13.4 4.0 aquí vemos que incluso si el valor decimal es 0 4.0 el valor aún así es considerado un flow y si tuviéramos 0.0 ese valor también sería un flow y otro tipo de valor con el cual podemos trabajar son los valores búlgaros los valores bull ya nos representan los Valores de verdad verdadero y falso verdadero en inglés se escribe
true y falso en inglés se escribe false vamos a tener que trabajar con estos valores como se escriben en inglés porque en python son palabras especiales reservadas para el lenguaje de programación y él lo reconoce únicamente si están escritos de esta forma específica además debe iniciar con letras mayúsculas la tf y la f los valores julianos son importantes Para las expresiones condicionales las vamos a ver más adelante durante el curso y además son importantes para los ciclos que también son conocidos como bucles estas estructuras van a ser fundamentales para escribir programas poderosísimos en python y
en general en cualquier lenguaje de programación aquí puedes verlos cómo se muestran en un color diferente en 'iron por qué porque son palabras especiales lo que llamamos en programación una keyword son palabras Reservadas en el lenguaje de programación que van a tener un color diferente y que solo escritas de esta forma van a ser reconocidas por el programa si nosotros usamos la función type vamos a ver esto como el output como el valor retornado nos dice que los valores son de tipo b o l en inglés esto se pronuncia vu si nosotros usamos la función
type en cada uno de los valores vamos a ver que este tipo de datos book y esos son tres Tipos de datos básicos que podemos usar en python vamos a seguir viendo otros tipos de datos más elaborados con los que podemos trabajar en el próximo tema veamos un tipo de datos más elaborados con el que podemos trabajar en python este tipo de datos es muy usado en programación y es muy común lo vas a conseguir prácticamente en todos los programas que leas se denominan cadenas de caracteres las cadenas de caracteres son también denominados string en
inglés Este término lo puedes encontrar en literatura en inglés y en la documentación en python son una secuencia de caracteres estas claves secuencia de caracteres que están encerrados entre comillas y son usados para representar texto en el programa es el tipo de datos que vamos a usar en cualquier momento que necesitemos representar o usar o guardar texto en el programa usted debe sonar familiar esta Descripción no encerrados entre comillas si es verdad cuando escribiste tu primer programa hola mundo rodeamos ese mensaje entre comillas así que ya trabajaste con cadenas de caracteres y no te habías
dado cuenta para este momento veamos sus características principales este es un ejemplo de una cadena de carácter en python vemos el contenido del texto que se quiere representar este contenido puede tener cualquier tipo de carácter que puedas escribir con el teclado y Rodeando ese texto tenemos comillas dobles esas comillas dobles también pueden ser comillas simples python acepta ambos estilos siempre que seas consistente en tu código la cadena de carácter puede contener cualquier carácter que pueda generar con el teclado y si aplicamos llamamos a la función type pasando una cadena de caracteres entre paréntesis vamos a
ver este mensaje class str que es una abreviación de la palabra String en inglés definamos una cadena de caracteres en el cielo interactivo digamos la variable nombre y entre comillas en este caso voy a usar comillas dobles yo personalmente prefiero usar siempre comillas dobles y dentro de esas comillas escribo el contenido de la cadena de caracteres digamos que necesitas representar un nombre en un sistema si presiona gente se va a asignar esa cadena de caracteres a la variable y podemos usarla en Nuestro programa siempre cuando veas este valor en azul el output del programa el
valor generado por el programa la cadena de caracteres se va a mostrar con comillas simples aunque hayas usado comillas dobles para definirla lo que no puedes hacer en python es mezclar el uso de las comillas no puedes abrir la cadena de caracteres con un tipo de comillas y cerrarla con uno diferente eso va a resultar en un error En este error específico en un error de sintaxis porque estás violando las reglas del lenguaje y que dice ese error o l significa en inglés en online fin de línea mientras se estaba escaneando el literal de la
cadena de caracteres es decir que el programa de texto que se llegó al final de la línea y la cadena de caracteres todavía no había terminado ella sólo detecta que termina la cadena de caracteres cuando encuentra el tipo de comilla correspondiente y por eso se Genera el error algo muy importante que debes saber es que el valor de un entero un número representado como un número entero no es igual que un número que es parte de una cadena de caracteres en este caso este el valor va a tener unas propiedades o va a poder ser
usado en el programa de forma distinta que este valor porque son de un tipo de datos distinto si nosotros usamos la función time vemos Que el tipo de valor de este número es entero y el tipo de valor de este número es una cadena de caracteres este valor lo vas a poder usar en operaciones aritméticas como suma resta multiplicación división entre otras a cadena de caracteres solo puede ser usada como una cadena de caracteres tradicional una característica muy importante de las cadenas de caracteres es su tamaño en inglés lo denominamos line o longitud el Tamaño
de la cadena de caracteres es el número de caracteres que posee cuántos caracteres posee esa cadena ese valor lo podemos obtener rápidamente con la función link l en esa función nos va a retornar la longitud de la cadena de caracteres o el tamaño tenemos que especificar la cadena que queremos analizar entre paréntesis en este ejemplo es una cadena de caracteres vacía por lo tanto el valor de su tamaño longitud es cero en este Caso la cadena de caracteres tiene un solo carácter cuatro caracteres para este ejemplo y seis caracteres para la palabra python veamos ahora
la longitud de la cadena de caracteres no ahora si llamamos de la función cuando nosotros ejecutamos una función también le decimos a eso en programación llamar a la función si llamamos a la función ln lane y pasamos entre paréntesis la variable que queremos analizar presionamos enter y vemos el valor 4 Porque esa cadena de caracteres no ahora tiene 4 caracteres la estructura interna de una cadena de caracteres es similar a una rejilla tiene una estructura muy determinada cada carácter tiene su lugar específico en la rejilla y cada uno de esos lugares o posiciones específicas está
marcada con un entero esos enteros se denominan índices cada uno de esos enteros se denomina un índice individualmente la secuencia comienza desde cero no desde Uno como uno pensaría intuitivamente en programación en computación es común comenzar a contar desde cero y eso se llama numeración basada en ser el primer carácter va a estar en el índice pse o el segundo carácter en el índice 1 y así sucesivamente incrementando de uno en uno a medida que nos vamos de carácter en carácter hacia la derecha esa es la estructura básica de una carne era de caracteres si
queremos acceder a cada uno de esos Caracteres individualmente tenemos que recurrir a un proceso a una herramienta llamada indexación en inglés se denomina index sing la indexación nos permite acceder a caracteres individuales de la cadena en este caso por ejemplo si quisiéramos acceder al carácter te podríamos hacerlo con su índice el valor 2 en este caso y como podríamos hacerlo en el programa primero escribimos la cadena de caracteres la variable que contiene ese Valor y entre corchetes corchetes que tenemos aquí escribimos el valor del índice que queremos acceder era 2 en este caso en este
ejemplo aquí vemos la cadena completa con todos sus índices y aquí vemos una sesión interactiva en la consola primero definimos la variable palabra con la cadena de caracteres python y luego tenemos varios comandos en los que accedemos a cada uno de esos caracteres el primer carácter con el Índice cero es p el índice 1 es el índice 2 este el índice 3 h el índice 4 y el índice 5 es n y allí acabamos con todos los índices que están en este diagrama pero qué pasa si intentamos acceder a un índice más allá de lo
que posee la cadena de caracteres digamos el índice 6 lo que va a suceder es un error un error específico que tenemos aquí index er error de índice que nos dice que el índice de la cadena de caracteres está fuera del rango permitido porque Usamos un índice 6 que no es parte de la cadena de caracteres y por lo tanto tenemos a este error aquí tenemos la traducción en español index querer error de índice índice de cadena de caracteres fuera de rango así que debes tener mucho cuidado cuando tratas de indexar de acceder a un
carácter específico de una cadena tienes que revisar primero aunque el índice exista y eso lo puedes hacer en tu código Ahora veamos unas preguntas rápidas para repasar este tema de indexación de cadenas de caracteres selecciona el carácter ubicado en el índice 6 índice 6 de esta cadena de caracteres hola mundo analizan los índices de la cadena y escoge cuál es el carácter en el in 16 de estas cuatro opciones analice los por unos segundos y ya regreso y la respuesta correcta es el espacio está aquí entre ambas comillas hay un Espacio veamos por qué este
carácter el signo de exclamación inicial corresponde al índice 0 luego la letra h corresponde al índice 1 índice 2 índice 3 4 5 y el carácter en el índice número 6 es el espacio que separa la coma de la palabra mundo cada uno de los caracteres dentro de esta cadena tiene su propio índice incluyendo el espacio así que la respuesta correcta s bien vamos a intentarlo nuevamente ahora selecciona el carácter que está ubicado En el índice 8 de esta cadena de caracteres piénsalo por unos segundos y ya regreso la respuesta correcta es la letra y
el espacio estaba en el índice 6 7 y 8 llegamos a la letra 1 bien ahora ya sabes cómo funciona la indexación de cadenas de caracteres así que veamos otra característica de las cadenas de caracteres otra operación que podemos realizar con ellas que se llama rebanador en español la denominamos Rebanado en inglés es originalmente se denomina slicing porque porque vamos a tomar una rebanada de esa cadena de caracteres vamos a tomar una porción y podemos trabajar con esa porción en nuestro programa el rebanado nos permite obtener exactamente eso una rebanada también llamado una porción de
una cadena de caracteres por ejemplo si tenemos la cadena de caracteres python y queremos obtener la rebanada que Contiene los caracteres y t y h podemos hacerlo si queremos obtenerla y trabajar con ella en el programa tenemos que usar esta sintaxis o esta forma de escribir esa parte del correo primero escribimos la cadena de caracteres la variable que contiene la cadena de caracteres y luego entre corchetes escribimos esta sintaxis que vemos aquí primero escribimos el índice que marca el inicio de la rebanada donde queremos empezar a incluir caracteres para la rebanada y Luego separado por
dos puntos escribimos el índice que marca el fin de la rebanada estamos especificando de dónde a dónde queremos incluir caracteres para obtener la rebanada este carácter el carácter que está en el índice de final no va a ser incluido en la cadena resultante o que no va a estar incluido en la rebanada si quieres incluir los caracteres por ejemplo 5 debes escribir aquí 6 veamos este ejemplo aquí tenemos la Cadena de caracteres python con sus índices correspondientes si queremos incluir los caracteres en los índices 1 2 y atrás debemos detenernos antes de llegar al índice
4 y cómo podemos escribir eso en nuestro código escribimos esto exactamente asumiendo que hemos asignado esa cadena de caracteres a la variable palabra entre corchetes escribimos de donde a donde queremos incluir caracteres en la rebanada iniciamos en 1 como pueden ver Aquí y nos detenemos en el índice 4 pero el carácter en este índice no va a ser incluido el último carácter incluido es el carácter en el índice anterior 3 aquí vemos el ejemplo ejecutado en la consola interactiva de payton asignamos la cadena de caracteres a una variable y luego usamos esta sintaxis para acceder
a la rebanada que contiene esos caracteres y de iu h así es básicamente cómo funciona el Rebanado de cadenas de caracteres también hay otras variaciones de la sintaxis o de esta forma de escribir las rebanadas todos tienen en común que es primero se escribe la cadena de caracteres la variable que contiene la cadena de caracteres porque debemos especificar de dónde queremos tomar esa rebanada luego en todas rodeamos los parámetros o los valores que vamos a especificar entre corchetes y dentro de esos corchetes podemos tener distintas Variantes para usar los valores que vienen por defecto para
esta operación en este caso nosotros vamos a especificar el valor del inicio de la cadena de caracteres escribimos dos puntos pero aquí no vamos a escribir ningún valor sino que vamos a usar el valor por defecto para el fin de la cadena que es incluir todos los caracteres hasta el final hasta el último carácter de la cadena vamos a comenzar desde un punto específico y Vamos a incluir todos los caracteres hasta el final en esta que otro caso estamos haciendo lo contrario estamos especificando hasta donde queremos incluir caracteres y estamos omitiendo el valor inicial para
incluir todos los caracteres desde el principio de la cadena hasta este índice específico sin incluirlo y aquí tenemos otra sintaxis que nos permite obtener una copia de la cadena de caracteres en este caso omitimos el valor inicio y El valor del fin solamente estamos especificando que queremos obtener una copia de todos los caracteres de la cadena bien ahora que sabes rebanar cadenas de caracteres veamos unas preguntas rápidos selecciona la rebanada resultante aquí tenemos una cadena de caracteres que nos dice hola mundo incluyendo los signos de exclamación la coma y el espacio recuerda que todos estos
caracteres tienen su propio espacio en la rejilla o En la estructura interna de la cadena esa cadena de caracteres la asignamos a la variable frase y luego de asignar la aquí estamos rebajando esa cadena de caracteres cuál va a ser el valor de esta rebanada piénsalo por unos segundos analiza la estructura de la cadena de caracteres y ya regreso buen trabajo la respuesta correcta es ve mundo porque porque si contamos los índices vemos que aquí tenemos 0 1 2 3 4 5 6 y 7 aquí tenemos el carácter en el Índice 7 donde va a
comenzar la rebanada y ese es precisamente m luego la rebanada va a continuar hasta que llegue el índice 12 sin incluirlo aquí estamos en 7 8 9 10 11 y el índice 2 se corresponde a este carácter que no se incluye así que la última letra incluida es la letra o y eso nos da la palabra mundo por lo tanto esta es la opción correcta bien ya sabes como rebanar una cadena de caracteres usando dos parámetros el Inicio y el fin de la cadena pero hay un tercer parámetro con el que podemos trabajar ese parámetro
se denomina paso el paso nos permite personalizar cómo vamos a rebanar la cadena de caracteres y podemos controlar ese resultado aún más la sintaxis es exactamente la misma solamente estamos agregando dos puntos luego de fin para separar el parámetro y estamos especificando un tercer valor antes de cerrar el corchete el paso no especifica cómo se va a saltar de un Caracter al siguiente cuando se genere la rebanada por ejemplo digamos que queremos una rebanada que sólo incluya estos tres caracteres en verde que puedes ver aquí y h y n y está en el índice 1
h está en el índice 3 y n está en el índice 5 pero hasta ahora lo que hemos visto solo nos permite incluir todos los caracteres entre un índice y otros para este caso en particular vamos a tener que saltar de un caracter a otro sin incluir el Carácter que está en el medio podemos hacer eso gracias al tercer parámetro paso aquí vemos en la consola interactiva cómo podemos usar el paso con un valor de 2 para saltar de un caracter a otro iniciamos en el valor de inicio 1 en este caso así que se
incluye la letra y luego como el valor del paso es 2 vamos a sumarle 2 a ese índice en este caso va a ser el valor 3 el resultado vamos a saltar este carácter intermedio porque Le estamos sumando el valor del paso 2 a 1 así que incluimos la letra h en el resultado y luego nuevamente le sumamos 2 para llegar al índice 5 la letra n este proceso culmina cuando llegamos al índice 6 sin incluirlo por lo tanto obtenemos los caracteres de la cadena de caracteres que necesitábamos algo que te puede resultar bastante curioso
es el hecho de que estamos utilizando un valor de índices que están Más allá de la cadena de caracteres el índice 6 no existe cuando lo estamos rebajando una cadena de caracteres podemos usar índices que estén fuera del rango x como el lenguaje de programación fue implementado por sus creadores esto no va a resultar en errores a diferencia de la indexación cuando indexamos una cadena de caracteres para obtener un carácter específico allí sí tendríamos un error pero como estamos rebajando la cadena y usamos este valor como un Parámetro más vamos a poder rebanar las sin
problemas así que puedes usar esta herramienta para trabajar con cadenas en tus programas y personalizar las rebanadas ya sabes trabajar con los tres parámetros así que veamos una pregunta rápido seleccionar la rebanada resultante estamos asignando esta cadena de caracteres a la variable frase y luego estamos obteniendo una rebanada de esa cadena de caracteres cuál va a ser De estas opciones el resultado de la rebanada piénsalo durante unos segundos y ya regreso la respuesta correcta es esta que tenemos acá mn porque veamos el índice 7 es 0 1 2 3 4 5 6 y 7 el
carácter en el índice 7 es la letra m mayúscula por lo tanto está incluida luego como tenemos un paso de 2 vamos a saltar desde el índice inicial 7 al índice 9 le vamos a sumar 2 El índice 9 este precisamente que n aquí la tenemos y luego nuevamente vamos a saltar dos índices no incluimos la red pero si incluimos lado y ahí la tenemos aquí en la rebanada resultante este carácter corresponde al índice 12 pero no está incluido porque es el valor de finalización de la rebanada así que la rebanada resultante consiste de m
n iv o bien ya sabes como rebanar cadenas de Caracteres así que veamos unas herramientas muy importantes con las que podemos trabajar con este tipo de gato los métodos de las cadenas de caracteres qué es un método los métodos de las cadenas de caracteres son operaciones comunes que ya vienen implementadas en python son operaciones que se usan muy comúnmente muy frecuentemente en los programas así que los desarrolladores de payton ya incluyeron esas operaciones en el código para que podamos simplemente Usarlas cuando las necesitemos primero que todo cómo las podemos ejecutar primero escribimos la cadena de
caracteres la variable luego escribimos un punto para separar esa variable del nombre del método el nombre del método va a ser descriptivo de lo que queramos hacer ahorita vas a ver algunos ejemplos y entre paréntesis esto es importante entre paréntesis escribimos los valores que necesite el método los métodos son parecidos a Funciones pero están asociados a un elemento o un valor en particular si ese método no requiere ningún valor porque existen métodos que no requieren ningún valor entonces escribimos un par de paréntesis vacío veamos el primer método de cadena de caracteres que tenemos aquí el
método capella es este método retorna una copia de la cadena con el primer carácter y en mayúsculas y el resto en minúscula esta definición fue tomada literalmente de la Documentación de payton donde puedes aprender más sobre estos métodos como lo llamamos como ejecutamos ese método para poder obtener esa copia escribimos la variable de la cadena de caracteres seguida de un punto el nombre capital live y luego un par de paréntesis vacío estos paréntesis vacíos sirven para decirle a nuestro programa que queremos ejecutar esta acción es básicamente como una alerta roja y necesito ejecutar esta función
por favor llama la y ejecuta la En el programa aquí tenemos un ejemplo en la consola interactiva tomamos una cadena de caracteres y la asignamos a una variable luego esa variable la usamos para llamar al método capital y escribimos la variable primero seguida de un punto y luego el nombre del método y paréntesis vacíos y obtenemos la copia que necesitábamos una copia de una cadena de caracteres de esta cadena con la primera letra en mayúscula ese valor retornado Podemos asignarle una variable o podemos usarla directamente en nuestro programa otros métodos importantes para trabajar con cadena
de caracteres son find index que nos permiten encontrar caracteres o cadenas dentro de otras y también estos métodos aquí que comienzan con la palabra y cuando vemos un método que comienza con la palabra ins inmediatamente debes pensar que muy probablemente ese método retorna verdadero o falso En estos casos estos métodos validan una característica de la cadena este método is enuf revisa si la cadena de caracteres sólo contiene caracteres alfanuméricos si eso es cierto retorna verdadero yo y si no retorna el valor falso este método reviso si sólo contiene de caracteres alfabéticos si sólo contiene caracteres
decimales si sólo contiene dígitos si sólo contiene caracteres en minúsculas o caracteres en mayúsculas Ese es el propósito principal de estos métodos y normalmente son muy útiles cuando comenzamos a trabajar con condicionales y ya aprenderás más sobre eso cuando empecemos a hablar sobre los condicionales finalmente tenemos estos dos métodos lower y oprah lower retorna una copia en minúscula de la cadena de caracteres y opper retorna una copia en mayúscula con todas las letras en mayúsculas de esta cadena de caracteres así podemos obtener una copia modificada Y trabajar con ella en nuestro programa bien ya estás
familiarizado con los aspectos más importantes de las carreras de caracteres la indexación es rebanado y los métodos buen trabajo pasemos a nuestro siguiente tema del curso ya sabes trabajar con los tipos de datos básicos en python así que agreguemos le un poco de interactividad a nuestros programas recibiendo datos del usuario para ciertos programas simplemente depender de instrucciones fijas no va a Ser suficiente a veces vamos a necesitar interactuar con el usuario para recibir datos y mostrar resultados para ello podemos usar la función input en python esta función nos permite recibir datos del usuario y mostrarles
un mensaje descriptivo indicándole que es datos estamos esperando esta es la sintaxis o la forma de escribir de esa línea de código para solicitarle al usuario que ingrese datos aquí a la izquierda podemos encontrar la variable una Variable donde vamos a guardar el valor que ingrese el usuario normalmente asignamos ese valor a una variable para poder trabajar con él en el programa aquí tenemos el signo igual que nos indica que estamos asignando un valor a la variable y aquí a la derecha podemos encontrar la función input llamamos a la función input y entre paréntesis podemos
opcionalmente escribir un mensaje que sería una cadena de Caracteres indicando el mensaje que queremos mostrarle al usuario este mensaje es opcional podemos no incluir ningún mensaje pero normalmente es recomendado para indicarle al usuario qué tipo de valor se espera este es un ejemplo de un programa interactivo que le pide al usuario que ingrese un número aquí podemos ver la asignación del valor a la variable y la llamada a la función input dentro de los paréntesis tenemos un Mensaje que dice ingrese un número seguido de dos puntos un espacio y comillas para cerrar la cadena normalmente
es recomendado usar dos puntos y un espacio para separar el lugar donde el usuario va a empezar a ingresar ese valor luego de asignarlo esta variable la estamos mostrando usando la función print y este es un ejemplo de una sesión interactiva cuando ya ejecutamos el programa en azul se muestra los mensajes o los valores Mostrados por el programa nos pide que ingresemos un número en este caso en negro vemos lo que ingresó el usuario 5 y se muestre ese valor 5 confirmamos así que el valor fue asignado a esta variable y luego al mostrar el
valor de la variable tenemos el valor 5 ingresado por el usuario así es como podemos crear programas interactivos en python para poder recibir datos del usuario una advertencia muy importante es que la función input siempre retorna una cadena De caracteres eso es muy importante la función input siempre retorna una cadena de caracteres independientemente del valor con el cual estés trabajando el cual esté ingresando si ingresas un número ese número va a estar representado como una cadena de caracteres y vas a tener que convertir ese valor al tipo de datos con el cual quieres trabajar veamos
este ejemplo que tenemos aquí simplemente estamos tomando la primera línea del programa donde Asignamos el valor a la variable no y pedimos al usuario que ingrese un número el programa le pide al usuario que iniesta el número una vez que lo ejecutamos el usuario ingresa 5 y muestra el valor 5 pero ahora si nosotros revisamos el tipo de valor que contiene la variable no nos dice que ese valor es de tipo cadena de caracteres string y eso no era precisamente lo que estábamos buscando no queríamos un número con el cual pudiéramos operar en El programa
cuál es la solución a esto bueno lo que necesitamos hacer rodear esa llamada que tenemos aquí la rodeamos con otra función que tenemos aquí y nt esto básicamente convierte ese valor retornado por la función input a un entero en este caso es un entero lo que necesitábamos escribes y nt y rodeas a la función input con paréntesis y básicamente eso lo que va a hacer es convertir ese valor a un entero antes de asignarlo a la variable num Luego ya en el programa vamos a poder trabajar con ese valor como si fuera cualquier entero si
nuevamente ejecutamos el programa y nos pide que ingresemos un número ahora vamos a ver que el tipo de valor se ha convertido a un entero y nt y así como podemos trabajar con distintos tipos de datos ingresados por el usuario genial ya sabes cómo interactuar con el usuario así que vamos a una pregunta rápida Selecciona el tipo de datos que va a ser asignado a esta variable valor luego de que el usuario ingrese un valor truco falls verdadero o falso el programa le pide al usuario que ingrese workforce y el usuario ingreso otro piénsalo por
unos segundos y ya regrese y la respuesta correcta es cadena de caracteres la función de input siempre retorna una cadena de caracteres e independientemente del valor que estemos ingresando en este caso a simple vista Pareciera que estamos ingresando un valor muriano pero la función input siempre va a retornar una cadena de caracteres así que ella va a convertir este valor juliano a una cadena de caracteres y luego la va a asignar a la variable valor es muy importante que tengas esto presente cuando programas y en python bien ya sabes lo básico de la función input
y cómo puedes recibir datos del usuario así que pasemos a nuestro Siguiente tema bien ahora salimos de la categoría de tipos de datos por ahora y vamos a entrar con un tema muy interesante en python los operadores los operadores son esenciales para escribir cualquier programa innpacto así que comencemos qué es un operador primero los operadores son símbolos que denotan una operación en el programa son básicamente símbolos que vamos a usar en nuestro código para realizar operaciones los Operan dos son esos valores con los cuales vamos a ejecutar la operación así que los operadores y los
operan dos se juntan para formar una expresión esto es muy importante en programación este concepto de expresión que es una expresión una expresión es una combinación de valores lo que denominamos operan dos variables que contienen también esos valores y operadores que al ser evaluados resultan en un Valor por ejemplo cuando sumamos dos números eso resulta en un valor y ese es el resultado de esa expresión cuando hablamos de una expresión decimos que estamos evaluando esa expresión ese es el término técnico formal en programación se evalúa una expresión para obtener un valor final las expresiones se
evalúan de izquierda a derecha normalmente a menos que existan ciertos operadores que tienen Mayor importancia o mayor precedencia para el orden de las operaciones es muy similar a las operaciones en matemáticas que comúnmente utilizamos ciertos operadores como multiplicación y división se deben ejecutar o se deben evaluar antes que otros operadores de menor importancia como por ejemplo suma y resta así que estas reglas van a cambiar cómo se evalúan las expresiones en python ya los veremos en más detalle primero veamos un poquito sobre los Cuatro tipos principales de operadores en python los aritméticos los lógicos los
operadores de asignación y los operadores relacionales comencemos con los operadores aritméticos los operadores aritméticos nos permiten realizar operaciones aritméticas en el programa los operadores aritméticos nos permiten realizar suma resta multiplicación división división entera ya vas a ver qué consiste esta operación De división externa también la operación de exponencia acción o actuar como exponentes y módulos vamos a ver estas dos operaciones en más detalle comencemos con el operador de azúcar el operador de suma suma ambos operando para obtener un resultado final este es el resultado esto que ves aquí en azul es el resultado de evaluar
la expresión correspondiente este conjunto de valores de operando y operadores en este caso es uno solo resulta en una expresión y Cuando se evalúa esta expresión se obtiene un solo valor un resultado podemos sumar enteros podemos sumar números en coma flotante podemos sumar cualquier tipo de valor numérico en python y también en curiosamente podemos usar este operador para operar con las cadenas de caracteres pero la operación es un poco distinta el operador suma cuando se aplica cadenas de caracteres lo que hace es concatenar o unir cadenas de caracteres Para formar una sola aquí tenemos tres
cadenas de caracteres distintas y como las unimos con el operador de suma tenemos una sola cadena final así que el operador de suma tienen varias funciones en python dependiendo del tipo de operando con el cual está trabajando recuerda el término de esta operación concatenar en programación significa unir cadenas de caracteres para formar una sola el operador de restar resta el Operador de la izquierda - el operador de la derecha para obtener un resultado final 10 menos 464 menos 8 menos cuatro también el resultado puede ser negativo si el operador de la derecha es mayor que
el operador de la izquierda y también podemos restar números en coma flotante el resultado va a ser otro número en coma flotante y por lo tanto va a ser una aproximación del resultado correcto el resultado preciso aquí tenemos ejemplos también del Operador de multiplicación en python se denota con el símbolo de asterisco asterisco asterisco para multiplicar números negativos también podemos usarlo y se van a seguir las reglas matemáticas de signos también podemos multiplicar números en como flotante y el resultado va a ser también un número en coma flotante una aproximación el operador de división es
la barra en python la barra inclinada y podemos usarlo para dividir enteros y números en coma flotante También pero nota algo curioso aquí el resultado de la división es siempre un número en coma flotante así estamos dividiendo dos números enteros y el resultado sea entero en este caso 15 entre 5 debería retornar 3 pero retorna 3.0 retorna ese mismo valor representado como un número en coma flotante y esa es una de las características principales de este operador recuerda esto siempre retorna un número de coma flotante y que ocurra si intentamos dividir por cero Esta es
una pregunta muy común cuando vamos a programar qué ocurre si intentamos dividir por 0 bueno vamos a ver este error error de división por 0 división por 0 y el programa se va a detener inmediatamente y nos va a mostrar en este error no va a continuar su ejecución porque la división por cero no está definida si queremos obtener un entero como resultado de la división tenemos que usar este símbolo que tenemos aquí este Operador la doble barra inclinada esta operación se denomina división entera en inglés se llama flor de bella y este operador nos
permite realizarla en este caso si obtenemos tres como un enteros cuando dividimos 15 entre 5 de igual forma si vimos 3 entre 5 en vez de obtener 0 punto algo obtenemos 0 y en este caso tenemos 2 obtenemos 0 obtenemos 1 el patrón común es que en todas las operaciones obtenemos un entero Porque porque el operador trunca todos los decimales luego de la coma no lo redondea hacia arriba lo que hace es truncar los decimales solo guarda o muestra la parte entera del resultado el único escenario en el que este operador no puede retornar un
número de como flotante es que estamos dividiendo dos números en coma flotante como en este caso aquí estamos dividiendo dos números en coma flotante y el resultado a su vez se Expresa como un número en coma flotante pero nota algo curioso aquí el resultado como tal si usáramos una división normal sería 1.64 70-58 y todos los decimales permitidos por la computadora pero qué es lo que hace el operador de división entero toma la parte entera del resultado el 1 y luego trunca esa parte decimal solo nos muestra el valor punto 0 y eso es algo
curioso de este operador donde puedes usar este operador esa es una pregunta muy común es operador una De las aplicaciones por ejemplo es el algoritmo de búsqueda binaria que nos permite encontrar un valor en una secuencia de forma muy eficiente y el operador de división entera es muy importante para poder implementar este algoritmo un algoritmo de simplemente una secuencia de pasos que se utiliza para resolver un problema otro operador aritmético que podemos utilizar es el operador de exponente o exponencia acción está representado por Un doble asterisco en este caso estamos elevando la base 5 al
exponente 3 y el resultado de 5 a la 3 es 125 y estos son otros ejemplos que tenemos de exponencia ción y además podemos usar exponencia ción con números en coma flotante también aprovechando esta característica podemos obtener la raíz cuadrada de un numero elevándolo a un medio y si elevamos cualquier número a cero se mantiene con esta regla en matemáticas Que nos dice que todo número elevado a la cero nos da 1 el operador módulo es otro operador muy interesante en python que retorna el resto de la división este operador es muy comúnmente utilizado para
verificar si un número es par o impar ya que nos permite verificar cuál fue el resto de la división por dos de ese valor veamos cuál es la lógica principal de este operador si queremos verificar si 5 es un número Par o impar vamos a dividirlo entre 2 el resultado hasta la parte entera hasta que lleguemos a un valor entero va a ser inicialmente 2 2 por 2 es 4 nos falta uno para llegar a 5 y este va a ser el resto de la división ese es el valor que nos va a retornar el
operador módulo y con ello vamos a poder comprobar si 5 spar o impar si fuera para este resto fuera 0 como es impar el resto es 1 aquí vemos algunos ejemplos 5 módulo 2 El resultado es 1 así que es impar podemos también usar otro tipo de operaciones 4 módulo 3 116 módulo 4 16 módulo 6 418 módulo 4 2 como determinamos el orden de las operaciones porque nosotros podemos usar muchos de estos operadores en la misma expresión bueno la crónico que nos facilita recordar ese orden básico de las operaciones aritméticas es tengas este crónico
es válido en inglés pero nos puede servir mucho para recordarnos La p representa los paréntesis porque en cualquier operación aritmética los paréntesis son el operador o el símbolo que tiene mayor precedencia en la expresión cualquier operación que esté rodeada por paréntesis va a tener la mayor prioridad y va a ser evaluada primero y luego tenemos los exponentes la exponencia ción es la operación que tiene mayor precedencia luego de los paréntesis la operación aritmética Luego multiplicación división suma en inglés la suma es adhesión y resta en inglés resta es sub traction y por ello escribimos s
en el acrónimo paréntesis exponentes multiplicación división suma y resta y recuerda que las operaciones se evalúan de izquierda a derecha si existen varias operaciones con la misma importancia o la misma precedencia se van a evaluar de izquierda a derecha ya está familiarizado con los Principales operadores carismáticos así que comencemos a hablar de los operadores lógicos que también van a ser muy importantes para poder escribir programas poderosísimos en python los operadores lógicos nos permiten trabajar con valores bul ya nos nos permiten operar con ellos y usarlos en nuestro programa los valores julia nos recuerda eran true
y fox verdadero y falso aquí tenemos los tres operadores lógicos que podemos usar en python and or not Cada uno de ellos tiene sus propias reglas específicas y nos van a permitir formar expresiones más complejas que sigan las reglas de la lógica el operador en particular evalúa si el operando izquierdo y el operando derecho son verdaderos y dependiendo de eso retorna verdadero o falso de esta forma digamos que x y james son dos condiciones o expresiones específicas si las unimos o las conectamos con el operador and Esta expresión completa va a evaluar a verdadero solamente
si ambos operan dos ambas expresiones pequeñas que tenemos acá son verdaderas si no va a retornar falso las reglas del operador son básicamente estas que tenemos aquí en esta tabla esto es lo que se llama una tabla de verdad en inglés una cruz table esta tabla nos ayuda a visualizar la lógica del operador si ambos operan dos son verdaderos y ambas expresiones que estamos conectando con el operador son Verdaderas el resultado de toda esta expresión va a ser verdadero sino si alguna de ellas es falsa como en este caso en este caso y en este
caso en el que ambas son falsas el resultado va a ser falso aquí tenemos un ejemplo en código esta expresión tiene su propio valor este operador que tenemos aquí y este operador los vamos a ver en más detalle en unos minutos nada más en unos minutos cuando pasemos a los operadores Relacionales pero esto es básicamente está probando está comparando el valor 5 con el valor 6 y 5 es menor que 6 16 es mayor que 8 esto va a tener un propio su propio valor de verdad 5 es menor que 6 sí entonces esta expresión
es verdadera es true y 6 es mayor que 8 no eso no es cierto así que esta expresión va a ser falsa como estamos conectando ambas expresiones con el operador and Y uno de esos operando en una de estas expresiones es falsa el resultado final de toda esta expresión como un todo es falso porque una de ellas es falso esa es la lógica básica del operador ahora vamos con el operador org este es el segundo operador lógico que veremos en el curso el operador lógico o él también nos permite conectar dos expresiones más pequeñas y
dependiendo del valor de cada una de estas expresiones obtendremos un valor general Para la expresión completa veamos las reglas en esta tabla de valor otros table en inglés para el operador o ar si cualquiera de los operando es verdadero el resultado es verdadero aquí vemos estos tres casos en estos tres casos el resultado de la expresión completa es verdadero porque alguno o ambos operan dos son verdaderos aquí lo pueden ver únicamente cuando ambos operando son falsos La expresión completa en general es falsa y esas son las reglas básicas del operador ahora aquí tenemos un ejemplo
si en lugar de usar el operador and usamos el operador over para conectar estas dos expresiones podemos ver que esta expresión es verdadera pero esta expresión es falsa anteriormente con el operador and hubiera resultado el resultado total hubiera sido falso pero ahorita como estamos usando el operador over Obtenemos el valor son porque uno de los operando es verdadero cuando uno o ambos de operando son verdaderos el resultado final es verdadero ahora veamos el tercer operador lógico el operador not que significa no en español este operador lo que hace es negar el valor de esta expresión
veamos cómo funciona con esta tabla si la expresión es verdadera no está esa expresión va a resultar en el valor falso y si la expresión es falsa el Resultado va a ser verdadero aquí tenemos ejemplos en la consola interactiva no true es falso y not found es verdadero este hecho puede ser reemplazado por una expresión y éste es faus también y estas expresiones van a resultar en un valor verdadero o falso y el not lo va a negar todas estas propiedades de los operadores lógicos van a ser muy importantes cuando comencemos a trabajar con expresiones
condicionales y con Ciclos o bucles en cuanto a prioridad de los operadores lógicos el operador no tiene la mayor prioridad cuando tenemos una expresión con múltiples operadores lógicos en la misma expresión esa prioridad va a ser importante las operaciones no van a ser evaluadas primero luego las operaciones andy y finalmente las operaciones del operador ahora aunque vamos de mayor a menor prioridad en la expresión y si existen varios operadores con la misma Prioridad varios operadores iguales la expresión se evalúa de izquierda a derecha bien ahora veamos los operadores relacionales los operadores relacionales son utilizados para
comparar valores y ellos retornan un valor buljan o generar expresiones que van a evaluar a un valor buljan o verdadero o falso faus esos operadores son estos que tenemos Aquí mayor que mayor o igual que menor que menor o igual que igual que y no iguala y este operador que tenemos aquí que tiene dos signos igual es diferente al operador de asignación que usábamos para asignar un valor una variable cuando usamos doble signo igual estamos comparando valores en lugar de asignar un valor una variable aquí tenemos ejemplos de esas operaciones el operador mayor que retorna
verdadero si el operando de la izquierda es mayor Que el de la derecha si diese es mayor que 3 esta presión es verdadera ahora 5 no es mayor que 6 y por lo tanto la expresión total evalúa al valor falso aquí tenemos un ejemplo con mayor o igual que para que veas la diferencia entre los dos operadores si comparamos si 5 es estrictamente mayor que 5 eso resulta en el valor falso porque 5 no es mayor que 5 es igual a 5 pero si usamos este operador mayor o Igual que el resultado si es verdadero
porque 5 si es mayor o igual a 5 esa es la diferencia entre estos dos operadores aquí tenemos ejemplos del operador menor que 5 es menor que 6 así que la expresión como tal es verdadero 10 no es menor que 3 y por lo tanto la expresión es falsa estos valores simplemente representan operándose en la expresión y pueden ser reemplazados por variables eso lo que normalmente vamos a hacer en los Programas comparar los valores de variables o de distintos valores con los que estamos trabajando en el programa también tenemos este operador menor o igual que
que funciona muy similar al operador menor que pero incluye además en su condición que ambos operando sean iguales menor o igual que en este caso 3 no es menor que 3 así que es falso pero 3 si es menor o igual a 3 así que esta condición es verdadera y vemos los últimos dos operadores Relacionales que podemos encontrar en python 8 es igual a 8 aquí ves que estamos usando dos signos de igualdad para comparar los valores y el resultado es verdadero y usamos este operador que compara si ambos valores son distintos 8 es distinto
a 8 no y por lo tanto esta expresión es falsa también podemos usar los operadores de igualdad para comparar cadenas de caracteres este operador va a comparar el valor de la cadena de Caracteres si todas sus caracteres son iguales en este caso eso es cierto y en este caso eso es falso porque en las cadenas no son iguales usando los otros operadores relacionales podemos comparar las cadenas de caracteres pero en este caso estos operadores para cadenas de caracteres van a comparar su orden lexicográfico su orden alfabético van a comparar básicamente usando la lógica de un
diccionario siguiendo el orden del Alfabeto en este caso la cadena de caracteres es más larga tiene más caracteres que ésta y por lo tanto se considera mayor que está por lo tanto la expresión es falsa también el tamaño cuenta en esa comparación en este caso las cadenas tienen el mismo tamaño pero la letra alfabéticamente la letra viene antes que la letra vez y por lo tanto la expresión es verdadera estamos comparando si a es menor que b si viene antes que ve en el alfabeto de formas Similares e invertimos la operación si b es mayor
que a esa expresión es verdadera podemos comparar si las cadenas son diferentes y también podemos comparar si son iguales en este caso es falso bien ya sabes trabajar con los operadores relacionales ahora veamos los operadores de asignación los operadores de asignación nos permiten asignar valores a las variables del programa ya hemos usado Uno que de signo igual para asignar un valor a una variable pero existen otros que son un poquito más complejos ya que realizan una operación con el valor actual de la variable antes de asignar ese valor aquí ves los operadores aritméticos que aprendiste
anteriormente suma resta multiplicación división exponencia acción división entera y módulo pero que es lo notorio aquí que luego de esos operadores encontramos un signo igual Cuando le agregamos un signo igual a esos operadores y estamos obteniendo un nuevo operador un operador de asignación que va a realizar la operación correspondiente con la variable antes de asignarle un valor por ejemplo aquí tenemos una sesión interactiva creamos una variable edad y le asignamos el valor 56 luego si usamos este operador aquí más igual lo que va a ocurrir es que a la valor actual de la variable edad
se le va a Sumar el valor 3 y luego ese valor se le va a asignar a la variable estamos prácticamente actualizando su valor incrementando lo en 3 si el valor anterior era 56 y le sumamos 3 el valor actual cuando lo verificamos en 59 de igual forma podemos realizar una resta le estamos restando a su valor actual 2 y obtenemos 57 también podemos multiplicar su valor por 3 y aquí obtenemos 171 y dividirlo entre 2 y se obtiene 85.5 Como puedes ver es simplemente hacerle una operación específica con el valor actual de la variable
y luego asignar el resultado solamente requieres asignar un valor una variable puedes usar el operador más sencillo que es el signo igual bien ahora es tiempo de una pregunta rápida selecciona el valor final de la variable en un definimos una variable con valor inicial 6 y después usamos este operador Cuál va a ser el valor final de número piénsalo por unos segundos y ya regrese el valor final de num va a ser el valor cero porque porque se va a realizar la operación módulo 6 es divisible entre 2 este resultado va a ser 0 y
como estamos usando un operador de asignación ese resultado se va a asignar a la variable no y por lo tanto la opción correcta es la vez bien ya sabes trabajar con los operadores en python operadores Aritméticos lógicos relacionales y de asignación buen trabajo pasemos a nuestro siguiente tema del curso ahora ya que conoces los tipos de datos con los que puedes trabajar en python y los operadores que puedes usar para escribir expresiones comenzaremos con una estructura de programación que es muy muy muy utilizada y que prácticamente en todos los programas vas a necesitar usarla se
denominan sentencias condicionales veamos de qué Se trata una sentencia condicional es una instrucción o un grupo de instrucciones cuya ejecución depende del valor de una condición booleana básicamente lo que vamos a hacer es decirle al programa que solo debe ejecutar un cierto grupo de instrucciones si una condición es verdadera si es falsa entonces ese grupo de instrucciones no se debe ejecutar esta es la lógica básica de un Condicional tenemos una condición que nosotros mismos definimos en el programa si esa condición es falsa entonces no ocurre nada el programa continúa su ejecución más allá del condicional
pero si es verdadera entonces una secuencia de instrucciones que estaban condicionadas por esa condición se van a ejecutar y luego cuando ellas convienen como termine su ejecución el programa seguirá su ejecución normal es básicamente la lógica de un condicional Básico y esta es la sintaxis esta es un condicional en código de payton lo primero que conseguimos aquí es una palabra que está resaltada en un color diferente la palabra if luego viene seguida de un espacio y una condición esa es la condición que va a determinar si el código que está aquí se va a ejecutar
la palabra if en inglés significa si sigue en forma condicional como por ejemplo si Llueve hoy entonces básicamente lo que estamos escribiendo es si esta condición es verdadera ejecuta este código este código que tenemos aquí es el código que solo va a ejecutarse si esta condición es verdadera y un detalle muy importante que debes siempre tener presente es que luego de la condición inmediatamente después de la condición se debe escribir dos puntos esto es parte de la sintaxis de payton si no escribes los dos puntos vas a ver un error de sintaxis cuando Ejecute es
el programa además el código de condicional tiene que estar intentado en tentación significa crear diferentes niveles de espacios en el código esto es clave en python porque es lo que le permite al programa diferenciar qué código está condicionado y qué código es parte del programa principal está intenta ción este espacio que le agregamos aquí que normalmente son cuatro espacios en python le dice al programa que este Código solo va a ejecutarse si la condición es verdadera este es un ejemplo si la temperatura es menor estrictamente menor que 25 digamos que esta es una variable que
representa temperatura entonces se va a mostrar el mensaje frío en la consola nota que aquí estamos incluyendo los dos puntos aquí tenemos ese ejemplo con más detalle definiendo la variable stem con un valor inicial de 15 decimos si la temperatura es estrictamente menor que 15 entonces Mostramos el mensaje frío esta condición es la que va a decidir si ese mensaje se va a mostrar o no el valor de esta variable en ese momento de ejecución del programa es 15 15 si es menor que 25 así que la condición es verdadera y el mensaje se va
a mostrar aquí lo podemos ver en azul en cambio si la temperatura fuera por ejemplo 36 esta condición ya no sería verdadero porque 36 no es menor que 15 como esta condición es falsa este esta línea de código nunca se va a Ejecutar y como puedes ver aquí no el programa no va a mostrar ningún mensaje es básicamente la lógica de un condicional en un programa hasta ahora podemos decir que va a ocurrir si la condición es verdadera pero qué ocurre si la condición es falsa para eso tenemos la cláusula else y dulce en inglés
es el equivalente a decir si no en español por ejemplo si hace frío lleva una chaqueta si no no llevo mi chaqueta el signo es el Equivalente al a la palabra els en un condicional la lógica básica de un condicional con una cláusula de ows es esta tenemos una condición si esa condición es verdadera entonces vamos a poder ejecutar una secuencia de instrucciones si esa condición es falsa entonces vamos a ejecutar la cláusula else vamos a ejecutar ese código que nosotros especificamos o escribimos como parte de esa cláusula y después de que cualquiera De estos
dos grupos de instrucciones haya completado su ejecución se continúa ejecutando el programa más allá b condicional y esta es la parte del código que corresponde a la cláusula else esta sintaxis ya la conoces la vimos en la parte anterior esto es un condicional simple y luego podemos agregar esta cláusula else lo que decimos aquí es básicamente si estas condiciones es verdadera ejecuta este código pero si esta Condición es falsa ejecuta este código que tenemos aquí como ves ambos bloques ambos grupos de código de líneas de código están inventadas porque esto nos permite y le permite
el programa distinguir qué código es parte del condicional y qué código es parte del programa principal aquí tenemos un ejemplo con la variable tempo si la temperatura es menor que 25 entonces vamos a mostrar el mensaje frío y si no digamos que vamos a mostrar el mensaje Calor todo va a depender del valor de esta condición en este caso como la variable temp tiene el valor 15 está condición va a ser verdadera y por lo tanto este código va a ser ejecutado como las condiciones verdaderas solo este código se ejecuta este código que tenemos aquí
no se ejecuta la cláusula else no se ejecuta si esta condición es verdadera el mensaje mostrado por el programa es frío en cambio si tenemos un valor inicial de 35 un valor en este punto del programa de 35 esta condición es falsa este código no se ejecuta la cláusula eu se ejecuta y vemos el mensaje calor porque este código si se ejecutó lo podemos ver aquí en azul esa es la lógica básica de la cláusula else ser como un respaldo por si esta condición es falsa pero aún así tenemos otra cláusula la cláusula link que
podemos usar para especificar con más detalle que queremos que suceda veamos la cláusula el if nos permite Especificar otras condiciones y cómo manejar esas condiciones aquí vemos la parte de la sintaxis que viste en la sección anterior y es el condicional sencillito que vimos en la primera parte y aquí tenemos la cláusula outs pero ahora entre estas dos cláusulas entre estas dos partes estamos agregando una cláusula llamada el f aquí esa cláusula nos va a permitir ejecutar un código si su condición es verdadera y si esta condición es falsa Veamos la lógica básica de este
condicional si esta condición es verdadera se va a ejecutar este código pero si esta condición es falsa entonces se va a revisar se va a verificar si esta condición es verdadera si esta condición es verdadera se ejecuta este código nada más pero si ambas condiciones son falsas entonces tenemos a la cláusula 2 que viene al rescate esa cláusula si ambas condiciones son falsas va a Ejecutar este código específico y básicamente eso es lo que nos permite hacer la cláusula el if nos permite especificar más condiciones y escoger como manejamos y esas circunstancias solo un bloque
de código se va a ejecutar el bloque de código que corresponda a la primera condición que sea verdadera si esta condición es verdadera este código se ejecuta y ninguno de estos dos bloques se va a ejecutar en cambio si Esta condición es falsa y esta condición es verdadera que es la primera condición verdadera que conseguimos este código se va a ejecutar y la cláusula ellos no se va a ejecutar y sin ninguna de las cláusulas son verdaderas la cláusula 2 es la que viene el rescate veamos un ejemplo inicialmente vamos a asignarle un valor cero
a la variable tempo si la variable temps es menor o igual a cero entonces podemos mostrar este mensaje muy frío si No si esta condición es falsa se evalúa esta condición si esta condición es verdadera y este mensaje se va a mostrar frío y si ambas condiciones son falsas entonces la cláusula euros va a ejecutarse y está mostrar el mensaje y calor en este caso como el valor de la temperatura es cero esta condición es verdadera en temperatura menor o igual a cero y este mensaje es el que se va a mostrar muy frío y
luego se continúa con la ejecución normal del programa más Allá del condicional estas cláusulas ya no se van a analizar o ejecutar en cambio si asignamos un valor inicial de temperatura 15 está condición va a ser falsa porque la temperatura no es menor o igual a 0 este código no se va a ejecutar y se va a evaluar esta condición que tenemos acá se va a mostrar el valor frío el mensaje frío y eso es verdadero la temperatura es 15 en este momento así Que es menor que 25 y se va a mostrar el mensaje
frío la cláusula else no va a ser ejecutada esto nunca va a correr solo el código que corresponde a la primera condición verdadera y aquí tenemos un tercer ejemplo si le asignamos un valor 36 a la temperatura ambas condiciones van a ser falsas la temperatura no es menor o igual que 0 no es menor que 25 así que la cláusula va a ser ejecutada que ves como un respaldo cuando ninguna de las Condiciones anteriores son verdaderas en ese caso el mensaje que vamos a mostrar es calor puede haber más de una cláusula el if en
un condicional para tener múltiples condiciones que determinen lo que va a ocurrir pero sólo puede haber una cláusula aus la cláusula a ellos debe ser única en un condicional no puede haber más de una porque ella va a funcionar como un respaldo que es lo que va a ocurrir si todas las condiciones Anteriores son falsas aquí tenemos una muestra de cómo sería la sintaxis de un condicional con muchas cláusulas el f en este caso hay tres y siempre la cláusula dos va escrita luego de las cláusulas el if si hay alguna cláusula del ifd siempre
la cláusula else es la última también recuerda que al final de cada una de estas líneas después de las condiciones debes incluir dos puntos o si no vas a tener un error de sintaxis y en el programa eso es muy Importante bien ya sabes trabajar con condicionales así que hacemos a nuestro siguiente tema ahora hablemos sobre los comentarios los comentarios son muy importantes para escribir códigos de calidad para explicar lo que queremos hacer con nuestro código así que vamos a comenzar a ver de qué se trata un comentario es básicamente texto que se escribe en
el programa para facilitar su comprensión un comentario es Básicamente una algo que nosotros escribimos en el programa junto a nuestro código para facilitar su comprensión para que nosotros entendamos la lógica que utilizamos para implementar ciertas partes de código y también eso facilita la comprensión para otros desarrolladores que tengan que trabajar con nuestro código por eso que los comentarios son muy importantes porque ayudan a que sea fácil leer nuestro código y entenderlo ellos no son Realmente parte del código ellos están allí simplemente para ser leídos por los humanos cuando se ejecuta el programa esos comentarios no
son considerados parte del código y no lo afectan de ninguna forma el propósito principal del uso de comentarios es describir la lógica en esta parte de escribir la lógica de ciertas partes del código a otros programadores que lean el programa o incluso a ti mismo para que puedas Entender qué lógica usaste para implementar ciertas partes del código este es un comentario en python puedes ver que está resaltado en un color distinto en este caso es como un gris cada entorno integrado de programación va a tener un color distinto para reflejar los comentarios en youtube en
'iron los comentarios se resaltan en un color rojo y eso se puede personalizar lo principal para escribir un comentario es empezar la línea o el punto en la Línea donde quieres empezar el comentario con un hashtag con un símbolo de numeral ese símbolo va a decirle a payton que esa línea es un comentario que podemos utilizar para describir nuestro código y no va a ser considerado parte del código este es un ejemplo tenemos un comentario de dos líneas y está describiendo a una variable digamos que tenemos esta variable con un valor y aquí arriba tenemos
un comentario descriptivo esta Variable representa el número de estudiantes registrados en el salón 56 el comentario añade información sobre el elemento que estaba escribiendo en el código y nos permite entender un poco más sobre su significado cada línea comienza con símbolos de números hashtag y la línea continúa con una descripción con la descripción que necesitamos para explicar la lógica de nuestro código algo que debes evitar seriamente es comentar en exceso y ese es un error muy Común cuando se aprende a programar comentar en exceso puede hacer que el código sea más difícil de leer si
en los comentarios contienen descripciones que se pueden interpretar muy fácilmente a través del código debes asumir que el desarrollador que está leyendo tu código ya sabe programar en este lenguaje de programación y los comentarios sólo deberían agregar detalles extras o detalles importantes para explicar partes complejas del código no comentar A él sólo por comentar o de escribir el código en este caso tenemos un ejemplo extremo de comentar demasiados comentarios excesivos en el código aquí podemos ver una variable que está descrita como temperatura inicial 56 el valor 56 ya se puede observar directamente en el correo
también la parte de temperatura inicial se podría omitirse en vez de una abreviación como temp poner temperatura inicial y eso haría que nuestro código fuera más Descriptivo también si eso es lo que requerimos aquí vemos otro mensaje si la temperatura es mayor a 60 mostrar este mensaje pero básicamente lo que estamos haciendo es describir lo que vemos en el código ya python es muy similar a un lenguaje escrito y podemos ver si la temperatura es mayor a 60 que es básicamente lo que estamos escribiendo aquí lo podemos ver directo en el código mucho más conciso
mostrar este mensaje y lo estamos escribiendo también en Palabras así que este comentario es redundante yo lo eliminaría también aquí tenemos otros dos ejemplos de ese mismo tipo de comentario si la temperatura es mayor a 35 que lo que tenemos aquí mostrar el mensaje normal aquí tenemos este mensaje este comentario también es redundante y podríamos eliminarlo si la temperatura es menor o igual a 35 mostrar el mensaje en frío pero básicamente eso también es lo que estamos escribiendo con la Cláusula else sin ninguna de estas condiciones es verdadera es porque la temperatura es menor o
igual a 35 entonces se muestra este mensaje por lo tanto este comentario es básicamente redundante debemos evitar todos los comentarios que sean redundantes o que describan algo que sea obvio en el código que se puede interpretar fácilmente sólo con leer el código pero los comentarios bien usados son una herramienta poderosísima para escribir Buen código ahora comencemos a ver un tipo de datos un poco más estructurados en python comenzamos con las listas las listas son un tipo de estructura de datos que ya viene predeterminado en el lenguaje de programación y que puedes usar fácilmente primero que
todo que es una lista es una estructura de datos utilizada para almacenar múltiples valores en secuencia tenemos una secuencia de datos que van a ser Almacenados en una misma estructura en un mismo valor que podemos manipular acceder modificar y usar en nuestro programa este es un ejemplo de una lista que contiene cuatro números esos números en este caso son los elementos de la lista pero una lista puede contener valores de cualquier tipo de datos la característica visual principal de una lista es que está definida o rodeada por corchetes eso es importantísimo para Definir una lista
como tal tenemos que usar corchetes ese es un símbolo específico para este uso en python dentro de esos corchetes escribimos sus elementos y cada elemento los separamos del otro con una coma y un espacio como puedes ver aquí una lista también puede contener cadenas de caracteres y cualquier otro tipo de valor e incluso valores de distintos tipos y ellas son secuencias ordenadas esta palabra es clave porque son ordenadas porque cada Uno de sus elementos está ubicado en un índice específico exactamente igual que los caracteres de una cadena de caracteres recuerda que trabajábamos con índices para
la indexación bueno esto funciona exactamente igual para las listas en el índice 0 tenemos el primer elemento en el índice 1 el segundo elemento y en el índice 2 el tercer elemento y así sucesivamente no es porque la lista sea ordenada en un orden específico que Tenga un orden específico sino que cada uno de sus elementos tiene su propio lugar en la secuencia el primer elemento recuerda está en el índice cero no en el índice uno como no pensaría intuitivamente y después los índices se van incrementando de 11 en 1 a medida que vamos moviéndonos
hacia la derecha para alcanzar el siguiente elemento estas son las características principales de una lista una lista es Una secuencia ordenada de valores y puede contener valores de cualquier tipo puede contener enteros números en coma flotante cadenas de caracteres valores julianos otras listas e incluso valores de otros tipos de estructuras de datos que vas a aprender tan sólo unos minutos las listas también pueden contener valores de distintos tipos cada posición en la lista está asociada a un entero y es entero se llama índice y una de las características pero principales vitales De las listas es
que son mutables esto significa que las listas pueden ser modificadas cada lista puede ser modificada vamos a hablar sobre esta característica de ser mutable en tan solo algunos momentos cuando definimos una lista la podemos asignar a una variable y luego podemos hacer usar esa variable para acceder a un elemento específico para acceder a un elemento de la lista usamos su índice correspondiente para ello usamos esta Sintaxis que es muy parecida prácticamente igual a la sintaxis que usamos para indexar cadenas de caracteres lo que hacemos es escribir la variable que contiene la lista y entre corchetes
escribir el valor del índice que queremos acceder a esta expresión como tal completa nos va a retornar ese elemento que está actualmente en ese índice veamos este ejemplo tenemos una lista Con las letras b c y d representadas como cadenas de caracteres cada una tiene su índice correspondiente si nosotros en una sesión interactiva definimos está lista y la asignamos a la variable letras podemos usar esa variable para acceder a los elementos de la lista el índice 0 nos permite acceder al primer elemento de la lista aquí lo vemos el índice 1 nos permite acceder al
segundo elemento el índice 2 nos permite Acceder al tercer elemento y el índice tres al cuarto elemento la letra d y así es básicamente cómo funciona la indexación de listas para poder acceder a un elemento 0 1 2 y 3 también podemos agregar un elemento una vista como ellas son mutables pueden cambiar así que podemos agregarle un elemento hay dos formas de agregar ese elemento al final de la lista o en un índice específico veamos la primera opción primero al final de la lista si Queremos agregar un elemento al final de una lista como el
último lamento lo que hacemos es llamar al método apple ese método va a necesitar que especificamos el elemento que vamos a agregar y aquí especificamos la lista que queremos modificar la lista luego un punto el nombre del método avent y entre paréntesis el elemento que queremos agregar aquí tenemos un ejemplo vemos que definimos una lista con cuatro números y Le asignamos a la variable en homs y luego usamos esa variable para llamar al método open con un punto si llamamos a este método le tenemos que especificar qué elemento queremos agregar al final de la lista
ese elemento es el número cinco luego de ejecutar esta línea de código si verificamos el valor de la lista vemos que actualmente posee el valor 5 como el último elemento de la lista y así es básicamente cómo funciona apple Ahora si queremos insertar un elemento en un índice específico tenemos que usar el método insert especificamos nuevamente la lista que queremos modificar seguido de un punto el método insert y entre paréntesis tenemos el índice donde queremos insertar el elemento y el elemento como tal que queremos insertar aquí tenemos un ejemplo tenemos la lista 1 2 3
4 5 con estos elementos le asignamos una variable y luego llamamos Al método insert queremos insertar el elemento 6 en el índice 0 recuerda que este es el índice y este es el elemento si verificamos nuevamente el valor de num después de ejecutar esta línea de código podemos verificar que efectivamente el primer elemento de la lista ahora es el valor 6 y todos los otros valores que ya estaban en la lista fueron reubicados adecuadamente en la lista bien ahora es momento de una pregunta Rápida selecciona el método que agrega un elemento al final de la
lista piénsalo por unos segundos evaluar las opciones y luego volvemos y la respuesta correcta es apple este es el método que agrega un elemento al final de la lista insert lo inserta en un índice específico además de agregar elementos a la lista podemos remover un elemento como podemos eliminar un elemento bueno tenemos el método remove Ese método nos permite eliminar la primera ocurrencia en la primera repetición en la primer el primer valor encontrado que corresponda a este elemento que especificamos entre paréntesis también como siempre cuando trabajamos con métodos tenemos que especificar la lista que queremos
modificar seguida de un punto el nombre del método y el elemento entre paréntesis aquí tenemos un ejemplo tenemos una lista con varios elementos Tenemos 2 ocurrencias del valor 4 si nosotros llamamos al método del remover remove y especificamos que queremos remover el valor 4 lo que va a ocurrir es que la primera ocurrencia esta ocurrencia del valor va a ser removida pero ésta no se va a remover como podemos ver aquí ya el primer 4 el primer valor 4 no existe en la lista y así podemos ir removiendo los elementos que necesitamos si intentamos remover
un elemento que no Existe en la lista entonces vamos a tener lo que se denomina un error de valor aquí en esta lista estamos intentando remover el valor 9 pero podemos ver que el valor 9 no existe así que tenemos un error de valor dios dice error de valor de este punto reboot x porque estamos llamando al método remove akin x no está en la lista el elemento 9 no está en la lista eso es algo que debes tener presente cuando Trabaja con el método de ritmo pero como puedes cerciorarte o revisar que ese elemento
si está en la lista antes de removerlo bueno hay una forma de encontrar un elemento en la lista de verificar si existe o si está en la lista verdaderamente y eso lo podemos lograr con el operador y con el operador y lo que hacemos es especificar el elemento que queremos encontrar seguido de un espacio el operador y en otro espacio y luego la lista donde queremos Buscar si el elemento está en la lista el resultado va a ser si va a ser verdadero pero si no el resultado va a ser falso y eso lo podemos
usar como parte de un condicional para ejecutar un código solamente si ese elemento está en la lista o no aquí vemos un ejemplo de el operador y en tenemos una lista con las vocales y estamos verificando si la vocal a la cadena de caracteres está en esta lista como está en la lista la Podemos observar aquí el resultado es verdadero pero como z no está en la lista el resultado es falso y esto es muy útil para usarlo incondicionales un método que podemos usar que es muy útil cuando trabajamos con listas es el método index
este método retorna el índice de la primera ocurrencia de un elemento en la lista del elemento que nosotros especificamos entre paréntesis si no se encuentran elementos entonces ocurre un Error aquí vemos la sintaxis es la misma sintaxis que usamos para llamar a los métodos pero esta vez estamos especificando que queremos llamar al método index y aquí vemos un ejemplo tenemos la lista con las vocales y llamamos al método index queremos conseguir el índice de el elemento la cadena de caracteres y el resultado retornado es el valor 2 porque efectivamente la cadena de caracteres Está en
el índice 2 0 1 y 2 si intentamos ubicar el índice de una cadena de caracteres o de un elemento que no está en la lista entonces vamos a ver este error error de valor z no está en la lista así que debes primero verificar si el elemento está en la lista antes de llamar a este método para evitar errores cuando se ejecuta el programa ahora es momento de otra pregunta rápido selecciona el valor retornado por el Operador y en este código tenemos este código esta está lista y tenemos esta línea de código con el
operador y cuál va a ser el resultado verdadero o falso true o fox piénsalo por unos segundos y ya regrese y el resultado va a ser falso porque falso porque porque 6 no está en la lista y por lo tanto el valor retornado va a ser falso bien ahora ya sabes cómo agregar y cómo eliminar un elemento y cómo encontrar un Elemento en una lista pero también a veces es necesario cambiar el valor de un elemento en un índice específico así podemos actualizar la lista a medida que el programa se ejecuta esto es posible en
gracias a que las listas son mutables mutable significa que pueden ser cambiadas sus elementos pueden ser modificados luego de ser definidos en el programa esta es la sintaxis básica para cambiar un valor o actualizar un valor en una Lista tenemos la variable de la lista seguida de corchetes el índice que queremos actualizar básicamente lo que estamos diciendo es actualiza el valor en este índice y en esta lista y asigna le tenemos el operador de asignación asigna el nuevo valor que yo estoy especificando aquí tenemos un ejemplo tenemos una lista con elementos la variable en homs
y lo que hacemos en esta línea de segunda línea es Actualizar el valor en el índice 0 de la lista número al valor menos 8 estamos asignando este valor en el índice a 0 si verificamos el valor de la variable vamos a ver que el valor ahorita es menos 8 efectivamente se actualizó el valor de 1 a menos 8 en la lista genial ya sabes cómo actualizar el valor en un índice específico de una lista ahora veamos métodos de las listas los métodos de las listas son muy útiles y vas a utilizarlos comúnmente en python
Los métodos de listas son operaciones comunes de listas que se ejecutan con las listas que ya están implementadas en python igual que los métodos de cadenas de caracteres vemos la misma sintaxis que usamos para llamar a cualquier método especificamos la variable que contiene a la lista un punto luego llamamos al método con su nombre paréntesis y dentro de los paréntesis encontramos parámetros que requieren métodos puede que no requiera ningún Parámetro y en este caso tenemos par entre seis vacíos para llamar al método métodos importantes de listas incluyen count que nos permite contar cuántas veces se
repite un elemento en una lista extend que nos permite extender una lista agregándole los elementos de otra lista cuando que elimina y retorna un elemento de la lista rivers que reversa el orden actual de la lista y sort que ordena la lista en un orden específico ascendente o descendente puedes aprender Más sobre estos métodos en la documentación oficial de payton felicitaciones ya sabes cómo trabajar con listas en python como definirlas como modificarlas como agregar eliminar y encontrar elementos en una lista y cómo usar los métodos más importantes de las listas ahora es momento de una
pregunta rápida sobre listas selecciona el valor final de la lista aquí tenemos una secuencia de líneas que se ejecutan en una sesión interactiva de payton Definimos una lista luego llamamos al método x luego al método rivers y luego el método extend pausa el vídeo por unos segundos puedes ir a la documentación oficial de pacto o investigar un poquito sobre estos métodos en internet y trata de determinar cuál va a ser el valor final de la lista y la opción correcta es la opción de esta opción que es lo que ocurre el método pop elimina un
elemento y lo retorna ese Elemento es en este valor que tenemos aquí el valor 6 la lista después de este comando es 345 luego después cuando llamamos al método rivers se reversa el orden el último elemento se convierte en el primero y el primero en el último tenemos 5 4 3 lo que tenemos aquí y luego cuando llamamos al método externo estamos agregando los elementos de esta lista a la lista estamos agregando 8 9 y 0 a la lista así que este es el resultado final buen trabajo Ya conoces cómo funcionan las listas en python
y ahora veremos una estructura de datos que es muy similar a las listas pero con dos diferencias claves una visual y una funcional comencemos a ver cómo funcionan las duplas en inglés ellas se denominan to post con una aquí dúplex una tu plan es una estructura de datos inmutable que contiene una secuencia ordenada de elementos estas dos palabras son claves en una estructura de datos Inmutable lo cual significa que no se puede cambiar y está ordenada también igual que las listas cada uno de sus elementos que ocupan un lugar específico en la tabla y se
pueden acceder con sus índices aquí tenemos un ejemplo de una tu plan python la primera diferencia visual que podemos ver con respecto a las listas es que está rodeado por paréntesis tenemos una secuencia de elementos rodeados de paréntesis y los elementos están separados por comas y un Espacio luego de la coma son secuencias ordenadas al igual que las listas cada uno de sus elementos está ubicado en un índice específico y sus principales características son una tu plan es una secuencia ordenada de valores puede contener valores de cualquier tipo de datos igual que las listas puede
contener cualquier tipo e incluso listas tu plan u otros tipos de datos o los tipos de datos básicos números Cadenas de caracteres valores julianos cualquier tipo de dato también puede contener valores de distintos tipos de datos porque pueden contener valores mezclados en la misma tabla puede tener valores de distintos tipos cada posición en la tabla se identifica con un entero denominado índice y las duplas son inmutables por lo tanto no pueden ser modificadas es la principal característica funcional de las duplas que la diferencia de la lista las listas Son notables y las teclas son inmutables
y mutable significa que no puede cambiar y eso va a ser muy útil cuando necesitemos hacer una estructura de datos que no pueda ser alterada o modificada durante la ejecución del programa eso nos permite proteger la data mejor si queremos que nada nada nada en la secuencia de datos en la estructura de datos sea modificado por error si nosotros intentamos en el programa modificar un índice específico De una tabla usando la sintaxis que usábamos para las listas vamos a ver este error error de tipo type r el objeto tu plan no soporta o no permite
la asignación de elementos esto es lo que dice el error en español su proyecto es not support además jaime la objeto tu plan no permite la asignación de elementos y eso es lo que estamos intentando hacer aquí por ello le adapta que tenemos aquí en este tu clan está muy protegida no Podemos cambiarla y por ello es que a veces escogemos usar tu plaza en lugar de listas en nuestro programa para ciertas aplicaciones específicas lo que sí podemos hacer con una dupla es acceder a un elemento como podemos acceder un elemento bueno usando su índice
porque las duplas aún así son secuencias ordenadas aquí tenemos un ejemplo tenemos una tabla que contiene tres cadenas de caracteres a b y c usando la misma sintaxis que usamos con Las listas podemos acceder a sus elementos 0 1 y 2 a b y c así que funciona exactamente igual que una lista en ese aspecto también podemos encontrar a un elemento usando el operador exactamente igual que hacíamos con las listas escribimos el elemento el operador y luego una tabla como podemos ver acá el elemento el operador Y luego la dupla representada con su respectiva variable
cada una de estas expresiones retornan verdadero o falso una de las dos principales operaciones que podemos realizar con las duplas es encontrar el índice en donde está ubicado un elemento o la primera ocurrencia de ese elemento en la dupla el método index que también usamos con las listas en el caso de las duplas la podemos utilizar porque esto no modifica en nada las duplas y está definido en Python si queremos encontrar el índice de la cadena y lo podemos hacer y el resultado es 0 el resultado de la cadena b es 1 y si llamamos
es a ese método para conseguir o encontrar un elemento que no está en la tabla vamos a ver un error x no está en la dupla error de valor así que debemos usar el operador y en con un condicional para revisar si ese elemento está o no en la tabla antes de llamar a este método Y la segunda operación importante que podemos realizar con las duplas es la operación count que nos cuenta el número de ocurrencias de este elemento en la dupla aquí vemos un ejemplo para contar cuántas ocurrencias del número 4 hay en la
tabla el resultado es 1 ahora veamos una pregunta rápida completa la oración la principal diferencia entre las listas y las duplas en python es que las listas son y en las duplas son Completa la oración piénsalo por unos segundos y ya regreso la principal diferencia entre las listas y las tu clase payton es que las listas son mutables y las duplas son inmutables esa es la diferencia principal en cuanto a la parte funcional en cuanto a la parte estética o visual las listas se definen con corchetes y las duplas se definen con paréntesis genial ya
sabes trabajar con listas y con tu plan en python así que pasemos a nuestra Siguiente estructura de datos ahora hablemos sobre otra estructura de datos muy importante en python los diccionarios los diccionarios nos van a permitir relacionar dos valores en la misma estructura de datos para poder acceder a ellos de forma mucho más eficiente un diccionario es una colección de pares clave balón es el término formal para referirnos a dos valores uno actúa como una clave y otro actúa como un valor Este es un ejemplo de un diccionario en python un diccionario en python se
define con llaves rodeando toda la estructura de datos todos los elementos con llaves y dentro de esas llaves escribimos los distintos elementos del diccionario cada uno de estos pares que podemos ver aquí se denominan par clave valor en cada par hay una clave que es el elemento que está a la izquierda y hay un valor que es el elemento que está a La derecha y ellos están separados por dos puntos y un espacio esos dos puntos indican que uno es la clave y el otro es el valor con la clave nosotros podemos acceder al valor
en el programa así que la clave es muy importante es cogerla adecuadamente para asociarla a su correspondiente valor aquí tenemos en el diccionario dos pares clave valor y cada uno de esos padres está separado por una coma y un espacio luego de la coma igual que se parábamos Los elementos de listas y tú class pero ahora estamos separando los pares clave valor veamos sus principales características un diccionario es una colección de pares clave valor las claves del diccionario deben ser únicas es importante deben ser únicas e inmutables es decir las claves no pueden ser de
un tipo de datos mutables no puedes asignar una lista por ejemplo como una clave en un diccionario deben ser inmutables como las cadenas de Caracteres o las duplas también pueden ser algún tipo de dato numérico y también deben ser únicas no hay claves repetidas en un diccionario si tratas de agregar una clave que ya existe en el diccionario lo único que va a lograr es actualizar su valor nunca van a haber dos pares clave valor con la misma clave los valores asociados a las claves pueden ser de cualquier tipo allí si no tenemos restricciones pueden
ser mutables o inmutables y pueden estar Repetidos pueden ser de cualquier tipo que necesites la clave se usa para acceder a su valor asociado a través del diccionario y los pares clave valor pueden ser modificados añadidos y eliminados por lo tanto los diccionarios son un tipo de estructura de datos mutables veamos cómo puedes acceder a un valor en un diccionario en un diccionario nosotros usamos la clave para acceder a su correspondiente Valor y como lo hacemos con esta sintaxis que es muy parecida a la indexación de cadenas de caracteres y en la indexación de listas
pero en lugar de especificar un índice nosotros vamos a usar la clave que corresponde a ese valor específico entre corchetes especificando el diccionario al cual pertenece es básicamente la sintaxis esta expresión completa va a resultar en el valor asociado a la clave que estamos Especificando aquí vemos un ejemplo tenemos un diccionario que asocia la cadena de caracteres chinos al valor 15 ignora al valor 45 digamos que estamos asociando el nombre de una persona con su edad si nosotros usamos el nombre del diccionario y entre corchetes especificamos la clave del parc del valor al cual queremos
acceder vamos a poder acceder a utilizar el valor asociado aquí y no nos retorna el valor 15 su valor asociado en el diccionario in ahora nos retorna el valor 45 su valor asociado otra alternativa para obtener el valor es usar el método get con la variable del diccionario seguido de un punto get que es obtener en inglés y entre paréntesis especificar la clave del par en este caso es 15 el valor asociado a esta clave ya puedes ver que funciona de forma equivalente como los diccionarios son mutables podemos añadir y modificar para es clave Valor
veamos como la sintaxis es muy muy parecida a modificar un valor en una lista especificamos la variable del diccionario y entre corchetes escribimos la clave del par que queremos modificar o añadir en este caso si la clave es nueva se va a crear un nuevo par clave valor luego escribimos el operador de asignación y el valor que queremos asignarle al nuevo par aquí tenemos un ejemplo tenemos un diccionario con sus Pares clave valor escribimos esta variable seguida de corchetes especificamos la clave del nuevo parque queremos agregar que esta línea y luego le asignamos el valor
usando el operador correspondiente si verificamos el valor del diccionario luego de estas operaciones vemos que hay un nuevo par clave valor que stalin a asociado al valor 167 en cambio si la clave ya existe lo que vamos a lograr es actualizar el valor existente vamos a Tomar el nuevo valor y lo vamos a usar para reemplazar el valor del par actual porque no pueden haber claves repetidas en un diccionario aquí vemos el ejemplo tenemos el diccionario y usamos una clave que ya existe chino que ya está en el diccionario actualmente está asociado al valor 15
pero si le asignamos el valor 17 lo que vamos a lograr es actualizar su valor en el diccionario y aquí lo vemos el valor ha sido actualizado bien Ya sabes añadir nuevos pares clave valor y actualizarlos así que veamos cómo puedes removerlos porque también esa es una operación común en python para remover o borrar un par clave valor de un diccionario necesitamos usar esta sintaxis la palabra clave del dl que es la abreviación de delete en inglés borrar nos va a permitir eliminar un par clave valor del diccionario especificamos la variable del diccionario y luego
entre corchetes La clave del par que queremos remover y eso va a ser toda la magia va a remover ese parte veamos este ejemplo un diccionario sencillo y si ejecutamos esta línea vamos a borrar el par que corresponde a la clave chino en el diccionario edades luego de ejecutar esta línea vemos que solo queda un par en el diccionario este par que especificamos fue removido exitosamente también podemos revisar la existencia de Un elemento en un diccionario la existencia de una clave específica usando el operador y este operador también se aplica para confirmar si existe algún
elemento en un diccionario pero qué es lo que vamos a colocar aquí el elemento va a ser la clave del par que estamos buscando aquí tenemos un ejemplo podemos confirmar si la clave no existe en el diccionario edades eso es verdadero lo tenemos aquí lo que Vamos a obtener si no existen es falso falso aquí también tenemos otro ejemplo de una clave que si existe en el diccionario el operador funciona exactamente igual para cualquier tipo de datos bien ya sabes trabajar con diccionarios en python felicitaciones ya cubrimos tres tipos de estructuras de datos que vienen
ya incorporadas en python y que puedes utilizar para crear programas poderosos con este lenguaje de Programación así que continuamos con nuestro siguiente tema del curso ahora que sabes cómo puedes utilizar los distintos tipos de datos estructuras de datos y operadores en python además de los condicionales veamos cómo puedes aprender más sobre los distintos elementos del lenguaje en la documentación la documentación específicamente va a ser muy útil para aprender sobre las funciones que puedes utilizar en python sobre los métodos que Puedes utilizar con listas to plans diccionarios y otros tipos de datos con los cuales puedes
trabajar y en general para saber más sobre el lenguaje de programación así que veamos cómo puedes acceder a esa documentación y cómo puedes buscar lo que necesitas lo primero que debes hacer es ir a la página web de payton python punto o hereje luego de eso lo primero que vas a buscar aquí en la página oficial va a ser 2 comentéis jon en inglés significa Documentación desde allí vas a hacer clic en este botoncito python box esta es una forma de abreviar documentación en inglés hacemos clic y esto nos lleva a la documentación de paita
pero lo vamos a ver inicialmente en inglés y como podemos verla en español bueno haciendo clic en este menú que tenemos aquí hacemos clic y seleccionamos esperan es para español igual a aquí podemos ver la documentación de payton en español También podemos ver la documentación de otras versiones de payton en español haciendo clic en esta opción y escogiendo la versión con la cual queremos trabajar te damos la bienvenida esta es la documentación de payton 3.9 punto 1 tenemos las distintas áreas de la documentación las dos áreas que vas a utilizar comúnmente cuando trabajes con python
van a ser la referencia de la biblioteca y payton te lo advierte dice mantener esto bajo tu almohada y la Referencia del lenguaje que es la descripción de sintaxis y los elementos del lenguaje también puedes encontrar otros elementos como tutoriales y también que hay de nuevo en país de un 3.9 esta sección resume todo lo nuevo de payton 3.9 pero por ahora vamos a ir a la referencia de la biblioteca y aquí podemos ver la biblioteca estándar de payton vemos una corta introducción y luego vemos un índice que nos va a llevar a los artículos
Correspondientes uno de los artículos que más vamos a utilizar va a ser este las funciones build en las funciones que ya vienen incorporadas en el lenguaje si hacemos clic aquí vamos a un artículo que nos presenta todas las funciones de ute en las funciones incorporadas en python aquí tenemos un índice de todas esas funciones y si hacemos clic en cada una de ellas podemos ver su descripción veamos por ejemplo la descripción de la función en que hemos estado usando Durante el curso para obtener el tamaño o la longitud de las cadenas de caracteres y de
las distintas estructuras de datos hacemos clic allí inmediatamente vamos a ver que la página se ha desplazado hacia abajo y vemos resaltado en amarillo la función en la que hicimos clic vemos una corta descripción de la función y aquí podemos ver que toma un parámetro requiere un valor aquí lo vemos entre paréntesis ese valor ese representa una Secuencia y aquí lo dice el argumento que es el valor que debemos proporcionar de la función puede ser una secuencia o una colección vemos más detalles sobre ese argumento y eso normalmente lo vas a conseguir en la documentación
por eso es que es muy importante que aprendas a manejar esta documentación ya conseguir exactamente lo que buscas si queremos por ejemplo compartir un link a este artículo lo que tenemos que hacer es hacer clic en este simbólico Que aparece junto al nombre de la función y vas a ver que aquí se agrega esto que puedes ver aquí un hashtag ln la función a la cual nos estamos refiriendo luego puedes compartir ese link ese enlace y si abres una nueva pestaña haces clic allí inmediatamente vas a llegar a la función que fue seleccionado bien ahora
veamos otro tipo de función bien team de función incorporada para ver las distintas notaciones las distintas Símbolos que podemos conseguir en esta documentación vamos a ver la función ground la función que nos redondea un valor a tantos dígitos como especificamos vemos que esa función toma dos valores aquí los tenemos un número el número que queremos redondear y otro valor la cantidad de dígitos que queremos mantener para expresar la precisión de ese valor como vemos aquí está rodeado este valor entre corchetes por qué Porque este valor es opcional podemos especificar lo on o sino lo especificamos
la documentación nos dice que si ese valor es omitido o es no en que es otro valor especial que indica que no hay un valor retorna al entero más cercano a su entrada aquí puedes ver que la documentación nos especifica exactamente cómo podemos usar la función normalmente el primer párrafo de esa descripción es el más útil o el que tiene información más precisa luego los Otros párrafos de la documentación hablan sobre más detalles o sobre detalles más específicos de la implementación de la función también son muy útiles pero normalmente nos vamos a referir a este
párrafo este primer párrafo que vemos en la documentación ahora veamos la función rivers aquí puedes ver esa función que toma una secuencia y puedes ver una descripción corta de esa función así es básicamente cómo funciona la Documentación escoges el elemento del cual quieres saber más y buscas exactamente el artículo o la parte del artículo donde la puedes conseguir hay un tercer tipo de notación que puedes conseguir que puedes ver en la documentación por ejemplo aquí tenemos una función llamada short en que retorna una nueva lista ordenada a partir de los elementos de la secuencia que
se le suministra como valor concentrémonos en esta anotación por aquí si nosotros Vemos un parámetro un valor y vemos luego un signo igual y un valor específico eso nos dice que hay este parámetro específico tiene un valor por defecto y hay por lo tanto opcional podemos especificar lo o no si no lo especificamos el valor este por defecto que está indicado en la documentación será asignado si se lo utilizó puedes saber más sobre cómo se utilizan esos valores en la descripción de la función genial ya sabes cómo leer la Documentación de payton cómo cambiar el
idioma español y cómo escoger entre distintas versiones de payton normalmente vamos a referirnos a este artículo de funciones view ten allí puedes aprender más sobre todas las funciones y además en esta sección de la biblioteca estándar de payton puedes aprender más sobre los tipos de datos integrados también operaciones booleana tipos numéricos comparaciones secuencias las cadenas de caracteres también si Quieres aprender más sobre cadenas de caracteres haces clic aquí y puedes aprender más sobre este tipo de datos la documentación es un recurso invaluable para aprender más sobre este lenguaje de programación así que luego del curso
luego que termines el curso te recomiendo ir a la documentación y tratar de averiguar más sobre cada uno de los tipos de datos de payton felicitaciones ya ha llegado a una parte intermedia avanzada del curso vamos a Empezar a ver un tipo distinto de estructura en programación que se denomina un ciclo o también bucle en este caso vamos a comenzar con los ciclos fuera porque hay dos tipos de ciclo primero veremos los ciclos forma y después vamos a ver los ciclos while cuál es el propósito de un ciclo un ciclo nos permite ejecutar una o
varias líneas de código múltiples veces vamos a poder repetir una secuencia de líneas de código tantas veces como nosotros Especifiquemos o queramos los ciclos en general son una estructura de control esa es la de término técnico una estructura de control en programación vamos a poder repetir esas líneas de código múltiples veces cuando usamos un ciclo for específicamente ese tipo de ciclo lo usamos cuando sabemos con antelación cuántas veces debemos repetir ciertas instrucciones vamos a usar los ciclos fueron únicamente cuando sabemos con Antelación cuántas veces se deben repetir un cierto grupo de instrucciones cuando no sabemos
cuántas veces se deben repetir usamos el otro tipo de ciclo esta es la lógica básica de un ciclo for an en un programa de payton el proceso inicia cuando se consigue un ciclo o bucle durante la ejecución del programa y se evalúa una condición si todavía quedan iteraciones o repeticiones pendientes el término iteración es extremadamente importante en Programación y específicamente en el tema de ciclos o bucles una iteración es una repetición de un cierto grupo de instrucciones es una repetición del bucle o ciclo si todavía quedan iteraciones pendientes si esta condición es verdadera y quieran
interacciones pendientes se ejecutan nuevamente el conjunto de instrucciones que corresponden al ciclo y nuevamente se vuelve a evaluar esa condición cuando se completa el proceso si esa condición Ahora evalúa a falso faus el ciclo se detiene pero si vuelve a ser verdadera las instrucciones se vuelven a repetir y se vuelve a evaluar la condición esto ocurre en un ciclo por eso se llaman ciclos o bucles hasta que la condición sea falsa y el ciclo se detiene cuando el ciclo se detiene finaliza ese proceso y continúa la ejecución del programa de forma lineal como se ejecuta
normalmente por eso es que los ciclos se denominan una Estructura de control porque ellos cambian o controlan el flujo o la ejecución del programa de una forma distinta y permiten que creemos una ejecución repetitiva esa es la lógica básica un ciclo ford en cuanto a sintaxis vemos aquí una de las versiones que podemos utilizar para escribir un ciclo forma lo primero que conseguimos es la palabra clave ford luego conseguimos una variable vamos a ver cuál es el rol de esta variable en El ciclo luego la variable in y aquí una función específica range ok range
en español significa rango y en ese rango vamos a especificar un valor de inicio y un valor final ese rango nos va a servir para especificar cuántas veces queremos repetir esta secuencia de instrucciones aquí estoy usando un comentario para representar que aquí iría un código intentado y este código sería el que vamos a repetir tantas veces como Queramos como especificamos en esta primera línea hablemos un poquito sobre esta variable esta variable que tenemos aquí va a ser una variable que nosotros definimos para controlar el proceso del ciclo esta variable se denomina una variable de control
vamos a ver más sobre ella la variable de control es una variable como cualquier otra que puede ser utilizada en el código que se va a repetir se puede usar en el código que vamos a repetir una y otra y otra vez la Diferencia de esta variable con otras es que se actualiza automáticamente antes de comenzar cada iteración así que tú no debes hacer la actualización manualmente no debes escribir una línea que actualice su valor se actualiza automáticamente y es recomendable asignarle un nombre descriptivo a esa variable para hacer que tu código sea más fácil
de leer pero con qué valores se actualiza automáticamente esta variable si Nosotros no se los estamos asignando explícitamente eso depende de los valores retornados por la función range esa función va a retornar una secuencia de valores y cada uno de esos valores va a ser asignado a la variable de control uno a uno veamos un ejemplo para ilustrar cómo funciona este proceso aquí tenemos un ciclo tenemos formar la palabra for y que es el nombre de la variable de control que estamos creando definiendo y en qué es una palabra clave Y aquí tenemos reich en
este caso estamos especificando un solo valor para el rango aquí tenemos nuestros dos puntos aquí hay un punto y aquí otro punto y el código que vamos a repetir en este caso va a ser una sola línea de código que va a mostrar el valor de la variable y la variable de control si ejecutamos este código en el shell interactivo vamos a ver estos valores que tenemos acá 0 1 2 y 3 porque bueno la línea que Pertenece al cuerpo del ciclo la secuencia de instrucciones que se va a repetir se denomina el cuerpo del
ciclo en este caso el cuerpo del ciclo solo posee una línea está llamada la función print esa línea se ejecuta 4 veces 1 2 3 y 4 y en cada una de esas iteraciones se muestra el valor de la variable y esto nos demuestra que el valor de la variable y se va actualizando con cada iteración en la primera iteración en la primera repetición su valor es 0 luego Se incrementa 1 a 2 y finalmente a 3 y el ciclo culmina este comportamiento depende de la secuencia retornada por la función range vamos a verlo en
más detalle y por qué tenemos esos valores la función range es una función utilizada para obtener una secuencia de números enteros ella retorna a una secuencia especial de números enteros que nosotros especificamos en este caso usamos range con un valor de 4 como parámetro esto va A retornar una secuencia de números que va desde 0 hasta 3 0 1 2 y 3 porque el valor que especificamos representa el final de la secuencia la secuencia va a llegar hasta ese valor menos 1 y como no estamos especificando el inicio de la secuencia no estamos pasando los
valores no estamos colocando los valores entre paréntesis sino 1 el valor por default o por defecto va a ser cero para iniciar la secuencia podemos especificar de dónde queremos iniciar la secuencia si Pasamos dos valores entre paréntesis detrás de escena cuando el código se ejecute esta función está llamada la función range va a ser reemplazada por esta secuencia podemos imaginarlo de esa forma esa secuencia la vamos a reemplazar aquí visualmente tú no vas a ver ningún cambio en el código sino que esto va a pasar en teoría es una ilustración para mostrar lo que pasa
detrás de escena cuando corre el programa aquí tenemos nuestra variable De control que es it y tenemos el cuerpo del ciclo la línea de código que se va a repetir el valor de esa variable se actualiza en cada iteración el valor de la variable de control y por eso en cada instalación se muestra un valor distinto pero como se actualiza ese valor bueno en cada iteración un valor de la secuencia retornada por range va a ser asignada a la variable de control 0 en la primera integración y por eso se muestra el valor 0 luego
1 el valor que Se va a asignar ahí es 1 y ese es el valor que se muestra 2 en la tercera iteración en la tercera repetición de esta secuencia de instrucciones y finalmente 3 para la cuarta iteración y allí como no quedan más elementos en la secuencia para asignar a la variable de control el proceso de repetición culmina y el ciclo se detiene así es básicamente cómo funcionan los ciclos fort como puedes ver controlando El número de elementos que tenemos en la secuencia controlamos cuántas iteraciones o repeticiones se ejecutan y también podemos controlar qué
valores se van a asignar a la variable de control que podemos utilizar en nuestro código los ciclos son extremadamente poderosos y también se pueden personalizar aún más si usamos la función range con tres parámetros start stop y step esto significa inicio en inglés por defecto es 0 si no se utiliza un Parámetro si no se pasa un valor para ese parámetro así que la secuencia comienza en cero por defecto si no especificamos un valor el valor de stop es el valor de finalización de la secuencia y no es inclusivo si nosotros especificamos un solo valor
ese valor va a ser el final de la secuencia y opcionalmente podemos pasar un tercer parámetro que representa el paso el paso nos dice cuánto vamos a sumar de un elemento a otro de un entero a otro Hasta llegar al punto final de la secuencia y por defecto es 1 en la secuencia anterior sumamos 1 para obtener el siguiente elemento en la secuencia pero podemos personalizar este valor para sumar por ejemplo 5 o 10 o cualquier valor que tú desees para personalizar la secuencia que vas a obtener y así es básicamente cómo funciona este elemento
que tenemos aquí la función range es una de las alternativas para definir Ciclos forest en python usar la función range pero también podemos definir ciclos que en lugar de tirar sobre la secuencia de range integrada sobre elementos específicos que se denominan iter hables vamos a ver un poquito más sobre esto uniter able es un elemento que retorna a sus elementos uno a la vez son datos son valores o estructuras en python que pueden retornar cada uno de sus elementos uno a la vez así como range retorna a una secuencia y cada Elemento de esta secuencia
se asignaba una variable podemos usar literales para asignar sus valores los literales en python son las cadenas de caracteres listas duplas diccionarios entre otros incluyendo conjuntos archivos y otros tipos de valores y podemos integrar sobre cada uno de ellos para hacer algo con cada uno de sus elementos cada uno de sus elementos se va a Asignar a la variable de control uno a la vez uno por integración y podemos usar ese elemento directamente en nuestro código en el cuerpo del ciclo aquí tenemos la sintaxis básica para integrar sobre un iter hable puedes ver que la
sintaxis es muy parecida a cuando usábamos reich sin embargo ahorita estamos usando un iter hable directamente aquí una lista una dupla un diccionario una cadena de caracteres una variable que se refiere a alguno de Estos tipos de datos la escribimos directamente en este lugar de igual forma definimos una variable que va a ser la variable de control y aquí tenemos el cuerpo del ciclo podemos ver un ejemplo aquí mismo con una cadena de caracteres normalmente esto en lugar de un valor directo va a ser una variable pero aquí he escrito los valores directamente para que
sea más ilustrativo visualmente si tenemos un ciclo y vamos a integrar sobre los Caracteres de esta cadena de caracteres cada carácter va a ser asignado a la variable de control uno a la vez en este caso nombrado la variable de control char porque es una abreviación muy común de carácter como se escribe en inglés caracteres así que vas a conseguir esta abreviación comúnmente en la literatura que leas de payton cada uno de estos caracteres va a ser asignado a la variable en su correspondiente iteración el primer Caracter en la primera iteración el segundo caracter en
la segunda interacción y así sucesivamente para cada uno de los caracteres luego de ser asignados esa integración va a ser ejecutada y nuevamente se va a actualizar el valor hasta que se complete el proceso en este caso como tenemos cinco caracteres vamos a tener cinco iteraciones y luego de la quinta iteración el proceso se va a detener el ciclo se va a detener y el programa va a Continuar su ejecución lineal normal aquí vemos el ejemplo ejecutado en la consola interactiva cada uno de los caracteres se muestra de forma individual porque fueron asignados a la
variable chain uno a la vez uno por iteración cada uno en su correspondiente iteración o repetición del ciclo puedes ver o imaginarte lo poderosísimo que puede ser esta herramienta para crear programas en paita aquí podemos ver este ejemplo aplicado a una lista porque También las listas las duplas y los diccionarios son inter hables esta lista tiene tres elementos y lo escribo aquí para fines visuales para que los puedas visualizar mejor pero normalmente aquí va a haber una variable que contenga una lista si ejecutamos este código en la consola vamos a ver que cada uno de
esos elementos se muestra individualmente uno por iteración porque cada uno de ellos fue asignado a la variable no uno por interacción lo mismo aplica para las Duplas cada uno de esos elementos son asignados a la variable de control por iteración con los diccionarios si de hay un poco de variación los diccionarios son un poco más complejos porque tienen claves tienen valores y tienen padres clave valor tenemos que escoger sobre cuál de ellos queremos literal si queremos integrar sobre las claves podemos escribir directamente la variable del diccionario aquí Para cada clave en el diccionario letras queremos
mostrar esta clave y esto nos va a mostrar cada una de las claves del diccionario en este caso a ive pero también podemos integrar sobre los valores y sobre los pares aquí podemos definir un diccionario por ejemplo letras y vamos a asociar la letra a con el valor 1 y la letra b con el valor 2 si queremos integrar sobre sus claves podemos escribir el nombre de la Variable directamente luego de la palabra clave y como verás aquí podemos ver las distintas claves a ver pero si queremos integrar sobre sus valores debemos usar un método
del diccionario que nos retorna los valores del diccionario escribimos el nombre del diccionario punto adiós que significa valores en español seguido de paréntesis vacíos para ejecutar y esta acción para cada valor en la lista de valores Queremos mostrar ese valor y aquí podemos ver los valores son 1 y 2 los que tenemos aquí exactamente en el diccionario que definimos y además si queremos integrar sobre los pares clave valor podemos hacerlo también pero ahora vamos a tener que definir dos variables de control una para la clave y una para el valor como podemos hacerlo con el
método items este método va a retornar una lista de los pares clave valor del Diccionario letras y con esta sintaxis vamos a asignar individualmente cada clave y su correspondiente valor a estas variables y podemos usar estas variables directamente en el cuerpo del ciclo por ejemplo aquí tenemos clave valor vamos a mostrarlas y voilà aquí podemos ver que tenemos la clave con su correspondiente valor 1 y la clave b con su correspondiente valor 2 esto es muy útil cuando queremos operar Con el par completo en cada iteración bien ya sabes cómo trabajar con ciclos forma usando
range y usando integrables incluyendo de cadenas de caracteres listas duplas y diccionarios así que pasemos a nuestro siguiente tema el próximo tipo de ciclos que puedes usar en tus programas ahora hablemos de los ciclos while el segundo tipo de ciclos que puedes usar en tus programas el ciclo es un tipo de ciclo que continúa mientras una Condición es verdadera y se detiene cuando esta condición es falsa eso es precisamente lo que significa la palabra while en inglés mientras continuar mientras algo es cierto y detenerse cuando esa condición es falsa y qué determina que esa condición
sea verdadera o falsa tú debes encargarte de que esa condición en algún momento se convierta en falsa debes hacer las actualizaciones necesarias a las variables que están involucrados en la Condición para garantizar que en algún momento esa condición sea falsa y el proceso no sea eterno porque si la condición siempre es verdadera ese proceso nunca se va a detener en teoría porque la computadora misma puede detener el proceso y tú también puedes detenerlo manualmente sino si esto ocurre y tenemos que detenerlo manualmente la computadora lo tiene que detener eso se denomina un ciclo infinito en
inglés se llama un Infinite loop un ciclo infinito que en teoría no se va a detener nunca a menos que haya una intervención externa esta es la sintaxis de cómo puedes escribir un siglo en python lo primero que vemos es la palabra un while aquí que es una palabra clave en python luego vemos la condición que va a determinar si el código sigue ejecutándose o no si es verdadera el código va a seguir ejecutándose si es falsa el proceso de repetición se detiene y el programa Continúa su ejecución normal luego de esa condición encontramos dos
puntos y en la próxima línea encontramos el bloque de código que se va a repetir ese código debe estar intentado y allí es donde entra nuevamente el concepto de intenta ción que es el nivel de espaciado que le agregamos a la izquierda de una línea para determinar a qué bloque de código pertenece esta intenta ciones está representada por cuatro espacios cuatro espacios a partir De la letra w haces clic en space cuatro veces y allí vas a llegar al nivel de intenta ción que se requiere para el cuerpo del ciclo web en cuanto al número
de interacciones un ciclo while no tiene no tiene un número fijo o predeterminado de iteraciones cuando comienza a ejecutarse no posee un número fijo o predeterminado de iteraciones no sabemos cuántas veces se va a ejecutar o por lo menos nosotros no estamos especificando explícitamente Cuántas iteraciones queremos como hacíamos con el ciclo foro recuerdas en el ciclo for usábamos la secuencia retornada por range o ejecutábamos las interacciones una vez por cada elemento pero en el ciclo while no ocurre la misma no hay un número fijo de iteraciones se ejecuta simplemente hasta que la condición es falsa
si la condición nunca es falsa entonces nunca se detiene en teoría y esta es la lógica principal de un ciclo web inicia el Proceso cuando se consigue un ciclo en el programa y se evalúa la condición si esa condición es verdadera o trump en el valor buljan o que usamos en python la secuencia de instrucciones se ejecuta y nuevamente se evalúa la condición para ver si debe haber una nueva iteración si esta condición es falsa entonces el ciclo se detiene y el proceso finaliza el proceso de repetición y el programa sigue Ejecutándose más allá del
ciclo web en cuanto a las variables de control los ciclos while no actualizan o no poseen ninguna variable de control automáticamente en este caso no existe como tal una variable de control como en los ciclos ford sino que son variables que pueden estar involucradas en la condición y van a determinar si el ciclo se detiene o no esas variables deben ser actualizadas en el cuerpo del ciclo necesariamente deben Ser actualizadas explícitamente con una línea de código se puede incrementar su valor o se puede actualizar su valor o cambiar su valor para lograr que la condición
sea falsa veamos un ejemplo de un ciclo web aquí tengo un archivo python en el cual voy a definir un ciclo while digamos que definimos una variable x y le asignamos un valor 20 si escribimos un ciclo while decimos 4x sea menor que digamos 35 Dos puntos recuerda qué es lo que vamos a hacer vamos a mostrar el valor de x y luego vamos a incrementar su valor en tres digamos que vamos a incrementar el valor de x en tres cada interacción luego de mostrar su valor actual eso va a garantizar que en algún momento
esta condición sea falsa comenzamos con el valor 20 vamos a incrementarlo del 3 en 3 y eso eventualmente va a llevarnos a que el valor de x sea mayor o igual a 35 Así que esta condición va a ser falsa y el ciclo va a detenerse este tipo de análisis es muy importante cuando empiezas a trabajar con los ciclos while para garantizar que el ciclo en algún momento se detenga y no se genere un ciclo infinito en el programa vamos a guardar el código y vamos a ejecutarlo y aquí puedes ver el resultado comenzamos con
20 luego 23 26 29 32 y allí el proceso se detiene porque se detiene porque llegamos a un punto en el Que el valor de las variables es 32 te muestra ese valor esto por aquí muestra 32 y luego el valor de x se incrementa se incrementa cuanto a 35 luego cuando se intenta comenzar otra nueva iteración qué es lo que ocurre estamos comparando si 35 es menor que 35 y eso es falso porque este operador es estricto y esto es falso y por lo tanto el ciclo se detiene esta es básicamente la lógica de
este Ciclo veamos qué ocurre si no actualizamos el valor de la variable en el cuerpo del ciclo si no hacemos esto y sólo mostramos el valor de la variable el valor de x siempre va a ser 20 así que esta condición siempre va a ser verdadera y que lo que va a ocurrir un ciclo infinito entonces vamos a guardar el archivo y veamos qué ocurre porque también debes saber qué hacer si esto te ocurre en algún momento en tu programa lo corremos y vemos que nunca se detiene El proceso y cómo lo detenemos con control
se aquí podemos ver cuando presionamos control ce en el teclado y estamos interrumpiendo la ejecución del programa y así podemos cortar ese ciclo infinito podemos detener este ciclo vamos a ver este error keyboard interval interrupción del teclado así que siempre recuerda este atajo del teclado control c además si no recuerdas el atajo de teclado puedes ir a él y hacer clic en interop exclusión De igual forma eso va a detener la ejecución del programa bien ya sabes trabajar con los dos tipos de ciclos que puedes usar en python los ciclos fort y los ciclos while
pasemos a nuestro siguiente tema ahora hablemos de un tema que es muy importante en programación las funciones el concepto de función es un concepto importantísimo en programación así que comencemos primero que todo que es una función una función es un bloque de Código grupo de instrucciones reutilizable que realiza una sola tarea específica aquí tenemos varias partes que vamos a analizar de esta definición una función es un bloque de código una secuencia de instrucciones esa secuencia de instrucciones es reutilizable podemos reutilizar la a lo largo de nuestro programa en distintas partes de nuestro programa cuando la
necesitemos y realiza una sola tarea específica ya está Familiarizado con el uso de funciones view in en para están las funciones que ya vienen incorporadas en el lenguaje como la función line ln que utilizamos para obtener el tamaño de una secuencia o la función range que nos devuelve una secuencia de enteros a partir de ello puedes entender el concepto de función la podemos usar cuántas veces queramos en nuestros programas y realizan una sola tarea específica vas a aprender a escribir tus Propias funciones porque hasta ahora las hemos utilizado como una caja negra usamos sus nombres
y sabemos qué es lo que hacen pero no sabemos su código no sabemos cómo están implementadas vas a aprender a crear tus propias funciones personalizadas en tu programa para que nos sirven las funciones cuando nosotros escribimos un programa de payton normalmente realizamos tareas que pueden ser repetitivas si necesitábamos realizar esa misma tarea en diversos Lugares del programa si en esa tarea necesitamos hacer algún cambio o corregir algún error el proceso de cambio puede ser bastante complejo e incluso catastrófico si no hacemos los cambios en todos los lugares de videos imagínate en un proyecto muchísimo más
complicado con muchos archivos y con una complejidad un poco más elevada en programación existe un principio quien nos dice don't repeat airsoft the air y un principio que nos dice que no Nos debemos repetir debemos evitar repetir nuestro código si no es necesario minimizar la cantidad de código repetido en un programa para eso podemos definir una función y para que tenemos una función bueno definiendo una función podemos escribir el código para ejecutar esta tarea el código que hubiéramos escrito en muchos lugares distintos del programa lo escribimos una sola vez en un lugar específico y le
asignamos un nombre para esa tarea en Específico ese nombre va a estar relacionado o conectado con el código para ejecutar esa tarea y simplemente con usar ese nombre en nuestro programa vamos a poder ejecutar esa serie de instrucciones donde las necesitemos eso es básicamente el principio de una función escribir la secuencia de instrucciones en un solo lugar específico y luego reutilizarlo donde lo necesitamos así evitamos la repetición y hacemos que el Proceso de mantenimiento y de corrección de errores sea mucho más fácil el código que escribimos en una función es re usable lo escribimos una
sola vez y lo podemos rehusar cuántas veces queramos también hace que nuestro código sea más conciso porque no estamos escribiendo por ejemplo decenas de líneas cientos de veces también hace que el código sea más legible que sea más fácil de leer para otros desarrolladores y para nosotros mismos además hace que Nuestro código sea mantenido que cuando necesitemos trabajar con ese código y agregar nuevas funcionalidades al programa todo este proceso sea más fácil y además es mucho más comprobable porque el código es más fácil de probar es más fácil de comprobar que el código funciona adecuadamente
probamos simplemente el conjunto de instrucciones que escribimos una sola vez probamos ese set de instrucciones y luego sabemos si está funcionando o no y Cualquier cambio se realiza directamente en ese bloque específico de código en vez de hacer cambios en todas las distintas partes del programa donde usemos o realicemos en esa tarea así que puedes ver que definir funciones en tu programa tiene muchas ventajas ahora veamos la sintaxis que debemos usar como debemos definir una función en el programa lo primero que vemos aquí es la palabra Clave de d efe esta es la abreviación de
definición en inglés también definición esta palabra clave se utiliza porque estamos definiendo una función esa es la palabra clave la definición de una función luego de esta palabra escribimos un espacio seguido de esto el nombre de la función le tenemos que asignar un nombre en esa tarea y ese es el nombre de la función después del nombre de la función escribimos paréntesis dentro de esos Paréntesis podemos agregar ciertos valores pero ya vamos a llegar a eso en unos minutos luego de los paréntesis vemos dos puntos que también son esenciales para seguir la sintaxis correcta del
lenguaje de programación y en la siguiente línea podemos ver el código de la función este código que vamos a tener aquí que está intentado con respecto a la palabra def es la secuencia de instrucciones que vamos a reutilizar Aquí tenemos un ejemplo de una función vemos la sintaxis la palabra clave de un espacio luego el nombre de la función los nombres de las funciones siguen este estándar que vemos aquí las escribimos todas en minúscula todos en minúsculas y separamos las palabras con un guión bajo luego del nombre de la función escribimos paréntesis vacíos en este
momento luego dos puntos y intentado tenemos el cuerpo de la función vamos a poder usar esta función o llamar a esta Función cuántas veces queramos para ejecutar esta línea de código el cuerpo de la función un término técnico muy importante que debes tener presente es el de llamar a una función cuando llamamos a una función ejecutamos el código que está incluido que fuera incluido en el cuerpo de la función básicamente ejecutamos la tarea requiere representa en esa función y como la llamamos con esta sintaxis el nombre de la función seguido de Paréntesis igual que llamábamos
a las funciones que ya venían incorporadas con el lenguaje python aquí vemos ese ejemplo definimos una función nueva y en el shell interactivo en la consola interactiva que va a mostrar el mensaje hola mundo podemos llamar a esta función cuantas veces queramos aquí la estamos llamando tres veces y en esas tres veces se ejecuta el cuerpo de la función mostrando el mensaje hola mundo esos son los principios básicos de las funciones Las definimos y luego las llamamos en este momento puede que no veas tanto la ventaja de una función con este ejemplo porque simplemente el
cuerpo de la función tiene una línea podríamos haber escrito esta misma línea tres veces aquí pero imagínate si este cuerpo de la función tuviera por ejemplo 10-15 líneas allí ya estaríamos ahorrando escribir 15 líneas aquí 15 líneas aquí y 15 líneas aquí o en cualquier lugar del programa Donde las necesitamos allí es cuando comienzas a leer en realidad el poder de las funciones para reducir la repetición del código las funciones son como compartimentos dentro del programa principal cuando nosotros creamos un programa en python las funciones son elementos de ese programa pero dentro de ellas hay
como un mini ambiente un mini espacio con sus propias propiedades y características así que los puedes considerar como un compartimento dentro Del programa y ese compartimento puede comunicarse con el programa principal y también puede recibir datos del programa principal veamos las distintas formas de comunicación entre una función y un programa veamos primero cómo puede recibir valores desde el programa principal y esto es una de las operaciones más comunes que podemos realizar con las funciones pasar valores recuerda cuando estábamos trabajando con funciones Incorporadas en python a veces teníamos que especificar ciertos valores como por ejemplo para
la función line teníamos que especificar la secuencia estos valores que podemos especificar en una función que nosotros definimos se denomina parámetros y los valores que les pasamos con esos parámetros se denominan argumentos vamos a ver más sobre estos dos conceptos porque están estrechamente relacionados y son esenciales para trabajar con funciones En python un parámetro es una variable simplemente una variable que es parte de la función se incluye en la definición de la función para representar y guardar un valor que podemos pasar a la función cuando la llamamos vamos a analizar este concepto con más detalle
es una variable una variable que es parte de la función parte de su definición y la usamos para representar y guardar un valor que podemos pasar Cuando llamamos a la función porque si nosotros no indicamos que queremos que la función reciba un valor entonces la función no va a esperar ningún valor tenemos que indicar que queremos que esa función reciba un valor cuando es llamado para ello usamos los parámetros los parámetros se incluyen en la definición de la función donde escribíamos el conjunto de instrucciones que conforman a la función aquí en este punto específico en
la Definición de la función dentro de los paréntesis recuerda que antes usamos paréntesis vacíos ahora en lugar de estar vacíos esos paréntesis van a contener un parámetro uno o más parámetros en este caso tenemos uno nada más ese parámetro es como una compuerta abre una compuerta para comunicarse con el mundo exterior para permitir que el programa principal se comunique con la función a través de un cierto valor Cuando llamemos a esta función vamos a tener que pasar un valor para este parámetro pero este parámetro es cualquier nombre que nosotros asignemos es simplemente una variable y
ese parámetro se puede usar en el cuerpo de la función como cualquier otra variable simplemente que va a ser una variable que definimos aquí y que podemos usar en el cuerpo de la función para operar con ese valor que recibimos de la llamada y aquí tenemos un ejemplo más concreto Tenemos una función que se llama mostrar doble va a mostrar el doble del valor que recibe aquí tenemos en naranja un parámetro entre paréntesis escribimos el nombre de ese parámetro en este caso lo llamamos num para representar el tipo de valor que representa un número es
importante que le asigne nombres descriptivos a estos parámetros para que sea más fácil leer el código luego ese parámetro es usado aquí en el cuerpo de la función en Este caso el cuerpo de la función es una sola línea pero lo que vamos a mostrar es el valor de ese parámetro multiplicado por dos así es básicamente cómo va a funcionar esta función este parámetro va a tener un valor que nosotros vamos a especificar cuando llamemos a la función y ese mismo valor va a ser usado aquí básicamente sirve para guardar ese valor y reemplazarlo en
todos los lugares donde ese nombre donde se use esta Variable y en el cuerpo de la función si necesitamos tomar o recibir varios valores necesitamos definir varios parámetros y esos parámetros deben estar separados por comas y por un espacio luego de cada coma por ejemplo aquí tenemos una función con dos parámetros esa función la llamamos sumar y vamos a sumar el valor de x y el valor de g tenemos dos parámetros cuando llamemos de esta función vamos a pasar dos valores uno para cada uno el valor de x Va a ser usado aquí y el
valor de h va a ser usado aquí esos valores se van a sumar y el resultado se va a mostrar recuerda estos dos valores son parámetros porque están entre paréntesis al lado del nombre de la función que están separados por una coma y un espacio después de la coma luego esos parámetros son usados en el cuerpo de la función y el valor que nosotros les asignamos van a ser reemplazados aquí en estas Líneas de código eso es en términos de los parámetros pero tenemos otro tipo de valor que está estrechamente relacionado con los parámetros porque
hasta ahora esto es simplemente una variable que estamos definiendo los parámetros son solo variables ellas de por si no tienen ningún valor estamos especificando de forma general como queremos usar los valores que va a recibir la función pero esos valores todavía no existen como les asignamos Valores bueno a través de los argumentos un argumento es un valor que nosotros asignamos a un parámetro cuando llamamos a una función los argumentos son simplemente valores que nosotros les vamos a asignar a los parámetros correspondientes cuando llamamos a la función en el programa principal o en cualquier otra parte
del programa que la necesitamos por eso que decimos que los argumentos están estrechamente relacionados con los parámetros Los argumentos son especificados en la llamada a la función cuando nosotros llamamos a la función especificamos esos valores esos argumentos y los argumentos luego son asignados a sus correspondientes parámetros como son asignados bueno en el orden en que fueron definidos van a ser asignados si tenemos aquí por ejemplo una función que se llama sumar la función que vimos anteriormente con dos parámetros equis y james cuando nosotros llamemos a la Función en el programa vamos a hacerlo con su
nombre y entre paréntesis vamos a pasar dos valores uno para cada parámetro debe haber el mismo número de valores que parámetros y en la definición de la función cada uno de esos valores se va a asignar a su parámetro correspondiente en el orden en el que aparece el primer argumento se asignará al primer parámetro y el segundo argumento se asignará del segundo parámetro luego esos valores van A ser usados dentro del cuerpo de la función y aquí podemos ver este ejemplo tenemos la definición de la función sumar con dos parámetros y luego en la consola
interactiva llamamos a la función y entre paréntesis pasamos a estos valores 4 y 5 4 es asignado a la variable x que es usada aquí para la suma y 5 es asignado a la variable ya que es usada aquí en la suma esos dos valores 4 y 5 son sumados y ese es el Valor que se muestra gracias a la función print 9 esa es la lógica básica de las funciones definimos parámetros para abrir esa compuerta de comunicación y luego les asignamos valores específicos cuando las llamamos lo importante es saber la distinción entre parámetros y
argumentos y su relación los parámetros se incluyen en la definición de la función mientras que los argumentos se incluyen en la llamada a la función los argumentos son Asignados a los parámetros ya vimos la comunicación entre el programa principal y la función para pasar a recibir valores pero también la función puede retornar valores hacia el programa principal en este sentido el propósito de esta comunicación es que la función retorne un valor al lugar donde fue llamada la función luego de completar la tarea correspondiente por ejemplo cuando nosotros llamamos a la función line ella retorna el
valor del Tamaño de la secuencia y ese es un ejemplo de la comunicación entre una función y la llamada a esa función en el programa como lo hacemos bueno con una sentencia y con una sentencia retornar esto significa retornar en español luego de que nosotros escribamos todo el código de la función y hagamos lo que necesitamos hacer podemos escribir esta sentencia esta línea de código para retornar un valor específico escribimos la palabra claver bithorn seguido de un Espacio y luego el valor que vamos a retornar y eso es básicamente lo que debemos hacer para retornar
un valor aquí tenemos un ejemplo en el cual en lugar de mostrar la suma de estos dos valores el valor es retornado porque escribimos aquí la palabra clave richard que es diferencia va a tener esto bueno que en lugar de mostrar ese resultado el valor va a ser retornado así que cuando llamamos a la función podemos pensar como si este lugar específico donde se Llamó la función va a ser reemplazado por el valor retornado por ejemplo si nosotros ya vamos a sumar 4 + 5 el valor retorna 29 y nosotros podemos asignar ese valor retornado
a una variable o podemos usarlo dentro de nuestro programa no solamente lo estamos mostrando ahora sino que lo estamos retornando para poder usarlo en nuestro programa lo asignamos a una variable y luego podemos trabajar con él en el programa aquí Podemos ver se asignó la variable el resultado y el resultado es 9 es básicamente la diferencia entre richard y print louis taurán nos retorna ese valor para poder trabajar con el proyecto simplemente lo muestra en la consola algo muy importante que debes saber es que inmediatamente que se ejecuta la sentencia richard en la ejecución de
la función se detiene inmediatamente la ejecución se detiene inmediatamente Qué pasa si no hay una sentencia de victoria en una función y en ese caso el valor que se retorna por defecto es el valor no este es un valor especial que se usa para representar casos en los que no hay un valor específico asignado por defecto una función que no tiene una sentencia habitual devuelve el valor no aquí vemos un ejemplo que confirma que el valor no es retornado si tenemos una función llamada sumar y no tenemos una sentencia return sino que tenemos una Línea
de código que muestra el resultado en la consola podemos intentar asignar el resultado retornado a una variable en este caso no hay un valor retornado explícitamente pero siempre hay un valor por defecto así que lo estamos asignando a esta variable el valor de la suma se muestra porque se ejecuta esta línea de código pero el valor asignado a la variable resultado si lo mostramos es no y así comprobamos que es verdad por defecto el Valor que se retorna si es non a menos de que nosotros explícitamente indiquemos qué valor se quiere retornar de la función
en el shell interactivo el valor retornado por la llamada a una función no se muestra no se va a mostrar si se asigna el ese valor a una variable cuando estás trabajando en la consola el valor retornado por llamar una función no se muestra inmediatamente en azul si se asigna a una variable vas a tener que usar la función paint para Mostrar o vas a tener que mostrar el valor de esa variable explícitamente en un archivo para mostrar ese valor vas a tener que usar la función print para ver el valor actual de la variable
una implicación importante del concepto de una función en un programa de payton es el concepto de scope este concepto es muy importante cuando trabajamos con funciones el scope se puede traducir como el alcance de una variable en un programa es el alcance que tendrá la Variable en el programa y ese alcance determina dónde se podrá usar porque no todas las variables pueden ser usadas en todos los distintos rincones de un programa cuando hablamos de las funciones inicialmente en recuerda que dijimos que ellas eran como compartimentos esos compartimentos también restringen cómo podemos usar las variables que
se definen dentro de ellas ese score determina a qué variable se tiene acceso en cada parte del programa Esas funciones crean su propio scope su propio ambiente y por lo tanto determinan dónde se pueden acceder estas variables y en el programa hay dos tipos de escoe que podemos encontrar en python tenemos el scoop global y el scope local las variables que pertenecen al alcance global son las variables que son definidas en el programa principal y las variables con alcance local son definidas en una función el escoplo bar o el alcance Global lo tienen las variables
que fueron definidas en el programa principal y ellas pueden ser accedidas y utilizadas en todos los rincones del programa incluyendo en las funciones que definamos pero las variables que fueron definidas dentro de una función tienen unesco un alcance local y sólo pueden ser utilizadas dentro de la función donde fueron definidas aquí tenemos un ejemplo en un programa de payton definimos una Variable inicialmente en el programa principal esta variable es una variable global que puede ser utilizada en todos los rincones del programa e incluso la vemos siendo utilizada aquí en el cuerpo de una función esto
está permitido pero si definimos una variable dentro de una función por ejemplo aquí un parámetro es una variable local que sólo tiene alcance local dentro de la función solo puede ser utilizada dentro de la función Porque ella representa una variable local para esa función podemos llamar a la función y pasar un argumento para utilizar ese parámetro dentro de esa función pero si intentamos usar esa variable local de ese parámetro fuera de la función en el programa principal no va a ser reconocida se va a generar un error durante la ejecución del programa que va a
decir que esta variable no está definida o no se encuentra en el programa porque solo tiene un alcance Local dentro del cuerpo de la función y eso es básicamente lo que necesita saber para comenzar a trabajar con funciones en python ya sabes como definirlas como llamarlas como trabajar con parámetros argumentos y como determinar el alcance de una variable felicitaciones ya estamos entrando una parte más avanzada del curso así que pasemos a nuestro siguiente tema ahora que ya sabes más sobre las funciones en python cómo definir las y Cómo trabajar con ellas hablemos de un concepto
importante en programación el concepto de recurso en qué consiste la recursión recursión significa definir algo en términos de sí mismo vamos a definir algo usando ese mismo concepto ya vas a ver a qué me refiero en código vamos a tomar un problema inicial y vamos a dividir ese problema inicial en varios sub problemas que se pueden resolver de la misma forma para luego resolver el problema inicial completo Vamos a ilustrar el concepto de recursos con la sucesión de fibonacci un ejemplo muy famoso de una sucesión recursiva una sucesión es simplemente una secuencia de números que
siguen un patrón en el caso de fibonacci cada número de la secuencia el enésimo número de la secuencia es el resultado de sumar los dos números anteriores y eso es lo que esta fórmula nos está tratando de decir el enésimo fibonacci es el resultado de sumar los dos números Anteriores de la secuencia la secuencia comienza con los números 0 y 1 luego este tercer número es el resultado de sumar 0 + 11 luego 1 más 1 2 luego uno más 2 3 23 53 58 y así sucesivamente para todos los elementos de la sucesión aquí
puedes notar que estamos definiendo la función fibonacci en términos de la función fibonacci decimos el enésimo fibonacci es el fibonacci en la posición n menos uno más el fibonacci en la posición en M2 esta es una definición recursiva estamos usando fibonacci para definir fibonacci en programación esto se traduce a una función recursiva que es una función que se llama a sí misma y como una función se puede llamar a sí misma y puede ocurrir y eso es lo que denominamos una función recursiva las funciones recursivas tienen dos elementos principales en su estructura un caso base
y un caso recursivo el caso base permite que el proceso se detenga El proceso de que la función se llame a sí misma una y otra vez y el caso recursivo es el que nos permite de componer un problema en una versión más pequeña desde el mismo problema hasta llegar al caso base que detiene el proceso es más o menos como la ilustración de unas muñecas matriuska en el que cada vez hacemos un problema más pequeñito y más pequeñito más pequeñito y luego los ensamblamos completos hasta formar una solución para El problema inicial a partir
de esos problemas pequeños vamos a resolver el problema inicial aquí tenemos la implementación de una función que calcula el enésimo número fibonacci tomando la posición 0 como la inicial la función toma a n como un parámetro porque debemos especificar la posición del número que queremos obtener en la secuencia de fibonacci eso es lo que representa n la posición del número en la sucesión iniciando en cero para el Primer elemento así que el valor de lo que estaba indicando es esto el valor en la sexta posición de la asociación es el número 8 en la séptima
posición es el número 13 en la octava posición es el número 21 claro comenzando a contar desde cero y eso es lo que va a representar el parámetro para esta función cuál es la principal característica de esta función bueno que la función se llama a sí misma aquí abajo en la definición de la Función la función se llama a sí misma estas dos llamadas la función fibonacci nos van a retornar dos los dos números fibonacci previos en la sucesión porque recuerda la definición de esta sucesión el enésimo número fibonacci es el resultado de sumar los
dos números anteriores y eso es exactamente lo que estamos implementando aquí para obtener el enésimo número fibonacci vamos a sumar los dos números anteriores en la sucesión Esto es lo que denominamos el caso recursivo de la función recursiva en el caso recursivo la función se llama a sí misma para continuar el proceso pero la diferencia clave para poder generar un proceso adecuado es que el valor de esos parámetros debe ser distinto el parámetro inicial de gn y cuando llamamos a la función otra vez pasamos n menos 1 y en m2 vamos a ir resolviendo versiones
más pequeñas del mismo problema que es Encontrar un numero fibonacci hasta que lleguemos al caso base el caso base es el caso que detiene el proceso recursivo cuando eres igual a 0 o cuando en es igual a 1 el valor de en él se retorna 70 se retorna 0 y si en es uno se retorna 1 porque ese es el nombre que corresponde a esa posición en la secuencia de fibonacci vamos a realizar paso a paso qué ocurre cuando llamamos a la función fibonacci para encontrar el elemento en la Posición 2 es decir la tercera
posición en la secuencia este es el valor del parámetro n y recuerda que comenzamos a contar desde cero como ya conocemos la secuencia sabemos que el valor que debemos obtener es el número uno así que veamos qué es lo que ocurre detrás de cero cuando la función se ejecuta cuando llamamos a la función fibonacci con un parámetro de 2 ese valor se asigna al parámetro n y va a ser usado en el cuerpo de la función lo primero que se Comprueba es 100 es igual a 0 o si es igual a 1 para retornar un
valor directamente en este caso esto es falso el valor juliano resultante es falso por lo tanto la cláusula else se ejecuta y vamos a tener una llamada recursiva dos llamadas recursivas a la función fibonacci primero se va a ejecutar esta llamada en la cual vamos a llamar a fibonacci para conseguir el número de la secuencia que corresponde a n menos 1 esta llamada va A detener el proceso de la llamada inicial hasta que ésta sea completa esta es una nueva llamada en la función tenemos la inicial y ahora tenemos una segunda llamada el proceso inicial
se detiene hasta que ésta se complete y esta corresponde a la llamada fibonacci con el parámetro 1 así que ahora tenemos la llamada inicial y dentro de esa llamada inicial a la función tenemos una llamada que se está ejecutando con fibonacci de 1 una vez que esta llamada La función culmine obtendremos un valor que se va a utilizar en la función inicial mientras el proceso queda en pausa luego se comienza esta llamada fibonacci fibonacci de n 2 que corresponde a 0 en este caso vamos a obtener el fibonacci en la posición 1 y lo vamos
a sumar al fibonacci en la posición 0 y eso nos debería dar el resultado que esperamos ahora tenemos dos llamadas recursivas que ponen en Pausa a este proceso hasta tener ambos valores así que para obtener el valor de fibonacci de 2 tenemos que hacer dos llamadas recursivas fibonacci de 1 y bonacci de 0 para fibonacci de uno se va a ejecutar el mismo proceso primero se revisa usted de cheque así n es igual a cero o es igual a 1 en este caso esto es cierto estamos llamando fibonacci de 1 así que n es 1
y se retorna ese mismo valor 1 aquí ese valor 1 se asigna al parámetro N y se retorna a su valor 1 ya tenemos este valor que fue 1 fibonacci de 1 equivale a 1 como ya culminó esta llamada lista llamada a la función se va a reemplazar por el valor retornado detrás de escena se reemplaza por el valor 1 aquí pero todavía necesitamos saber este valor para hacer la suma así que el proceso se mantiene en pausa hasta que tengamos este resultado fibonacci de cero una vez que lo tenemos se reemplaza el Valor cero
aquí en este lugar donde teníamos la llamada recursiva todo esto es para fines de visualización del proceso en realidad esto pasa todo detrás de escena y los valores se van reemplazando luego de que tenemos ambos valores esto se suma y se obtiene el valor 1 y ese es el valor final que se retorna de la llamada principal fibonacci de 2 el valor es 1 finalmente vemos que para obtener fibonacci de 2 tuvimos que obtener fibonacci de 1 y Fibonacci de 0 si ejecutamos esto en la consola interactiva de payton podemos ver que el resultado de
fibonacci de 2 es efectivamente el valor 1 y así es como funciona la recursión la función se llama a sí misma y luego llega un punto en el que el proceso se detiene y los valores empiezan a retornar se hasta que se llega a un valor final que es el valor 1 que tenemos aquí el proceso un poco más complicado a Medida que el valor de n aumenta si queremos calcular fibonacci de 3 que corresponde al cuarto valor en la secuencia vamos a tener que hacer más llamadas recursivas para conseguir fibonacci de 3 vamos a
tener que llamar a fibonacci 2 y fibonacci 21 para fibonacci de 2 vamos a tener que llamar a fibonacci de 1 y fibonacci de 0 fibonacci de uno retorna el valor 1 y fibonacci de 0 retorna el valor 0 y también fibonacci de 1 que es otra Llamada parte va a retornar el valor 1 vamos a tener que hacer todo este proceso recursivo para conseguir el valor de fibonacci de 3 y aquí podemos ver el resultado en la consola interactiva y el valor es efectivamente 2 bien ya sabes más sobre las funciones recursivas fibonacci es
un ejemplo clásico de cómo funciona recursión en programación las funciones recursivas tienen un caso base eso es básico es Esencial una función recursiva debe tener un caso base que no tenga ninguna llamada recursiva para detener el proceso y debe tener también un caso recursivo que hace que el problema sea cada vez más pequeño para llegar al caso base todos esos principios se aplicaron en el ejemplo de configura chip ahora es momento de una pregunta rápida seleccione el resultado de esta llamada a la función factorial este es otro ejemplo de una función recursiva Puede haber un
pequeño detallito en esta implementación analiza qué es lo que va a pasar con la función factorial y cuál va a ser el resultado de esta llamada 120 25 menos 1 o un error la llamada es factorial de 5 y ya regreso y el resultado va a ser un error porque primero que todo aquí no estamos escribiendo la sentencia de revisión pero lo más importante y la causa del error en esta definición es que el valor del parámetro en la llamada recursiva no Se está disminuyendo así que nunca vamos a alcanzar el caso base n siempre
se va a mantener con el mismo valor recuérdate que en fibonacci pasamos en el -1 y en el -2 aquí estamos pasando en el intacto y por lo tanto nunca vamos a alcanzar el caso base en el nunca va a ser cero o uno si el valor inicial es 5 así que eso va a generar una secuencia infinita en teoría de llamadas recursivas que solo van a detenerse cuando se genere un error en La consola y en la computadora misma va a detener la ejecución del programa bien ahora ya sabes cómo trabajar con funciones recursivas
estos son ejemplos clásicos de funciones recursiva fibonacci y factorial y lo sabes implementar en python para corregir esta función agregaríamos una sentencia de richard aquí para retornar el valor y este parámetro lo actualizaremos a n menos 1 para disminuir el valor de n en uno para cada Llamada recursiva bien ahora pasemos a nuestro siguiente tema del curso espero que te esté gustando hasta ahora el curso ahora veamos una breve introducción a cómo puedes trabajar con archivos en python específicamente en este curso vamos a ver archivos de texto los ejemplos que vas a ver en esta
sección en este tema del curso asumen que el archivo de texto está en la misma carpeta directamente que el archivo Python que se está ejecutando aunque porque si no la dirección a la ubicación del archivo que vas a tener que colocar en el código es distinta para trabajar con archivos en python es recomendado usar una sentencia with una sentencia web nos permite abrir un archivo y luego cerrarlo automáticamente veamos como puedes leer archivos con una sentencia web puedes leerlos de esta forma primero vemos la palabra clave web seguido de un espacio después de ese espacio
tenemos La llamada a la función open esta función nos permite abrir el archivo que especificamos entre paréntesis entre paréntesis escribimos el nombre del archivo con su extensión correspondiente que denota el tipo de archivo que se va a abrir y luego como un segundo parámetro colocamos una cadena de caracteres de una sola letra que en este caso es r esta letra denota el modo de apertura del archivo cómo se va a abrir el archivo y para que hace Bauza ahora está vamos a ver los modos en más detalle pero por ahora si sólo queremos leyera el
archivo podemos pasar esta r como argumento para ese parámetro o simplemente lo podemos omitir porque ese es su valor por defecto luego de esta llamada open tenemos la palabra clave as como y aquí vemos algo parecido una variable y en realidad es una variable vamos a asignar el objeto o la representación en el código del archivo a esta variable nosotros Escogemos el nombre de esta variable normalmente en inglés la van a conseguir descrita como fallo que significa archivo en inglés o como efe abreviada yo personalmente prefiero nombrar la fao en inglés y en español podemos
nombrarlo simplemente archivo vamos a poder usar esta variable en el cuerpo de esta sentencia para trabajar con ese archivo y todas estas líneas de código este grupo de líneas de código que vamos a usar para trabajar con ese archivo deben Estar intentadas para pertenecer a la sentencia web cuando las líneas ya no estén intentadas se va a asumir que se terminó de trabajar con el archivo y va a ser cerrado automáticamente esa es la ventaja de usar una sentencia web así que la intenta ción es muy importante aquí tenemos un ejemplo en el cual abrimos
un archivo un archivo llamado frases famosas punto txt especificamos como segundo parámetro la r pero también la podemos omitir y vamos a asignar este Archivo a esta variable en el cuerpo de la sentencia web que está intentado aquí tenemos un ciclo vamos a enterar sobre este archivo línea por línea para cada línea en el archivo vamos a mostrar este mensaje y luego vamos a mostrar el contenido de esa línea aquí tenemos ese mismo código en un archivo de payton puedes ver la sentencia web la apertura del archivo y en la variable que estamos definiendo para
trabajar con Este archivo vamos a instalar sobre el archivo línea por línea para mostrar cada una de sus líneas si ejecutamos el archivo veamos qué es lo que tenemos aquí tenemos dos frases de albert eisntein cada una de esas líneas fueron mostradas en la consola gracias al ciclo que estamos ejecutando veamos el contenido del archivo de texto este es el archivo frases famosas punto txt cada una de estas líneas fue considerada para una iteración del ciclo Y fue mostrada en la consola aquí podemos verlas ese archivo de texto está en la misma carpeta que él
archivo python que tenemos aquí por eso es que podemos usar directamente el nombre del archivo para abrirlo si estuviera en otra ubicación tendríamos que usar otra ubicación para denotar o para indicar dónde está ese archivo en la computadora la funcionalidad va a ser la misma si abrimos el archivo sin Especificar el parámetro r vamos a ejecutarlo puedes comprobarlo el programa generó el mismo output el mismo resultado y por lo tanto comprobamos que el valor por defecto es r hay distintos modos de apertura de archivos dependiendo de lo que queramos hacer con el archivo en nuestro
programa es utiliza para leer el archivo leer el contenido del archivo r se escogió porque en inglés read significa leer se Toma la r si queremos escribir al archivo a modificar su contenido usamos el modo de apertura doble que significa brain en inglés escribir este modo de apertura va a reemplazar completamente el contenido del archivo así que tienes que estar muy seguro de que no quieres conservar nada del contenido de ese archivo cuando lo uses en tu programa tenemos un tercer modo de apertura que es el modo a añadir en Inglés la palabra comienza con
a apean esto nos permite agregar contenido al final del archivo sin modificar el contenido existente y también además de estos tres modos de apertura podemos agregar un signo más para incluir el modo de lectura por ejemplo si usamos el modo w más eso implica que queremos leer y escribir el archivo porque tenemos modos de apertura para esto nos da esta capa extra de seguridad porque si nuestra intención no es modificar el Contenido del archivo entonces podemos simplemente usar el modo de lectura y si no queremos leer el contenido del archivo sino que queremos simplemente modificarlo
podemos usar alguno de estos dos modos básicamente estamos protegiendo el contenido del archivo para no dar más permisos de los necesarios al programa bien ya sabes cómo podemos abrir archivos y los distintos modos que podemos usar veamos como podemos Modificar el contenido de esos archivos hay dos formas dependiendo de esos dos modos de apertura que vista reemplazar el contenido del archivo totalmente o añadir contenido al archivo al final aquí tenemos una sentencia web con el modo de apertura w el modo de escritura bright este modo reemplaza completamente el contenido del archivo así que cuando llamemos
al método write del archivo esta es la variable que definimos al principio esta variable que tenemos aquí Si nosotros vamos a escribir en ese archivo un contenido específico que se pasó entre paréntesis el contenido inicial de ese archivo o el contenido existente de ese archivo va a ser reemplazado veamos un ejemplo aquí tenemos un programa de payton en el cual definimos un diccionario esta es otra forma de escribir los diccionarios en python colocando cada uno de los pares en una línea diferente a mí personalmente me Gusta este estilo de colocar cada par clave valor en
una línea este diccionario contiene una representación de las notas de estudiantes digamos y aquí tenemos una sentencia web con el cual abrimos un archivo llamado data estudiantes punto txt un archivo de texto lo abrimos en modo brain modo escribir y lo asignamos a la variable archivo vamos a añadir este contenido al archivo reemplazando todo su contenido original Porque usamos el modo de escritura en modo raid usando un ciclo vamos a integrar sobre los pares clave valor que tenemos aquí en el diccionario porque estamos llamando al método a ítems para cada nombre y su correspondiente nota
vamos a escribir ese contenido el nombre seguido de un guión y espacios y la nota al archivo que acabamos de abrir para ello vamos a usar el método right escribimos un punto y luego el nombre del método Al final de esta cadena de caracteres nota que estamos concatenando de distintas cadenas de caracteres para generar una cadena final vamos a agregar este carácter que tenemos aquí una barra invertida seguida del carácter en este carácter esta combinación de dos caracteres representa una línea nueva en el archivo porque queremos que cada nombre su correspondiente nota se escriba en
una línea diferente en el archivo y por ello tenemos que agregar Este carácter que tenemos aquí si ejecutamos este programa así como esta vamos a ver que se crea un archivo si ya no existía o se reemplazó el contenido que tenía para mostrar esta data cada nombre seguido un guión separado de espacios y en la nota correspondiente esa es la magia que logramos con este código que tenemos aquí estamos integrando sobre los elementos del diccionario y escribimos ese contenido al archivo con el modo w El modo raid ahora si queremos agregar más data a ese
archivo luego de escribirla inicialmente podemos usar el modo y el modo apple para escribir nueva data al archivo veamos cómo funciona ahora tenemos otro programa nuevo con nuevas notas que queremos agregar al archivo el diccionario contiene nombres y sus correspondientes notas el mismo formato del diccionario anterior usamos en este caso una sentencia wind pero tenemos un segundo parámetro que nos Dice que vamos a abrir el archivo en modo a penn en modo que nos permite agregar contenido al existente y vamos a usar el mismo nombre de variables archivo tenemos aquí un ciclo un ciclo foro
en el cual vamos a hacer exactamente lo mismo que en el ejemplo anterior vamos a escribir el nombre siguió un guión separado por espacios la nota del estudiante y una línea nueva la única diferencia entre este código y el anterior son el diccionario y el modo de Apertura que en vez de doble a oreja vas a ver el efecto en lugar de reemplazar completamente el contenido del archivo lo que hace es agregar el contenido nuevo al final y luego del contenido existente y tenemos nuestras tres entradas nuevas en el archivo exactamente lo que necesitábamos bien
ya sabes cómo trabajar con archivos en python así que pasemos a nuestro siguiente tema ahora hablemos un poquito sobre las Importaciones las importaciones van a ser importantes cuando tu programa crezca en tamaño y complejidad así que discutamos un poquito sobre ellos cuando nosotros escribimos un programa de payton lo lógico y lo natural es que el programa crezca y crezca cuando le agreguemos nuevas funciones y capacidades pero qué es lo que va a ocurrir conseguir los distintos elementos en el programa va a ser cada vez más difícil si los escribimos todos En un mismo archivo imagínate
un archivo con millones de líneas de código así que lo que hacemos es separar las distintas partes o elementos que están contenidos en el archivo en distintos módulos en distintos archivos que luego vamos a juntar en un archivo principal pero los vamos a tener separados cada uno va a ser independiente y va a contener código relacionado qué es un módulo de payton este es un concepto muy importante un módulo es un Archivo payton que contiene definiciones y sentencias simplemente un archivo en el cual defines funciones defines elementos defines variables defines constantes y también pueden contener
código todos estos elementos normalmente se busca que estén relacionados para que pertenezcan al mismo módulo y cuando vayamos a trabajar con estos módulos vamos a tener un programa principal en el cual vamos a importar Cada uno de esos módulos que necesitemos así mantenemos el código en archivos separados pero los podemos usar como si estuvieran en el mismo archivo genial no eso va a hacer que nuestro código sea mucho más mantenible y reusable porque también podemos usar los módulos en distintos proyectos que el proceso de importación la importación es una sentencia una línea de código que
podemos agregar en nuestro programa que da acceso a las funciones y a las Constantes que están definidas en el módulo importado nos da acceso a todos los elementos funciones constantes clases variables que estén definidas en el módulo que ha sido importado y así podemos usarlo en nuestro programa este es un ejemplo de una sentencia de importación aquí vemos la palabra clave import eso le dice al programa que vamos a importar un módulo específico y luego de un espacio debemos escribir el nombre del Módulo que queremos importar normalmente import es la primera línea de código en
el programa o el grupo de sentencias import deberían ser las primeras líneas de código en cada programa en cada archivo donde haya una sentencia de importación luego cuando necesitas llamar a una función que esté definida en ese módulo lo puedes hacer con esta sintaxis el nombre del módulo seguido de un punto el nombre de la función Y entre paréntesis los argumentos que esa función requiera los valores que la función necesita lo que estamos haciendo básicamente es tener que especificar el módulo al cual pertenece en esta función y la llamamos como normalmente lo hacemos este es
un ejemplo payton tiene muchos módulos incorporados por ejemplo el módulo mars que tiene funciones matemáticas si importamos el módulo más en nuestro programa en este caso es en la consola Interactiva podemos usar sus funciones por ejemplo la función pau ésta es una abreviación de la palabra power que significa exponente en inglés o exponencia ción o elevar a una potencia como podemos llamar esta función primero tenemos que especificar el nombre del módulo al cual pertenece a punto para o el nombre de la función y luego entre paréntesis pasamos los dos valores que requieren en este caso
es la base que es 9 y el Exponente que es 29 al cuadrado 81 y tenemos el resultado así podemos rehusar código que ya otros desarrolladores o nosotros mismos hemos escrito en el pasado y podemos escribir código que es mucho más fácil de mantener a medida que la complejidad y el tamaño del programa crecen para acceder a una constante importada de un módulo simplemente especificamos el nombre del módulo seguido de un punto y luego el nombre de la constante Por ejemplo si importamos el módulo más en la consola interactiva podemos acceder a la constante pi
usando esta sintaxis el nombre del módulo al cual pertenece seguido de un punto y el nombre de la constante aquí podemos ver su valor y podemos usarla en cualquier lugar de nuestro programa que necesitemos otra alternativa es importar el módulo de esta forma para asignarle un nombre alternativo esto es en caso de que Queramos asignarle un nombre diferente o más conciso escribimos import módulo el nombre del módulo el nombre alternativo lo que estamos diciendo es importa el módulo tal como el nombre que le estamos asignando y así podemos usar el nombre alternativo que le asignamos
para llamar a sus funciones y usar sus constantes por ejemplo aquí tenemos import el módulo más las matemáticas digamos que queríamos asignarle un Nombre en español ahora podemos usar todos los elementos de ese módulo solo usando su nombre alternativo usamos la misma sintaxis un punto el nombre de la función y sus argumentos también podemos usar sus constantes cuando lo importamos con un nombre alternativo otra alternativa otra opción con la cual podemos importar elementos es esta sintaxis que tenemos aquí usar la palabra clave from módulo especificamos El módulo import importar este elemento esta sintaxis nos permite
importar un elemento solamente un elemento único de un módulo específico esto lo podemos usar en caso de que no necesitemos importar todos los elementos del módulo sino que necesitamos importar sólo un elemento de ese módulo y podemos hacerlo aquí tenemos un ejemplo si solo necesitamos usar la función para o escribimos from el módulo más import pau y ya podríamos usar la función Directamente en el programa sin especificar el módulo del cual provino normalmente la primera sintaxis que aprendiste es la recomendada porque estamos especificando el nombre del módulo al cual pertenece la función y eso hace
que sean más fáciles de mantener y de corregir y de leer pero esta es otra alternativa si solo necesitas un elemento en tu módulo en tu programa algo importante en cuanto importaciones Es que esta sintaxis es válida y la verás a menudo pero no es recomendada usamos la palabra clave from módulo import y luego un asterisco que es lo que hace esta sintaxis esta sintaxis importa todos los elementos de ese módulo pero para poder usarlos en el programa no vamos a necesitar especificar el módulo del cual provienen sino que vamos a poder usarlos todos directamente
solo usando sus nombres eso Puede crear muchísimas confusiones en el programa especialmente si ya tienes otros elementos con estos nombres o nombres parecidos definidos en tu módulo o en tu programa así que esto no es recomendado bien ya sabes para qué se usa la importación y cómo puedes usar las sentencias de importación en tus módulos de payton buen trabajo veamos nuestro siguiente tema ya estamos llegando al final del curso y felicitaciones por llegar hasta este Punto ahora hablemos un poquito sobre los distintos errores y excepciones que pueden ocurrir cuando estamos ejecutando nuestros programas en python
y como los podemos manejar el primer error que veremos es el error de sintaxis lo hemos visto anteriormente en otras diapositivas durante el curso el sintax error es un error de sintaxis del programa y ocurre cuando no se siguen las reglas formales que se deben seguir Para escribir código en python cada lenguaje tiene sus reglas de sintaxis específicas igual que el lenguaje español tiene una sintaxis específica eso se debe respetar también en los lenguajes de programación que son aún más formales para especificar la forma de escribir el código cuando veas esto sintaxis querer tienes que
inmediatamente identificar que esto no es válido en python y buscar una alternativa Este es otro ejemplo de un error de sintaxis cuando intentas ejecutar un programa en iron un archivo que tiene un error de sintaxis lo puedes ver aquí ese error de sintaxis se genera por no colocar los dos puntos al final de la primera línea del condicional luego de la condición ese error es grave y por lo tanto el programa ni siquiera va a iniciar su ejecución vas a ver una advertencia parecida a esta o un error este es otro error de sintaxis otro
Ejemplo cuando abrimos una cadena de caracteres con un tipo de comillas y la cerramos con otro tipo de comillas también el error de intentar jong es un error de sintaxis por ejemplo aquí este condicional debería estar intentado a este nivel para pertenecer al cuerpo del ciclo del ciclo for pero qué es lo que ocurre no está intentado y por lo tanto tenemos un error de sintaxis aquí lo podemos ver se esperaba un bloque de código intentado Eso se puede solucionar intentando el código apropiadamente este es un ejemplo de un error los errores son normalmente fatales
para el programa el programa ni siquiera inicia su ejecución cuando detecta un error de sintaxis pero existen otros errores que se denominan excepciones las excepciones son errores detectados durante la ejecución de un programa las excepciones son errores que ocurren cuando el programa ya se ha verificado la sintaxis está correcta Pero el programa inicia su ejecución y durante esa ejecución se detecta un error y el programa se termina o se detiene abruptamente una de estas excepciones uno de esos ejemplos es el error de índice index r cuando intentamos acceder a una cadena de caracteres usando un
índice que está más allá del rango permitido aquí lo podemos ver el índice de la cadena de caracteres está fuera de rango también otra excepción que podemos ver cuando Trabajamos con diccionarios es el error de clave esto ocurre cuando intentamos acceder a una clave que no existe en un diccionario aquí puedes ver que en este diccionario no tenemos la clave ya error de clave jack también otra excepción que podemos conseguir es el error de nombre name er este es un error que se genera cuando el nombre de una variable no se reconoce es decir cuando
la variable no ha sido definida previamente en el programa el Error nos lo dice el nombre lista colores no está definido hay que definir la variable inicialmente asignándole un valor otra excepción que podemos conseguir cuando trabajamos con operadores aritméticos es el error de división por ser división por cero y cuando trabajamos con recursos podemos ver una excepción llamada recursión era qué ocurre en este caso tenemos una función recursiva pero el parámetro que estamos pasando para la llamada Recursiva no se está disminuyendo sépase intacto y por lo tanto el proceso recursivo va a continuar infinitamente y
nunca va a llegar al caso base que es lo que va a ocurrir en este caso vamos a ver un error similar a este error de recurso máxima profundidad de recursos excedida en comparación nos están diciendo que el proceso de recursos hizo el máximo número de llamadas recursivas que puede hacer y por lo tanto el programa colapso Nunca se llegó al caso base es importante que aprendas a leer y a reconocer estos errores cuando trabajas con python porque así vas a poder corregir los distintos errores o posts que pueda tener tu programa en programación a
esos errores de lógica que podemos tener en el programa se le denominan box estas excepciones y errores van a detener tu programa abruptamente con ese error que se muestra y eso puede afectar La experiencia del usuario que usa el programa pero si hay una forma de manejar las excepciones adecuadamente para evitar que el programa se termine tan abruptamente con una estructura que se denomina astra en ex apps esto nos permite manejar las excepciones a medida que ocurren en el programa cuando podrían en tal caso ocurrir y escoger cómo las manejamos esta es la lógica básica
de traer sap primero se intenta ejecutar este código que es pertenece a La cláusula trae este código tiene que estar intentado luego mientras se ejecuta este código si ocurre alguna excepción en este código se detiene el proceso inmediatamente y se ejecuta el código que pertenece a la cláusula exacta básicamente excepto actúa como una cláusula de reserva común un respaldo por si acaso ocurre algo durante la ejecución de este código y eso va a evitar que el programa termine tan abruptamente porque aquí podemos Manejar la excepción adecuadamente vamos a ver un ejemplo aquí tenemos dos mensajes
que le vamos a mostrar al usuario para que ingrese un valor ingrese un número lo guardamos en la variable del número uno ingrese otro número lo guardamos en la variable número dos luego usamos esta estructura trae exact porque porque vamos a dividir el valor del número 1 por el valor de número 2 y qué es lo que puede ocurrir en este caso Como no podemos controlar qué valores va a ingresar el usuario que posiblemente el usuario puede ingresar 0 para el valor de número 2 y cuando se ejecuta esta división puede ocurrir un error de
división por ser si ese es el caso el proceso se detiene aquí inmediatamente y va a saltar a la clausula exacto y este código va a ejecutarse alerta de excepción yo escogí ahorita mostrar mensajes descriptivo para que detectemos que se está Ejecutando este bloque de código pero normalmente aquí puedes escribir código para saber cómo manejar esa excepción adecuadamente pues por ejemplo escoger otro valor para este número puedes mostrarle un mensaje descriptivo al al usuario o puedes manejarlo de una forma que permita que sea más amigable la forma de terminar el proceso veamos esta sesión interactiva
este ejemplo si el usuario ingrese el número 4 y luego número 5 ese resultado es Igual a 0.8 así que no hay problema pero si el usuario ingresa primero el número 3 y luego el número 0 se muestra el mensaje alerta excepción porque nunca se llegó a mostrar ese mensaje anterior este mensaje el proceso se interrumpe inmediatamente cuando se detecta que se va a dividir entre 0 y se salta a la clausula exacto y se muestra este mensaje y este mensaje que tenemos aquí esta función está llamada la función print Solo ocurre si aquí no
ocurre una excepción si ocurre una excepción inmediatamente se salta de este código en este caso estamos detectando y manejando todas las excepciones posibles que puedan ocurrir en este código cuando usamos solamente la palabra excel pero también podemos especificar qué tipo de excepción queremos manejar si solo estamos interesados en manejar por ejemplo el error de edición por cero podemos escribirlo aquí y solamente Cuando ocurre esa excepción en este código se va a ejecutar esta cláusula la cláusula exacta si ocurre una excepción de este tipo detente inmediatamente y ejecuta este código aquí vemos ese ejemplo tenemos el
mismo código aquí pero solamente vamos a manejar el tipo de excepción de división por 0 si ocurre otro error no va a ser manejado de esta forma no se va a ejecutar este código Normalmente en python es mejor ser explícito así que esta versión es mucho mejor que simplemente escribir excepto para manejar todas las excepciones posibles es mejor ser más específico también podemos tener múltiples cláusulas exacto para manejar distintos tipos de excepciones de distintas formas las escribiríamos una debajo de la otra siempre debajo de la cláusula trae otra alternativa que podemos usar es asignar la
excepción a una variable para Poder usarla y trabajar con ella en este código las excepciones también son objetos en python son elementos que tienen sus propias características como descripción y distintos tipos de data así que podemos utilizarlo para tener más información sobre lo que ocurrió y lo podemos hacer en este código que tenemos aquí por ejemplo aquí vemos que agregamos después del nombre de la excepción agregamos un nombre de una Variable en este caso le asignamos el nombre y esto lo vas a ver comúnmente y de excepción o en inglés excepción luego podemos usar esa
variable para mostrar más detalles sobre esta excepción en este caso simplemente le estamos mostrando estamos mostrando el contenido de esa excepción y esto va a ser un poco más descriptivo nos va a decir qué tipo de excepción ocurrió si el usuario ingresa 0 para el segundo número se va a mostrar el tipo de excepción que ocurre División por 0 además tenemos otra cláusula que podemos utilizar la cláusula esta cláusula ellos sirve como respaldo al igual que en los condicionales si no ocurrió sino ocurrió una excepción en la cláusula trae si se intentó ejecutar este código
y no ocurrió ninguna excepción entonces se ejecuta este código que tenemos aquí únicamente si no ocurre una excepción si todo funciona como era de Esperarse si todo funciona como era de esperarse entonces esta cláusula no se va a ejecutar y se salta directamente a la cláusula camps aquí tenemos un ejemplo el mismo ejemplo con el que estamos trabajando de división si no ocurre una excepción en este código entonces la cláusula exacta no se va a ejecutar y se va a saltar directamente a la cláusula else una vez que culmine la ejecución de este código finalmente
se Va a mostrar el mensaje else éste es muy solo un mensaje descriptivo para que veamos que se está ejecutando este código aquí escribiría el código que continuará el proceso luego de ejecutar este código vemos una sesión aquí en el que el usuario ingresos valores válidos el resultado fue válido el denominador no era 0 y por lo tanto la clausura else fue ejecutado en este otro caso hubo una excepción y por lo tanto la cláusula Exacta fue ejecutado la cláusula else no fue ejecutada y si tenemos a la cláusula fine a esta cláusula nos permite
ejecutar código independientemente de si ocurrió una excepción o no es una cláusula que se utiliza normalmente para operaciones que deben ocurrir siempre por ejemplo cerrar un archivo eso es algo que debe ocurrir siempre así sea que haya ocurrido una excepción o no en este ejemplo vemos la cláusula Finally y vamos a mostrar un mensaje si se ejecuta vemos en las dos sesiones aunque ocurre una excepción la cláusula finally se ejecuta y si no ocurre una excepción también se ejecutó esa cláusula así que es perfecta para realizar operaciones que siempre tenemos que realizar así haya ocurrido
una excepción o no esta es básicamente la estructura de cómo puedes manejar una excepción en python la cláusula finally siempre va Luego o después de la cláusula eus si la cláusula 11 existe la cláusula else es opcional si no existe la cláusula else escribes directamente la cláusula final y después de examen y cuando están las cuatro deben estar en este orden la lógica básica repasemos de esta se intenta ejecutar este código que pertenece a la cláusula 3 luego si ocurre una excepción de este tipo específico porque estamos especificando el tipo de excepción Detente inmediatamente detener
esta ejecución y ejecuta este código salta directamente a esta parte del código si no ocurrió una excepción durante la cláusula try entonces ejecuta este código una vez que ese proceso culmina ejecuta esto y luego está en cambio si ocurrió una excepción ejecuta sólo el exacto y no ejecuta esta cláusula else y finalmente así haya ocurrido una excepción o no ejecutar este código bien ya sabes cómo manejar las Excepciones en python y reconocer los principales errores los más comunes que pueden presentarse cuando trabajes completos lo hacemos a nuestro último tema del curso programación orientada a objetos
tendremos una breve introducción y con ellos culminaremos el curso felicitaciones por haber llegado hasta este punto y comencemos nuestro último tema del curso programación orientada a objetos esta va a ser una breve introducción Porque este tema es muy amplio pero voy a presentar los conceptos principales que debes saber hasta ahora hemos estado escribiendo programas que se ejecutan en línea por línea cierta línea por línea incluyendo ciclos incluyendo condicionales pero relativamente sencillos de leer línea por línea cada uno de esos comandos se ejecutaban tal y como nosotros los especificamos pero existen otros paradigmas de programación otras
formas de estructurar nuestro Código y de representar cómo queremos crear el programa y resolver un problema programación orientado a objetos es un paradigma de programación específico en el cual nosotros representamos objetos o entidades o conceptos de la vida real o abstractos en nuestro código tomamos las características de esos objetos que necesitamos representar y escribimos código para poder utilizarlos directamente en nuestros programas en programación orientado a objetos Básicamente creamos planos creamos una especie de plano que va a permitirnos representar un objeto y crear muchos objetos del mismo tipo por ejemplo en un sistema de un colegio
podemos representar a un estudiante con un plano específico en nuestro programa ya vas a ver a qué me refiero con plano y podemos crear muchos estudiantes con ese plano en el sistema para representar a cada uno de los estudiantes del colegio y guardar sus características principales Como nombre apellidos notas clases contacto todo lo que necesitemos que sea relevante para nuestro sistema esos planos con los cuales podemos representar objetos se denominan clases las clases nos permiten representar en forma general los atributos y la funcionalidad de un objeto la funcionalidad técnicamente en la parte de software se
representan como métodos los métodos son muy similares a funciones pero van a estar relacionadas Con un objeto en particular y los atributos son valores que van a tener esos objetos en el programa vamos a dar ilustrar todos estos conceptos de programación orientada a objetos con una cuenta bancaria digamos que estamos creando un sistema para un pequeño banco que está abriendo su primera sede tenemos que diseñar un plano para una cuenta bancaria muy sencilla que sólo va a tener unos cuantos atributos ese plano va a ser Representado por una clase en el code o ya vas
a ver cómo la vamos a crear y es las cuentas va a tener distintos atributos por ejemplo el número de la cuenta el nombre del titular balance inicial balance actual fecha de apertura entre otros todos los atributos que sean relevantes para el sistema así que vamos a crear esa clase en nuestro código aquí tenemos un archivo de payton vamos a definir la clase escribir la palabra clave class eso le dice al python que Estamos intentando definir un tipo de objeto nuevo una clase nueva y luego vamos a escribir el nombre de la clase separada con
un espacio claro cuenta bancaria el estándar para escribir el nombre de una clase en python es comenzar con una letra mayúscula siempre se comienza con una letra mayúscula por convención de la comunidad ante python y por la guía de estilo del lenguaje y luego cada palabra comienza con una letra mayúscula para Separarlas visualmente luego del nombre de la clase lo que hacemos es escribir dos puntos y eso va a crear una intenta ción automáticamente cuando presionemos enter ya tenemos el nombre y de la clase que ocurre ahora tenemos que empezar a crear los atributos de
esa cuenta bancaria como lo podemos hacer con este método especial esta es una función asociada a cada cuenta bancaria que va a permitirnos Inicializar o asignarles un valor inicial a los atributos de la cuenta este nombre es especial y estar reservado en python para un tipo específico de función esa función de inicialización escribimos la palabra clave del df igual cómo definimos una función seguida de un espacio y el nombre del método está rodeado de doble guión bajo aquí tenemos dos guión bajo por eso es que se ve tanta distancia es muy importante también que escribas
y n It in it de inicio de sesión inicialización en inglés luego de esto escribimos paréntesis y dos puntos dentro del paréntesis vamos a y escribir el primer parámetro se va a llamar self que es lo que va a ocurrir con search se va a estar relacionado con un concepto denominado instancia para estar relacionado con cada una de esas cuentas bancarias que vamos a crear a partir de este plano ya vamos a hablar un poquito más detalle sobre las Instancias pero por ahora ya sabes que está relacionado con cada una de esas cuentas bancarias ahora
vamos a crear parámetros para poder personalizar el valor de cada uno de los atributos de la cuenta bancaria cuando las creemos vamos a crear un parámetro para el número de cuenta para el nombre del titular y para el balance tenemos tres atributos iniciales luego puedes agregarle los otros atributos que discutimos para definir esos atributos Inicialmente lo que debemos hacer es escribir la palabra 0 seguida de un punto y escribir el nombre del atributo que queremos agregarle a esa cuenta bancaria número de cuenta y le asignamos el valor número de cuenta luego queremos nombre titular y
balance vamos a analizar un poco la estructura de este método tenemos tres parámetros número de cuenta nombre titular y balance esto nos va a permitir Personalizar pasar valores para cada uno de esos atributos de la cuenta estos parámetros son simplemente variables locales igual que los parámetros de una función y estos parámetros son los que vamos a usar aquí para asignar esos valores el nombre del titular y balance esto sí son los atributos que van a estar relacionados con cada cuenta bancaria el número de la cuenta de cada cuenta bancaria el nombre del titular de Cada
cuenta bancaria y el balance de cada cuenta bancaria estamos asignando un valor a cada uno de los atributos eso es básicamente lo que hacemos aquí y esto va a ser muy importante cuando empecemos a crear instancias ya tenemos nuestros atributos definidos así que comencemos a ver los otros elementos de la clase las clases esos planos que usamos para representar los objetos también pueden usarse para representar la funcionalidad Del objeto en el sistema solo representamos aquellas funcionalidades que son relevantes para nuestro sistema por ejemplo una cuenta bancaria podemos retirar depositar generar un balance mostrar el balance
actual actualizar datos y el titular etcétera en este caso vamos a hacer un método que nos va a permitir mostrar el balance en la consola vamos a implementarlo recuerda antes de que comencemos a implementarlo recuerda que la palabra Self está relacionada con la instancia actual la instancia es cada una de esas cuentas bancarias que vamos a crear a partir de ese plano igual que podemos crear muchísimas cientos de casas con un mismo plano vamos a crear muchísimas cuentas bancarias en nuestro sistema a partir de ese plano inicial vamos nuevamente a nuestra clase y ahora comenzamos
a definir un método llamado general balance cuando trabajamos con clases Cada uno de esos métodos tiene que tener un parámetro que se denomina show es ese ese parámetro se nos va a permitir trabajar con la data de cada una de esas cuentas bancarias porque vamos a escribir código que aplica para todas las cuentas bancarias que creemos por ejemplo si nosotros queremos mostrar el balance de una cuenta bancaria específica podemos usar ese valor de dos y mostrarlo mostrar el balance de esa cuenta bancaria usamos un punto para Referirnos al atributo balance y básicamente así es como
funcionan los métodos en facebook también podemos definir otro método propósito el primer parámetro siempre debe ser 0 para referirnos a una cuenta bancaria en específico y aquí vamos a tener que agregar un segundo parámetro porque queremos saber tenemos que saber que el monto va a depositar el usuario monto aunque vamos a tener que pasar un valor Para este parámetro y lo que vamos a hacer es actualizar el balance incrementarlo por el valor del monto depositado preferiblemente deberíamos revisar deberíamos cerciorarnos de que el monto es mayor que 0 y únicamente incrementar los y ese monto es
mayor que sera bien ya tenemos una clase que representa una cuenta bancaria definida con sus atributos iniciales número de cuenta nombre del titular y balance y dos Métodos generar balance que muestra el balance actual de la cuenta y depositar que incrementa el balance actual en un monto específico ahora veamos un poco más sobre el concepto de instancia por quien lo hemos mencionado pero no hemos visto en detalle hasta ahora a partir de este plano que nosotros estamos creando para una cuenta bancaria podemos generar muchas instancias cada una de esas instancias representa una cuenta bancaria con
su propio número su propio Titular su propio balance pero estamos representando todo ese código general todo lo que puede aplicar a cada una de esas instancias en nuestro plano para representar en general una cuenta bancaria recuerda el término instancias y cada una de esas instancias tiene atributos independientes o sea que si actualizas el atributo de alguna de esas instancias los atributos de las otras no serán afectados cambiar El titular de una cuenta no cambia el titular de las otras cuentas en el sistema cuando usamos atributos de instancias pero siempre tienes que tener presente que donde
veas zeus en el plano en la clase en el código nos estamos refiriendo a la instancia actual la instancia que se está creando la instancia que está llamando un método específico o la instancia que se está modificando Vamos a ver cómo podemos crear instancias en un programa ya definimos nuestra clase cuenta bancaria así que vamos a crear una instancia mi cuenta definimos una variable y con el operador de asignación usamos o escribimos el nombre de la clase y entre paréntesis pasamos los valores necesarios son tres valores los que debemos colocar para crear una cuenta de
dos siempre se omiten cuando vas a Llamar a un método o cuando vas a crear una instancia simplemente se asume que este parámetro ya tiene un valor porque en verdad lo tiene detrás de escena así que solo necesitamos tres valores el número de la cuenta digamos ciento 53 566 43 nombre del titular no ahora smith y el balance representamos la columna entera por ejemplo 5600 o que estamos creando una cuenta bancaria con estos atributos iniciales con estos valores iniciales Cada uno de estos valores corresponden a su atributo correspondiente en el orden en el que fueron
definidos la lógica es muy similar a como trabajamos con funciones esto va a crear una instancia nueva que va a estar guardada en la variable mi cuenta y si nosotros queremos acceder a algún atributo de esta cuenta podemos hacerlo por ejemplo si queremos mostrar el balance de la cuenta vamos a guardar el archivo y ejecutar el programa Y aquí lo podemos ver vemos el valor de ese atributo 5.600 exactamente el balance que especificamos aquí cuando creamos la cuenta pero nosotros ya definimos un método para mostrar el balance de la cuenta podemos llamarlo directamente en vez
de escribir esta línea vamos a hacerlo mi cuenta punto general balance y como no hay otros parámetros además de Salud llamamos al método con paréntesis vacío recuerda que estados debemos asumir que ya tiene su propio valor ese valor de self va a ser la instancia que está llamando el método se va a tener una referencia a un valor que se refiere a esta instancia en el programa a la instancia mi cuenta se va a generar un balance si ejecutamos el programa puedes ver que se ejecutó correctamente Se muestra el balance de esa cuenta bancaria en
específico de igual forma podemos llamar al método depositar vamos a depositar un monto específico a depositar 400 para que el valor llegue a 6000 luego de depositar podemos generar nuevamente un balance y vemos cómo se actualizó el valor del balance y aquí lo tenemos inicialmente el balance era 5600 y luego su valor se actualizó a 6000 luego de depositar un Monto de 400 ya está familiarizado familiarizada con los conceptos principales de programación orientada a objetos el concepto de clase que sirve como un plano para representar un objeto el concepto de un método que se utiliza
para inicializar los atributos de un objeto y también tenemos otros métodos que nos permiten realizar funciones relacionadas con esos objetos por ejemplo generar el balance de una cuenta Depositar un monto a una cuenta todas las funcionalidades que necesitemos representar en nuestro sistema luego podemos crear una instancia que son representaciones concretas que creamos con ese plano con valores específicos cada uno de esos valores es asignado en este método cuando se crea una instancia y luego podemos usar esos atributos en el programa y llamar a sus métodos para trabajar con ellas por convención usamos la palabra cebo
para referirnos a la Instancia ya sabes todo lo principal que debe saber para comenzar a programar en paypal espero que te haya gustado el curso y que estas horas hayan sido de utilidad para que continúes tu viaje por el mundo de la programación así que te deseo mucha suerte y aquí en freak on cam tienes muchos recursos para que continúes aprendiendo sobre programación