Introducción A Programación en Python
Introducción A Programación en Python
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 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 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 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 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 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 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 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
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 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 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 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 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 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 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 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 operadores en python
operadores aritméticos lógicos relacionales y de asignación buen trabajo pasemos a 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 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 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 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 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 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 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 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 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 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 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 eso es verdadero lo tenemos aquí lo que
vamos a obtener si no existen es 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 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 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 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 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 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 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 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 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 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 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 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
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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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