30 días de Python: codificación para principiantes | Tony Alamo | Skillshare

Velocidad de reproducción


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

30 días de Python: codificación para principiantes

teacher avatar Tony Alamo, Spark Your Brain

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      Introducción

      3:28

    • 2.

      Cómo funciona el curso

      2:26

    • 3.

      Día 1: instala Python (Mac)

      14:41

    • 4.

      Día 1: instala Python (Windows)

      11:59

    • 5.

      Día 2 - Variables

      11:39

    • 6.

      Día 3 - Cuerdas

      9:23

    • 7.

      Día 4 - Funciones (1/2)

      10:01

    • 8.

      Día 5 - Día de descanso :)

      1:02

    • 9.

      Día 6 - Programación orientada a objetos (OOP) - Métodos

      6:52

    • 10.

      Día 7: concatenación de cuerdas

      11:52

    • 11.

      Día 8: aportaciones de los usuarios (números, números enteros, flotantes, comentarios)

      9:15

    • 12.

      Día 9 - condicionales (if/elif/else) y bloques de códigos

      13:33

    • 13.

      Día 10 - Día de descanso :)

      1:12

    • 14.

      Día 11 - Funciones (2/2)

      9:21

    • 15.

      Día 12: listas, rangos, clasificación

      19:59

    • 16.

      Día 13: bucles

      13:46

    • 17.

      Día 14: diccionarios

      11:18

    • 18.

      Día 15: día de descanso :)

      0:47

    • 19.

      Día 16: tuplas y conjuntos

      15:18

    • 20.

      Día 17 - OO: definición de clases

      13:15

    • 21.

      Día 18: OOP: atributos y métodos de la clase

      21:00

    • 22.

      Día 19 - OP - Herencia

      11:20

    • 23.

      Día 20 - Día de descanso :)

      1:22

    • 24.

      Día 21 - Archivos

      11:41

    • 25.

      Día 22: manejo de excepciones

      12:26

    • 26.

      Día 23: módulos y biblioteca estándar de Python

      14:55

    • 27.

      Día 24: proyecto: aplicación de aprendizaje de Python (1/5)

      18:16

    • 28.

      Día 25: día de descanso :)

      1:16

    • 29.

      Día 26: proyecto: aplicación de aprendizaje de Python (2/5)

      8:47

    • 30.

      Día 27: proyecto: aplicación de aprendizaje de Python (3/5)

      7:55

    • 31.

      Día 28: proyecto: aplicación de aprendizaje de Python (4/5)

      4:58

    • 32.

      Día 29: proyecto: aplicación de aprendizaje de Python (5/5)

      4:37

    • 33.

      Día 30: los finales son nuevos comienzos

      0:48

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

4077

Estudiantes

16

Proyectos

Acerca de esta clase

¿De qué se trata esta clase?

¡Esta clase está diseñada para mostrarte cómo las lecciones pequeñas pueden conducir a un progreso significativo!  La mayoría de las personas tienden a sobreestimar lo que pueden lograr en un solo día, pero a menudo subestiman lo que pueden lograr en solo 30 días.

Python se destaca por ser uno de los lenguajes de programación más populares y versátiles disponibles. A lo largo de esta clase, adquirirás los conocimientos esenciales necesarios para escribir tus programas en Python. El curso está estructurado para durar 30 días, con sesiones diarias de aproximadamente 15 minutos cada una. Comprenderás los conceptos fundamentales necesarios para embarcarte en la codificación de tus propias aplicaciones prácticas, sentando una base sólida para explorar cualquier campo de programación en el que puedas estar interesado.

La notable flexibilidad de Python permite su aplicación en una amplia gama de dominios, incluyendo inteligencia artificial, aprendizaje automático, análisis de datos, visualización de datos, desarrollo web, programación de software, finanzas e incluso desarrollo de juegos. Comenzando con conceptos básicos de Python, como las variables, este curso te guiará progresivamente hacia tu proyecto final: desarrollar tu aplicación de línea de comandos de Python. Este proyecto integrará todos los conceptos que has aprendido a lo largo del curso, lo que te ayudará a conectar los puntos de manera efectiva.

¿A quiénes está dirigida esta clase?

Aprender a codificar puede ser valioso para todos, incluso si no quieres usarlo profesionalmente. Amplía tu comprensión del paisaje digital que nos rodea hoy en día. Esta clase es la adecuada para ti si alguna de las siguientes afirmaciones te interesa:

  • Soy completamente nuevo en la programación. ¿Dónde escribo mi primera línea de código?
  • Aprendí a codificar en el pasado, pero estoy buscando un repaso.
  • Estoy buscando desmitificar la codificación y tener una idea de para qué se puede usar.
  • Quiero establecer una base sólida para conseguir un trabajo relacionado con la programación.
  • Quiero estirar mi cerebro al aprender algo nuevo.

¿Cómo aprenderé?

El curso está diseñado para ser tomado a través de lecciones de bocadillo de 15 minutos cada día durante 30 días, y se centra en el aprendizaje inteligente y no difícil. Puedes hacerlo a tu propio ritmo, así que si quieres hacer dos lecciones cada día y terminar el curso en 15 días, está bien, y si quieres tomarlo más lentamente, también está bien.

Aprovecharemos técnicas de aprendizaje basadas en la evidencia, como el recuerdo activo y la repetición espaciada, para mejorar tu aprendizaje y comprometer el conocimiento que adquiriste a la memoria a largo plazo. Tenemos ejercicios diarios prácticos que te ayudarán a interiorizar lo que estás aprendiendo e incluso días de descanso para recuperarte y revisar. En general, así es como funciona:

  • 15 minutos al día durante 30 días (tu eliges tu ritmo)
  • Sigue cada lección a medida que avanzamos
  • Ejercicios diarios para implementar un nuevo aprendizaje
  • Días de descanso y recuperación después de cada 4 lecciones
  • Proyecto final para conectar los puntos

¿Qué tipo de software usaré?

Comenzaremos el curso descargando e instalando el software necesario:

  • Python 3
  • iPython: un intérprete mejorado de Python
  • Visual Studio Code: un editor de código popular y poderoso

Contenido del curso:

  • Instalación
  • Variables, números, cadenas, concatenación de cadenas, indexación
  • Condicionales, bloques de código, For loops, While loops
  • Listas, rangos, diccionarios, tuplas y conjuntos
  • Funciones
  • Aportación de los usuarios
  • Introducción a la programación orientada a objetos (OOP)
  • Clases: definición, atributos, métodos, herencia
  • Archivos
  • Gestión de excepciones
  • Módulos y biblioteca estándar de Python
  • Proyecto práctico - Aplicación de aprendizaje de Python

Conoce a tu profesor(a)

Teacher Profile Image

Tony Alamo

Spark Your Brain

Profesor(a)

Hey, there! I'm Tony :)

Right after I graduated as an engineer in Boston, I jumped right into Data Analytics - starting off at a startup accelerator in Cambridge, MA, where we worked to start web companies from scratch and launch them into the world!

Even though this was super exciting work, I eventually decided to focus my attention on what I'm most passionate about - learning how to learn and teaching others how to do the same.

Most of us were never taught that the brain's structure can change based on our experiences, and learning is one of the best brain exercises there is!

I hope you find my Skillshare classes, YouTube videos, and other sharing platforms helpful, and that you join me on my journey to wake up and live a more meaningful life in the pr... Ver perfil completo

Habilidades relacionadas

Desarrollo Lenguajes de programación Python
Level: Beginner

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

Transcripciones

1. INTRODUCCIÓN: Hola, amigo mío, mi nombre es Tony y he estado trabajando en Python desde hace un tiempo. Y también pasa a ser el, hasta el año pasado, trabajé en Internet Venture Accelerator en Boston, donde trabajé en la codificación de proyectos relacionados con el objetivo de iniciar donde las empresas desde cero y almorzarlas en el mundo real. Eso fue un trabajo emocionante, pero estoy aún más emocionado de decir que hace poco de fiesta formas con ese trabajo para perseguir lo que realmente estoy emocionado de despertar cada mañana a, que es aprender a aprender y enseñando a otros cómo hacer lo mismo. Eso es lo que me trae aquí hoy y también a mi canal de YouTube en este curso de programación funcionará inteligente y no duro mundo buceo profundo y enfoque por solo 15 minutos cada día. Durante 30 días, habrá ejercicios diarios para que aprendas haciendo más, incluso tener días de descanso cada cuatro sesiones para que interiorices por qué estás aprendiendo. Y por último, vamos a tener nuestro proyecto final en el que tu código y tu propia aplicación Python. Aprenderás las habilidades que necesitarás para escribir tu propio código Python. Algunas de las cosas que veremos en nuestras variables y tipos de datos, como cadenas, números y listas. También analizaremos funciones, condicionales e incluso programación orientada a objetos y mucho más. E incluso aparte de Python, tocaremos una de las técnicas y conceptos clave relacionados con el aprendizaje acelerado, como la recuperación activa y la repetición espacial. Y todos estos podrían no tener mucho sentido en este momento, pero aprenderemos cuáles son largo del curso y podrás conectar los puntos en el proyecto final en este curso está destinado para cualquiera que ni siquiera tenga ni idea sobre qué programación o codificación incluso, o cualquiera que haya aprendido a codificar en el pasado y simplemente necesite un estructurado y refrescador si estás buscando aprender cómo codificar para eventualmente obtener trabajos de alto pago. Y el desarrollador busca automatizar tareas repetitivas para ganarse un poco más de tiempo, o están aquí solo por curiosidad y buscando aprender algo nuevo solo por el bien del aprendizaje, entonces este es el curso adecuado para ti y las únicas herramientas que necesitarás nuestra computadora y disposición para aprender la forma en que isla Python era mucho más difícil de lo que debería haber sido, sobre todo porque tenían sin estructura y lo hice todo por mi cuenta. Y el discurso es exactamente lo que deseo. Lo hubiera tenido el día en que traté de escribir mi primera línea de código, un proceso estructurado paso a paso enseñado por alguien que no solo sabe codificar muy bien, sino lo más importante, alguien que sepa cómo funciona el cerebro y cómo utilizar técnicas científicamente probadas para acelerar el proceso de aprendizaje. Has elegido un excelente lenguaje de programación para empezar porque Python es un lenguaje de codificación muy popular en todo el mundo, como mencioné a lo largo de este curso, construirás tu propia aplicación Python en el proyecto final en el que la app utilizará todas las herramientas que aprendimos a lo largo del curso. Y te cuestionará sobre cualquier tema que quieras estudiar. Y mantendrá tus puntuaciones para que sepas lo bien que estás haciendo en cada tema. Y cuando vuelvas, ya sabes, cuáles son los puntos débiles en los que necesitas trabajar. El producto final será crítico para conectar los puntos y lo que aprendiste. Y es por eso que es realmente importante para ti mantenerte consistente y dar pasos pequeños pero entregados para completar los 30 días. Porque cada día será como agarrar un pincel y pintar bien pensado y entregado punto en Lienzo. No tendrá sentido completo al dar un paso atrás y mirar el lienzo de inmediato. Pero con el tiempo, simplemente volviendo y pintando cada dólar adicional en el Lienzo deliberada y consistentemente, eventualmente retrocederás y te sorprenderás cuando por fin ver con claridad para qué había estado trabajando. Todos los. Como dijo una vez Steve Jobs, la dosis sólo se conectará en retrospectiva. Así que recuerda que sigue regresando sin nada más que agregar hoy. Realmente espero que decidas darle una oportunidad a esto y tener un buen presentimiento o verte muy pronto. 2. ¡Hola!: Bienvenido programador para aprender Python en 30 días. Estoy tan emocionado de tenerte aquí en la codificación EOB y ya sabes, tiempo. Por lo que probablemente te estés preguntando cómo va a funcionar esto con más detalle en este curso, vamos a tener 30 lecciones diarias que tardarán alrededor de 15 minutos en completarse. Incluso tenemos día de descanso y recuperación 74 lecciones en estas, no habrá ningún material nuevo y están destinados a darte la oportunidad recuperarte y revisar sesiones anteriores crees que podrías valer revisitando. Tenemos un ritmo diferente. Por lo que incluso podrías encontrar que funciona mejor para ti cuando haces dos clases cada día. Y eso significaría que terminarías el curso en 15 días en lugar de 30 días en la mitad del tiempo. Y eso está totalmente bien si eso funciona para ti, solo se asegura de que no estés abarrotando el conocimiento y que te estés tomando tu tiempo para interiorizar y digerir lo que estás aprendiendo. Entonces por eso no recomendaría tomar más de dos clases cada día. Hay un proverbio chino que dice y aquí. Olvidé lo que veo. Lo recuerdo, pero lo que hago, lo entiendo. Es por eso que este curso está enfocado en el aprendizaje práctico. Quiero que experimentes lo que puedas con todo lo que aprendes todos los días vas a poder seguir junto con lo que hago en pantalla. Y al final de cada lección, incluso tenemos ejercicios para que hagas y empieces a codificar de inmediato lo que aprendiste en ese entonces, verás en algún lugar bajo pantalla, probablemente a la derecha, una lista de todos los videos claramente etiquetados y numerados con cada fecha están destinados a ser tomados. También debería haber probablemente en la parte inferior, una sección de mensajes donde se pueden publicar mensajes y comentarios o preguntas para cualquiera lo vea para que podamos ayudarnos unos a otros. También hay herramientas que verás en el video alrededor de la pantalla que funciona de manera similar a otras plataformas de video que ya has utilizado. Uno de los más útiles podría vencer el botón de velocidad de reproducción. Esto te permitirá acelerar o ralentizar el video como desees. También podrías encontrar a lo largo del curso que hablo a un ritmo relativamente lento esto a propósito porque este botón te da la flexibilidad para cambiar la velocidad a lo que funcione mejor para ti. Y por último, quería pedirte que juegues de lleno en esto y te comprometas a completar el curso, agarrar un calendario y dejar un poco de tiempo a un lado cada día. Por lo que será más probable que se sienta y complete cada lección. Ya he puesto a la mitad el esfuerzo creando este curso para ti, pero esto no funcionará para nada a menos que pongas en la otra mitad de la obra. Por lo que los invito a volver y tener estado divertido, listo para enfocarse y listo para aprender sin más preámbulos. Hagamos esto. 3. Día 1 de instalación de Python (Mac): bienvenida a mi amigo a aprender Python en 30 días, y hoy es el primer día. Hoy tenemos algunos objetivos y el principal será la instalación. Este video específicamente es para la instalación de Mac OS. Asegúrate de que estás usando una Mac. Si quieres ver este video, si tienes una computadora con Windows, puedes ir al video equiva***t que verás en la lista de videos que dice Al mirar los otros objetivos, tenemos que investigar el mayor obstáculo para el aprendizaje. Tenemos que entender cuál es el mayor obstáculo para el aprendizaje, podemos abordarlo. También vamos a entender cómo nuestras preguntas, la respuesta. A continuación vamos a pasar a instalar Python y lo que necesitamos para facilitarnos la vida. Entonces, un par de cosas más que necesitaremos instalar. Y finalmente, vamos a terminar verificando la instalación e imprimiendo nuestros primeros comandos en la pantalla. Pasemos a la sección de aprendizaje. Bien, entonces el mayor obstáculo para aprendizaje es la creencia de que ya lo conoces. Y ese es un sentido que dice, una vez que bajamos esa barrera de pensar que ya sabemos algo, abrimos nuestras mentes para que aprendan cosas nuevas. A continuación, necesitamos saber que necesitamos tener la mente abierta para poder aprender. Porque la mente sólo funciona cuando está abierta. Es como un paracaídas Es muy importante para nosotros seguir haciendo preguntas. Si tienes preguntas a lo largo del curso, escríbelas porque es muy probable que respondamos esas preguntas más adelante a lo largo del curso. Otra ventaja de hacer preguntas es que cuando haces una pregunta, preparas tu mente para buscar las respuestas. Siempre que lleguen las respuestas, estarás mucho más preparado para absorberlas. Piensa en este elefante. Es creencia limitante es que no puede liberar su pierna porque falló cuando era pequeña, pero nunca volvió a cuestionar esta creencia. Incluso después de que se hizo lo suficientemente fuerte como para liberarse haciendo preguntas constantemente en lugar de conformarnos con respuestas, es más probable que rompamos creencias limitantes. Si alguna vez has pensado que no puedes aprender a codificar, este es un buen momento para empezar a cuestionar esa creencia, porque ¿qué le pasa a tu cerebro cuando haces una pregunta? Se involucra con la pregunta de inmediato y empieza a pensar en posibles respuestas en ese momento. Esto significa que podemos pensar en las preguntas como respuestas en vivo en el momento presente. Por otro lado, una vez que asignes una respuesta a una pregunta y la tomas a su valor nominal a partir de entonces, la respuesta fija podría impedirte ver más del panorama completo. Es por ello que las preguntas son la respuesta. Téngalo en mente y pasemos a la instalación. Entonces lo primero que vamos a hacer es que vamos a entrar en nuestro navegador y vamos a descargar Python en Google. Estamos tratando de llegar al sitio web Python.org. Y una vez que llegues aquí, vas a entrar en la sección de descargas. Vas a hacer clic en descargar para Macos. Entonces vas a abrir ese archivo que se descarga y que abrirá el instalador. Vas a hacer clic en Continuar y estar de acuerdo en todos estos. Y una vez que hagas clic en Instalar, eso se instalará en tu computadora y verás esa carpeta que acabas de instalar con el software Python. A continuación, vas a esperar a que termine la instalación, y luego vas a cerrar y mover el instalador a la basura. Enhorabuena, acabas descargar Python a tu computadora. Lo siguiente que vamos a hacer es que vamos a abrir nuestra terminal. Voy a usar el espacio de comandos y luego escribir en terminal. El terminal es súper útil cuando queremos interactuar con nuestro equipo mediante el uso de comandos escritos. Aquí podemos operar con archivos y podemos navegar por carpetas de la misma manera que usamos Finder por ejemplo. Podemos usar nuestro terminal para esto. Una cosa para la que podemos usar el terminal es verificar que tienes instalado Python correctamente. Para eso, simplemente ejecutamos Python three space version y pulsamos Enter, y podrás ver que tienes Python three instalado. Otra cosa que puedes hacer con tu terminal es que puedes ejecutar Python. Para ello, simplemente entramos en Python tres e Enter. Lo que esto hace es que simplemente abre el intérprete predeterminado de Python. Este intérprete es lo que se llama el Repl, REPL que significa leer, evaluar, imprimir bucle Esto simplemente significa que el entorno leerá y evaluará nuestros comandos y luego los imprimirá en la pantalla. Y haz esto en un bucle. La primera función y el primer comando que vamos a aprender en Python es la función print. Para ello, simplemente escribimos print open, round bracket, y luego entre comillas. Y puedes usar comillas simples o dobles, lo que prefieras. Aquí escribes algún texto. En este caso, estamos anotando Hello World. Y luego se cierra la cotización y luego se cierra el corchete redondo. Cuando presionas Enter, verás hola mundo o cualquier texto que pongas en la función de impresión impresa en la pantalla. Finalmente, cuando queremos salir del intérprete predeterminado de Python en el entorno, simplemente escribimos quit y corchetes redondos y presionamos Enter. Lo siguiente que vamos a instalar va a ser Python. Python es simplemente otro entorno Repl y otro entorno Python Muy similar al entorno predeterminado de Python, pero tiene más funcionalidad y es una versión mejorada de este entorno predeterminado. Para instalar Python, vamos a usar pip. El comando es el siguiente, va a ser pip tres, instalar Python Si esto no funciona, es posible que tengas otra versión de pip Entonces podrías usar Pip sin los tres y luego instalar Python y eso debería funcionar Lo que es Pip, es que es un Python Package Manager. Administra módulos que podemos descargar de Internet a nuestra computadora. Y vamos a analizar los módulos más adelante en el curso. Entonces cuando presionamos Enter, vemos que se descarga en nuestro equipo. Y para mí, en mi caso, ya lo tenía descargado. Así que tu pantalla podría verse un poco diferente y podría tomar un poco más de tiempo, pero eso debería funcionar bien. Ahora para ejecutar Python, simplemente escribimos Python en el terminal y presionamos Enter, y eso abriría Python. Y ahora tenemos otro ambiente de repeler que es similar a un entorno predeterminado como mencioné Y podemos usar la misma función de impresión que antes. Así que descomponga, imprime hola mundo, Entra, veremos hola mundo impreso en la pantalla. Después para salir de Python, simplemente escribe Quit and Enter. Y eso te llevará de vuelta a tu terminal. Lo siguiente que queremos descargar, y lo último que estamos descargando es código VS o código de estudio visual. Para eso, simplemente descargamos Google código de Visual Studio que debería llevarte al sitio web. Vas a descargar la versión para Mac. Qué es el código VS, es simplemente un editor de código. la misma manera que podrías usar Microsoft Word para escribir tus ensayos o cualquier cosa que quieras escribir Usarías código VS para escribir tus scripts. Tiene funcionalidades que serán gran ayuda cuando estemos escribiendo nuestro código. Entonces descargarías el código VS como lo harías con cualquier otra aplicación. Ahora mismo tenemos este archivo zip que cuando lo abrimos, llevaría la aplicación a mi carpeta de descargas. Simplemente lo muevo a mi carpeta Aplicaciones y estaría listo para abrir el código de Visual Studio usando el espacio de comandos. Aquí podemos dar click en Abrir. Eso abriría la aplicación, haría esa pantalla completa. Y podemos cerrar estas pestañas, podemos pasar a crear un nuevo archivo. En archivo. Nuevo archivo. Y entonces es simplemente un archivo de texto ahora mismo. Así podemos escribir el mismo comando que hicimos en el intérprete de Python. Imprimir hola mundo. Podemos hacer archivo, guardar como, y luego guardarlo como. Voy a llamarlo Hola Mundo. Y voy a guardarlo en mi escritorio y asegurarme de agregar extensión que le dice la computadora que es un archivo Python. Permite que el código VS acceda a la carpeta en la que intentas guardarlo. Ahora tienes un script Python guardado. Una característica realmente genial que tiene el código VS es que tiene extensiones. Para nuestro caso, vamos a querer descargar la extensión de Python. Ya lo tengo descargado. Pero en tu caso, es posible que hayas visto un mensaje emergente cada vez que intentas guardar el archivo py, recomendándote que descargues la extensión O simplemente podrías entrar en la sección de extensión y puedes buscar la de Python y puedes descargarla. Y eso se aplicaría a tus archivos Python automáticamente. Bien, digamos que tenemos nuestro archivo que guardamos nuestro script que guardamos y íbamos a abrir código VS y estamos tratando de encontrar ese archivo. Ahora en este caso podemos ir aquí en lo siguiente, intentaremos abrir una carpeta. Muevo ese archivo a mi escritorio y luego a la carpeta devel en mi escritorio, que significa desarrollo Y yo sólo voy a abrir esa carpeta. Podemos ver que obtenemos esta pestaña de inicio, que podemos cerrar, pero luego tendremos la carpeta aquí a la izquierda. Y podemos simplemente dar click en el archivo que guardamos, que es nuestro script. Y se abrirá en el editor de código. Ahora bien, si quisiéramos ejecutar este script, podríamos ir a nuestra terminal. Entonces voy a hacer comando terminal espacial para abrir mi terminal. Entonces vamos a tener que aprender un par de comandos antes de la terminal los cuales van a ser súper útiles. El primero es el comando PWD, que significa directorio de trabajo de impresión Lo que esto hace en la terminal es que nos dice exactamente dónde estamos. Podemos ver que esta es la ruta del archivo a donde estamos. Estamos bajo los usuarios Antonio Alamo y luego carpeta de escritorio en este momento. Luego también está el comando LS que significa lista y enumera los archivos que están en la carpeta actual. Aquí podemos ver todo lo que hay debajo de nuestro escritorio. Este sería el equiva***t de entrar en Finder y decir, bien, veamos qué Y luego vemos que tenemos todos estos archivos. Podemos ver lo mismo en nuestra terminal. Ahora otro comando útil es el comando C D, que significa cambiar directorio. Para este hacemos CD, luego hacemos espacio, y anotamos el directorio donde queremos ir. En este caso, imagina que queremos entrar en la carpeta devel Podríamos decir usuarios Antonio Alamo, escritorio superior y luego devel, estoy usando la pestaña para la terminación de las carpetas Ahora podríamos presionar Enter. Y cuando hacemos imprimir directorio de trabajo, podemos ver que estamos en la carpeta de desarrollo en este momento, cuando hacemos LS para lista, podemos ver los archivos que están debajo la carpeta actual y el directorio de trabajo en el que estamos ahora mismo. Un comando aún más útil para aprender es el CD. Y luego en lugar de anotar la ruta absoluta del archivo, que es lo que es esto, podemos imprimir un comando relativo. Podemos decir parada completa, Parada completa. Y luego presione Enter, y esto significa ir a la carpeta anterior. Ahora puedes ver que cuando hacemos imprimir directorio de trabajo, fuimos un paso atrás. Ahora estamos en el escritorio en lugar de la carpeta devel, ahora hacemos LS y vemos lo mismo Y luego podemos volver atrás, cambiar directorio a la carpeta devel e ir ahora mismo porque en realidad no tienes que anotar el archivo absoluto, También puedes escribir la carpeta dependiendo si está en el directorio actual Ahora que estamos en la carpeta devel, podríamos hacer LS y vemos que tenemos el script hello world Si quisiéramos ejecutar ese script, simplemente ejecutamos el siguiente comando, que es Python three space, y luego el script que queremos ejecutar. Y luego cuando pulsamos Enter, vemos que estamos ejecutando el guión. Y se ejecutan los comandos o las líneas que están bajo ese script. Y podemos ver Hello world impreso en la pantalla. Visual Studio realmente brinda ese servicio para nosotros. Podemos ir a terminal y dar click en Nueva terminal y podemos ver lo mismo. Se trata de un terminal cuatro código VS específicamente ejecutar el mismo comando. Podemos hacer directorio de trabajo de impresión y podemos ver que estamos bajo la carpeta devel ahora mismo Si quisiéramos retroceder un paso, podríamos hacer cambiar directorio al de arriba y podríamos ver que estamos bajo escritorio. Si hacemos LS, podemos ver todo lo que hay debajo de nuestro escritorio. Podríamos ir aún más atrás si quisiéramos, pero también podemos volver a nuestro escritorio, cambiar de directorio y luego cambiar de directorio nuevamente a nuestra carpeta devel Otro comando útil es borrar comando simplemente para borrar el terminal para que podamos obtenerlo real limpio. Entonces podremos volver a ejecutar el comando LS para ver que estamos bajo nuestra carpeta devel y podemos ver nuestro script hello world Do Si quisiéramos ejecutar este script, simplemente podemos ejecutar Python nuevamente. Tres, hola mundo. Y podemos ver hola mundo impreso a la pantalla, todo dentro del código VS. Finalmente, la última forma que vamos a ver sobre cómo ejecutar este archivo es usando una función de código VS, que es simplemente hacer clic en el botón de reproducción aquí mismo en la parte superior, en la parte superior derecha de tu pantalla. Y se puede ver que se ejecuta el guión hello world. Podemos intentarlo de nuevo, borrar la pantalla y podemos decir el botón de reproducción. Y entonces podemos ver que el guión es. Entonces eso sentará para la sección de aprendizaje de hoy y estamos listos para pasar al resumen Aprendimos que necesitamos tener mente abierta si queremos aprender rápido, y que necesitamos hacer muchas preguntas y comprender la importancia de las preguntas y cómo las preguntas son la respuesta. También pasamos a instalar Python tres en nuestra computadora, y también Python así como código de Visual Studio. El código de Visual Studio es el editor de código. Finalmente, ejecutamos nuestros primeros comandos de Python usando la función print. Ahora pasemos a la sección de entender. La sección de entender cada día va a ser donde hagamos nuestras manos en el aprendizaje. Aquí vamos a hacer preguntas, vamos a tener algunos ejercicios podamos hacer con nuestro Python. Y ahora para hoy, la primera es cómo son las preguntas la respuesta. Entonces quiero que respondas a esa pregunta y pienses en esa pregunta. A continuación, quiero que impriman la versión de Python que ha instalado en su pantalla usando el terminal. Y luego imprime tu nombre usando el intérprete predeterminado de Python. Eso sería usar la función print, y luego imprimir tu nombre y otras palabras usando Python. Por último, imprima su nombre ejecutando un script con la extensión py. Recomendaría usar código VS para esto y guardar ese archivo. Eso sentará para hoy chicos. Muchas gracias a todos por ver. Recuerda, si tienes alguna duda, publícalas en los comentarios a continuación para que la comunidad pueda ayudarte. Y te veré mañana de vuelta aquí. 4. Día 1: instala Python (Windows - nuevo): bienvenida a mi amigo a aprender Python en 30 días. Y hoy es el primer día. Y hoy tenemos algunos objetivos y el principal será la instalación. Y este video específicamente es para la instalación del sistema operativo Windows. Mira esto si estás trabajando en Windows y si tienes un sistema operativo Mac, puedes ir al video equiva***t que verás en la lista de videos que dice Entonces, mirando los otros objetivos, tenemos que investigar el mayor obstáculo para el aprendizaje. Necesitamos entender cuál es el mayor obstáculo para el aprendizaje para poder abordarlo. Y también vamos a entender cómo nuestras preguntas, la respuesta. A continuación vamos a pasar a instalar Python y lo que necesitamos para facilitarnos la vida. Entonces, un par de cosas más que necesitaremos instalar. Y finalmente, vamos a terminar verificando la instalación e imprimiendo nuestros primeros comandos en la pantalla. Pasemos a la sección de aprendizaje. Bien, el mayor obstáculo para aprendizaje es la creencia de que ya lo conoces. Y ese es un sentido que dice, una vez que bajamos esa barrera de pensar que ya sabemos algo, abrimos nuestras mentes para que aprendan cosas nuevas. A continuación, necesitamos saber que necesitamos tener la mente abierta para poder aprender. Porque la mente sólo funciona cuando está abierta. Es como un paracaídas Es muy importante para nosotros seguir haciendo preguntas. Si tienes preguntas a lo largo del curso, escríbelas porque es muy probable que respondamos esas preguntas más adelante a lo largo del curso. Otra ventaja de hacer preguntas es que cuando haces una pregunta, cierras tu mente para buscar las respuestas. Siempre que lleguen las respuestas, estarás mucho más preparado para absorberlas. Pensar en este elefante que limita la creencia es que no puede liberar su pierna porque falló cuando era pequeño, pero nunca volvió a cuestionar esta creencia. Incluso después de que se hizo lo suficientemente fuerte como para liberarse haciendo preguntas constantemente en lugar de conformarnos con respuestas, es más probable que rompamos creencias limitantes. Si alguna vez has pensado que no puedes aprender a codificar, este es un buen momento para empezar a cuestionar esa creencia. Porque ¿qué le pasa a tu cerebro cuando haces una pregunta? Se involucra con la pregunta de inmediato y comienza a pensar en posibles respuestas en ese momento. Esto significa que podemos pensar en las preguntas como respuestas en vivo en el momento presente. Por otro lado, una vez que asignes una respuesta a una pregunta y la tomas a su valor nominal a partir de entonces, la respuesta fija podría impedirte ver más de la imagen completa. Es por ello que las preguntas son la respuesta. Así que tenlo en cuenta y pasemos a la instalación. Para descargar Python, vamos a abrir nuestro navegador y vamos a buscar para descargar Python. Estamos buscando el sitio web Python dot, Aquí está, justo debajo de la sección de descargas. Vamos a hacer click aquí abajo, debajo de Descargar para Windows. Y eso va a descargar un archivo, que vamos a abrir en cuanto termine de cargarse. Eso iniciará la instalación. Vamos a marcar esta casilla donde dice Agregar ruta Python dos. Vamos a dar click en Instalar. Ahora una forma para que eso se cargue. Y entonces podemos cerrar esto. Y ahora tenemos Python instalando una computadora. Lo siguiente que vamos a hacer es que vamos a abrir nuestra aplicación de símbolo del sistema. Esta aplicación funciona como un terminal entre nosotros y la computadora. El terminal es súper útil cuando queremos interactuar con nuestro equipo mediante el uso de comandos escritos. Aquí podemos operar con archivos y podemos navegar por carpetas. Podemos usar nuestro terminal para esto. Una cosa para la que podemos usar el terminal es verificar que tienes instalado Python correctamente. Para eso, vamos a ejecutar la versión de Python, y eso imprimiría la versión de Python que tenemos ahora mismo. Otra cosa que puedes hacer con tu terminal es que puedes ejecutar Python. Para ello, simplemente entramos en Python. Y entrar lo que esto hace es que simplemente abre el intérprete por defecto de Python. Y este intérprete es lo que se llama el repel REPL, que significa leer, evaluar, imprimir bucle Esto simplemente significa que el entorno leerá y evaluará nuestros comandos y luego los imprimirá en la pantalla. Y haz esto en bucle. La primera función y el primer comando que vamos a aprender en Python es la función print. Para ello, simplemente escribimos imprimir soporte redondo abierto, y luego entre comillas. Y puedes usar comillas simples o dobles, lo que prefieras. Aquí escribes algún texto. En este caso, estamos anotando Hello World. Después se cierra la cotización y luego se cierra el corchete redondo. Cuando presionas Enter, verás hola mundo o cualquier texto que pongas en la función de impresión impresa en la pantalla. Por último, cuando queremos salir del intérprete por defecto de Python en el entorno, simplemente escribimos quit y corchetes redondos y presionamos Enter. Lo siguiente que vamos a instalar va a ser Python. Y Python es simplemente otro Repl y otro entorno Python Muy similar al entorno predeterminado de Python, pero tiene más funcionalidad. Y es una versión mejorada de este entorno predeterminado. Para instalar Python, vamos a usar pip. Y el comando es el siguiente. Se va a instalar Python. Lo que es pip es que es un gestor de paquetes Python. Administra módulos que podemos descargar de Internet a nuestra computadora. Y vamos a analizar los módulos más adelante en el curso. Entonces cuando presionamos Enter, vemos que se descarga en nuestro equipo. Y ahora para ejecutar Python, simplemente escribimos Python en el terminal y presionamos Enter. Y eso abriría ipython. Y ahora tenemos otro entorno Repl es similar a un entorno predeterminado como ya mencioné Y podemos usar la misma función de impresión que antes. Así que escribe imprimir hola mundo, Entra y veremos hola mundo impreso en la pantalla. Después para salir de Python, simplemente escribes Quit and Enter, y eso te llevará de vuelta a tu terminal. La tercera y última cosa que vamos a descargar va a ser el código de Visual Studio. Para ello, buscaremos, descargaremos código visual studio o código VS. Después entraremos en el sitio web de VisualStudio.com y buscaremos la opción de Windows A continuación seremos como descargar cualquier otra aplicación. Simplemente haremos clic en este archivo que hemos descargado e iniciará el instalador. Haremos clic en Aceptar el Acuerdo. Haga clic en Siguiente y, a continuación, haga clic en Siguiente. Siguiente otra vez, y finalmente, Instalar, y esperar a que termine la instalación. Ahora tenemos el código VS instalado en nuestro equipo. Una vez que nos metamos en el código VS, podemos cerrar esa pestaña Comenzar y podemos presionar Archivo, Nuevo archivo. Esto nos llevaría a un archivo de texto predeterminado. Y podemos simplemente escribir el mismo código que escribimos en el intérprete de Python. Imprimir hola mundo. A continuación podemos golpear y darle un nombre a nuestro archivo. Y asegúrate de que lo guardemos como un archivo, lo que le dirá a la computadora que va a ser un script de Python. Una vez que guardes el archivo, código VS te va a preguntar si quieres descargar la extensión para Python, vamos a instalarla en eso. Y eso tomará un segundo. Entonces tienes instalada la extensión. Esta extensión nos será útil cuando escribamos código Python porque tendrás algunas características que nos facilitarán escribir código en. Ahora digamos que estás abriendo código VS desde cero y quieres encontrar tu archivo hello world dot. Lo que hacemos es que abrimos carpeta, golpeamos y abrimos carpeta y miramos la carpeta donde la tenemos para mí. Es la carpeta diablo para el desarrollo. Abro esa carpeta hacia arriba y puedes ver a la izquierda tienes el explorador con esa carpeta y el contenido. Y a la derecha tienes al editor. Entonces ahora que hemos hecho clic en nuestro archivo hello world, lo podemos ver en el editor ¿Y si quisiéramos ejecutar este archivo? Una opción es abrir el símbolo del sistema, y vamos a aprender algunos comandos súper útiles para el símbolo del sistema. El primer comando es CD, que significa cambiar directorio. Si lo ingresas por sí mismo, te da el directorio actual o imprime el directorio de trabajo. Pero si haces espacio en CD y luego una carpeta diferente, te llevará a esa carpeta. En mi caso, el archivo helloworld está en la carpeta de desarrollo Cambio directorio a la carpeta de desarrollo dentro de la que me encontraba actualmente. Eso me mueve a la carpeta que quiero. Otro comando sería el IR para directorio, que listará el contenido del directorio actual. Aquí podemos ver que tenemos el archivo helloworld así como la carpeta de archivos de texto Y es lo mismo que vemos en el código VS. Si quisiéramos movernos a la carpeta de archivos de texto, podríamos hacer cambiar archivos de texto de directorio y luego hacer DIR, podemos ver que tenemos un par de archivos de texto y es lo mismo que vemos en el código VS. Otro comando sería el CD. Parada completa. Parada completa. Y esto te llevará un paso atrás en la estructura de archivos. Volverías a la carpeta devel. Como sabemos que el script que queremos ejecutar está en esta carpeta, podemos usar el comando python space y luego el nombre del archivo que queremos ejecutar. Y pulsamos Enter, y podremos ver que eso va a ejecutar el script. Un último comando que es súper útil es un comando CLS que borra la pantalla También resulta que el código VS tiene un terminal incorporado. Como característica podemos, podemos dar clic en Terminal y luego abrir la terminal. Esto funcionará exactamente como el símbolo del sistema. Podemos usar CD, podemos cambiar directorio a la carpeta de archivos de texto. Podemos hacer DIR para ver qué hay en él. Podemos volver una carpeta. Podemos hacer DIR para asegurarnos de que volvimos. Y luego podremos usar un comando Python para ejecutar nuestro script. Y finalmente, hay una forma aún más sencilla de ejecutar el script, que es haciendo clic en el botón Mostrar en la parte superior derecha de la pantalla. Y ya ves que el guión ha corrido en la parte inferior. Eso servirá para la sección de aprendizaje de hoy y estamos listos para pasar al resumen Aprendimos que necesitamos tener mente abierta si queremos aprender rápido, y que necesitamos hacer muchas preguntas y comprender la importancia de las preguntas y cómo las preguntas son la respuesta. También pasamos a instalar Python tres en nuestra computadora, y también Python así como código de Visual Studio. El código de Visual Studio es el editor de código. Finalmente, ejecutamos nuestros primeros comandos de Python usando la función print. Ahora pasemos a la sección de entender. La sección entender cada día va a ser donde hagamos nuestras manos en el aprendizaje. Aquí vamos a hacer preguntas, vamos a tener algunos ejercicios podamos hacer con nuestro Python. Y ahora para hoy, la primera es cómo son las preguntas la respuesta. Entonces quiero que respondas a esa pregunta y pienses en esa pregunta. A continuación, quiero que imprimas la versión de Python que has instalado en tu pantalla usando el terminal. Y luego imprime tu nombre usando el intérprete predeterminado de Python. Eso sería usar la función print, y luego imprimir tu nombre y otras palabras usando Python. Por último, imprima su nombre ejecutando un script con la extensión py. Recomendaría usar código VS para esto y guardar ese archivo. Eso sentará para hoy chicos. Muchas gracias a todos por ver. Recuerda, si tienes alguna duda, publícalas en los comentarios a continuación para que la comunidad pueda ayudarte. Y te veré mañana de vuelta aquí. 5. Día 2 - Variables: bienvenida a mi amigo al segundo día, y vamos a empezar con los objetivos de hoy. El primero va a ser que vamos a buscar en variables de Python. A continuación, vamos a buscar en una clave para aprender que los objetos de Python. Y por último, vamos a conocer a nuestro nuevo mejor amigo. Pero por ahora, este salto justo a una sección de aprendizaje. En este gráfico, vemos un complot de progreso a lo largo del tiempo. Podemos ver que nuestras expectativas tienden a ser lineales mientras que la realidad es exponencial. Al principio, la realidad puede ser más lenta que nuestras expectativas. Y esto es lo que llamamos el valor de la decepción. Y puedes leer más sobre esto en James siente libro Hábitos atómicos. Ahora, la mayoría de la gente renunció en esta etapa antes de darse cuenta de que el aprendizaje puede ser exponencial y que eventualmente la realidad supera drásticamente las expectativas. La consistencia es importante porque sin ella, no superaríamos el valor de la decepción. Entonces es por eso que un Q-learning es consistencia siempre vuelve porque los incrementos diarios se componen con el tiempo y conducen a un crecimiento exponencial a largo plazo. Si cada día mejoraras un 1%, eso significaría una mejora más de 37 x después de un año. ¿ Y si te dijera que podrías hacerte hábito con este esfuerzo de tamaño de bocado y hacerlos sentir como un calzoncillo e incluso terminar disfrutando de ellos. Y eso es lo que pretendo hacer con este curso, ojalá mostrarles que el aprendizaje puede ser divertido y que podemos crecer cada día disfrutando del proceso. El gran problema con no ser consistente es que si decides no volver, no cosecharás las recompensas de lo que viste. Sería como hacer todos los esfuerzos para plantar y cultivar un manzano. Y luego ahora volviendo a recoger las manzanas. En el curso, estamos comenzando lentamente a propósito y aceleraremos progresivamente cada día. Si crees que esto va a ir lentamente o si lo estás encontrando demasiado duro, recuerda que está previsto y que los esfuerzos de tamaño de mordida más consistencia del paciente son iguales a crecimiento exponencial a largo plazo. Sin nada más que agregar sobre esto hoy, pasemos a las variables. Ahora, entraremos en el tema Python de hoy. Vamos a entrar en variables. Una variable es simplemente una ubicación de memoria reservada para almacenar un valor. Eso es lo que es una variable. Y le damos una variable nombre fácil de usar para ayudarnos a saber qué tipo de valor almacenan las variables nos permiten obtener un valor y referirnos a él de nuevo más adelante solo refiriéndose al nombre de la variable para mirar en esto y dejando aquí su terminal. Lo que hice fue Command Space y luego solo escribe en terminal y me lleva a una aplicación terminal. Nadie hace Command Plus, Plus, Plus un par de veces solo para que sea más visible, no lineal, entraré en IPython. Despeja la pantalla solo para que no tengamos nada ahí dentro. Impresionante. Entonces para declarar variable, usamos el signo igual. Si quiero decir mi variable, por ejemplo, y quiero decir, este es el valor. Ahora cada vez que me refiero, cada vez que me refiero a mi variable, va a hacer referencia al valor que está en esa variable y almacenarla en esa variable. Digamos que quería encontrar variable con mi jugador. Entonces si lo hiciera, mi jugador, podría imprimir Ronaldo diría Rinaldo. Ahora digamos que quiero asignar el valor. Quiero mantenerla la misma variable. Lo que quiero cambiar el valor que tengo en esa variable. Simplemente lo reasignaré. Desordenado. Digamos que mi jugador está desordenado. Así que cada vez que vuelva a imprimir a mi jugador, entonces va a estar diciendo desordenado, que es el nuevo valor adjunto a esa variable. ¿ Y si tratamos de hacer referencia a una variable que no hemos definido ya? Porque sabemos que en mi jugador ya está definido. Pero digamos que probamos algo así como mi var. ¿ Qué crees que pasaría aquí? Siempre que tratamos de hacer algo como esto, obtendríamos un error porque aún no lo hemos definido. Esto es lo que un área, esto es lo que quiero decir que llegarías a conocer a tu nuevo mejor amigo. Y te digo que tu nuevo mejor amigo nuestros errores solo porque cada vez que recibes un error, eso significa que estás empujando tu zona de confort y estás aprendiendo algo nuevo. Quieres, quieres que no te lo diga, que venga y te diga, Hey, estás fallando en esto porque estás tratando de aprender algo nuevo. Es así como leemos ahí y obtenemos el tipo de error, que es un error de nombre en este caso. Entonces obtenemos el mensaje de error que tiene nombre myVar no está definido. Entonces así es como leeríamos este error. Y veremos los errores más a fondo más adelante en este curso. Pero solo quería presentarte a tu nuevo mejor amigo que te diga que estás empujando tu zona de confort, que estás aprendiendo algo nuevo. Pero otra cosa que vamos a mirar hoy. Que todo en Python es un objeto. Aprenderemos más sobre eso a lo largo de este curso. Pero por hoy, todo lo que necesitas saber es que cada objeto tiene una identidad. Quiero decir, el objeto tiene un tipo, habrá objeto tiene un valor. Lo importante de las identidades de que una vez creado un objeto, la identidad no cambia. Para mirar la identidad de un objeto, utilizamos la función ID. Es decir, por lo general es así. Estamos buscando lo que es una función en un poco y luego otro día a lo largo de este curso. Pero la parte importante aquí es que veamos cómo tenemos una variable, variable una apenas igual a una. Queríamos ver el ID de la variable uno. Lo haríamos, haríamos ID variable uno y eso nos daría el número id de esa variable. Podemos pensar en este número como la dirección en memoria de eso, de esa variable. Pero por ejemplo, si digamos que queríamos crear otra variable, variable dos, y queríamos, podríamos configurarla igual a una variable. ¿ Qué pasaría si hacemos referencia a la variable ID, variable dos? Obtendríamos el mismo número aunque estemos mirando un nombre de variable diferente, ambas variables están haciendo referencia al mismo objeto que se encuentra en este ID las variables de nombre están haciendo referencia a la misma objeto. Podemos utilizar un operador llamado el operador. Por ejemplo, en lugar de tener que revisar cada ID individual y ver si estamos recuperando el mismo número. Podríamos hacer una variable. Variable dos. Vamos a recuperar un retorno de valor, que va a ser cierto si están haciendo referencia al mismo objeto. Sólo quería ser falso si no están haciendo referencia al mismo objeto. Por ejemplo, si creo una tercera variable diciendo esta cadena de encogimiento, y luego dije que una variable uno es variable tres, nos pondríamos false. Nuevamente. Vamos a buscar en tipo de variables más adelante en este curso. Pero por ahora, la parte importante es este operador en entender que el ID es más o menos como un número único para cada objeto. Y puedes pensar en BID como la dirección única en memoria del objeto al que estás haciendo referencia. Ya sabemos mirar la variable ID, cómo mirar el valor de una variable como esta. Entonces variable uno, variable dos, variable tres. Ahora vamos a ver cómo mirar en el tipo de la variable. Y eso es simplemente mediante el uso de la función type. Hicimos tipo variable uno obtendría lo que es el tipo, mismo para variable a cuál es el tipo y lo mismo para la variable tres, cuál es el tipo. Ahora vamos a mirar en estos más tarde. Por ahora podemos ver que los dos primeros son int para entero, y la tercera variable es STR, o cadena. Y de nuevo, vamos a ver eso más adelante a lo largo del curso. Pero por ahora es importante buscar entender que la función type devuelve el tipo del objeto que estamos pasando. Y finalmente, hablemos un poco sobre nombres de variables. Los nombres de variables distinguen mayúsculas y minúsculas por convención. Deben comenzar con una letra y pueden contener números, pero no como primer carácter. También puedes usar un subrayado. Algunos ejemplos de nombres de variables son los que ya hemos utilizado, o digamos que el nombre podría usar este nombre var. Se puede ver el valor de retorno que puede usar también como apellido como ejemplo de un nombre de subrayado. Puedes hacer animal, país 123, lo que sea, sea cual sea el número que puedas simplemente, lo único que no puedes hacerlo empieza con un número. Por convención, empiece con letras y en menor puntuación. Así que un recuerdo de aprendizaje de Cuba es la consistencia. Vuelve siempre porque te sorprenderás si te apegas a ella. Y queremos asegurarnos de que repasemos ese valle de decepción. Y la única forma en que podemos hacerlo es volviendo siempre. Siguiente. Aprendimos que todo en Python es un objeto. Y la óptica tienen un tipo y identificadores únicos y un valor también. Se puede averiguar cuál es el tipo y cuál es la idea con estas dos funciones. Útil, entonces las variables son simplemente etiquetas que apuntan a un objeto que vive en algún lugar de la memoria. Y se puede utilizar el operador is para ver si dos variables apuntan al mismo objeto. Esto es de lo que hablamos. Si tienen los mismos identificadores, eso significa que son el mismo objeto, entonces puedes usar el periodo de exalt o para mirar en eso también. También aprendimos que las variables distinguen entre mayúsculas y minúsculas por convención. Y comenzarán con una letra y pueden contener un número, pero no como primer personaje. Y por último, aprendimos que el fracaso es tu mejor amigo. Y si no estás fallando, significa que no estás empujando tus límites. Quieres asegurarte de que estás viendo que surgen errores rojos porque eso realmente significa que estás aprendiendo algo nuevo y eso es realmente genial. sección de comprensión de hoy. El primero es, ¿cuál es una clave para aprender? La segunda pregunta es definir diferentes variables e imprimirlas en la pantalla. Tercero es usar el operador is para ver si dos variables son las mismas. Entonces finalmente usa las funciones ID y tipo para obtener el ID y el tipo de objetos respectivamente. Y prueba esto con una cadena como esta, y con un número como este. Estas son las cuatro preguntas para hoy. Y buena suerte con esto. Y si tienes alguna duda, no dudes en preguntar en la sección de chat y ahí estaremos activos con una comunidad ahí. Buena suerte y te veré mañana. 6. Día 3 - Cuerdas: Bienvenido al día tres. El primer objetivo para hoy es mirar hacia la curva de olvido y por qué hacemos sesiones de tamaño de mordida cada día. Entonces vamos a buscar cadenas, índices de cadena, cadenas y variables. Y por último, vamos a ver cómo imprimir cadenas a la pantalla. Resulta que hay estudios que dicen que olvidamos entre el 70, 80% de lo que aprendimos dentro de las 24 horas de aprenderlo. Es por eso que hacinarse para un examen, aprender todo ese día anterior, tirar de una noche todo y luego dividir todo en el examen podría parecer funcionar para el examen. Pero podrías notar que la mayor parte de lo que aprendiste simplemente desaparece después. Afortunadamente para nosotros, estamos aprendiendo la manera inteligente aquí ya que sabemos cómo podemos aplastar la curva de olvido y hacer que se pegue lo que aprendimos. Podemos aprender de manera mucho más efectiva revisitando el concepto que aprendimos varias veces en periodos de tiempo cada vez más largos. Esto es lo que se llama repetición espaciada, y por eso este curso está diseñado estratégicamente de la manera en que son 15 minutos de aprendizaje deliberado y enfocado cada día durante 30 días es considerablemente mejor que el equivalente 7.5 horas en un solo día, lo que sería abarrotado. Cramming no es efectivo porque tu cerebro no absorberá. Y recuerda casi tanta información en comparación con las sesiones extendidas del tamaño de un bocado. Cuando vuelves a visitar dónde aprendes con el tiempo, tu cerebro considera que la información es importante y fortalece las conexiones neuronales relacionadas con ese aprendizaje con el propósito de facilitar el trabajo y reducir el trabajo. La próxima vez que llegue , piense en esto. Neuronas que se disparan juntas, se conectan, pero esto solo sucederá después de algún descanso y recuperación de calidad. Esto significa que si aprendes algo hoy y luego regresas otro día poco después después de dormir bien, comer bien, relajarte y hacer ejercicio. Notarás cómo cuando vuelvas estás haciendo las cosas considerablemente mejor que la última vez. Y ahora pasemos a las cuerdas. Las cadenas son objetos destinados a representar texto en Python. En el ejercicio anterior, dondequiera que las variables de texto que asignamos, las que son todas las cadenas. Para crear una cadena, podemos usar comillas simples o comillas dobles. Por ejemplo, podemos decir cadena uno igual a dos. Es una cuerda. Esto sería con cotizaciones solas. Podemos ver que asignamos esa variable para transmitir una. Podríamos hacer fuerza también. Esta es otra cadena con comillas dobles y podemos usarla de la misma manera. Entonces es lo mismo. ver a los directores y otra cadena. Solo asegúrate de seguir con tal que si usas algunas cotizaciones individuales, manténgalo consistente en tu código. Si estás usando comillas dobles, manténgalo consistente con lo que si quisieras usar cotizaciones dentro de una cadena? Digamos que querías guardarlo con la palabra tu. Encierras STR, cadena uno. Digamos que haces eso. Tu, ves que esto no funciona porque las cosas que estás cerca en la cuerda. Entonces para evitar esto, podemos hacer que esto funcione. Podemos simplemente sumar en el personaje de escape, justo antes de que lo hiciera citar nodos de Python y se escapará, esa cita, no la tomará en cuenta. Y entonces lo haría, lo usaría como literal de texto y lo agregaría a tu cadena. Siempre que imprimimos cadena uno, podemos ver que es Tu. También podríamos usar comillas dobles para evitar incluso tener que usar una barras invertidas. Entonces podríamos decir cadena uno, su igual a su. Y de esa manera. También puedes obtener el mismo resultado sin necesidad de usar el personaje de escape. Pero, ¿y si tuvieras una cotización dentro de una cotización? Por ejemplo, si dices, dije, te dije,eres el mejor, entonces en este caso, necesitarías un carácter cercano y. Necesitarías una barras invertidas aquí. Entonces cuando imprime la cadena uno, obtendrías la cadena que pretendes obtener. Ella dijo: Hola, eres el mejor. Ahora hablemos de indexación de cadenas por un segundo. Eso sí, Por ejemplo, tienes un país que tiene una cuerda, Nueva Zelanda. Nueva Zelanda. Ahora, se puede llamar a cada uno, cada letra de la cadena va a ser un índice en esa cadena. Dijiste country y vas a llamar al índice con el formato de corchetes. Entonces si dices país. Es 0. Ir a hacer referencia a esos índice Z con la referencia 0 en esa cadena. En este caso es Dn porque es país de referencia basado en cero. Hagamos una sola muestra que está por encima de una de referencia. Tendrías el siguiente índice. Si has terminado tres, el siguiente que es un espacio, y así sucesivamente. También podrías incluso usar índices de índice negativos. Tenemos nuestra variable, país, que tiene Nueva Zelanda. Bueno, si nos referimos país, hizo uno negativo, ¿qué esperas conseguir de aquí? Exactamente? Entonces obtendríamos el último, el último número. Si hicimos dos negativos, obtenemos el segundo último. Entonces es una forma de empezar desde el final. Cuando sabemos que podríamos usar un 0 para obtener el primer valor, entonces podríamos ir uno negativo y así sucesivamente. Donde podríamos ir más uno e ir. Pensó la siguiente cotización de principio a fin o de fin a inicio. También es útil saber que podemos asignar estas dos variables si lo sabes, si tienes país, digamos primera letra. Esa es mi nueva, mi nueva variable. Y entonces podría decir, Ok, país. Ya que estamos buscando la primera letra, queremos que sea, sea el índice 0. Entonces tenemos referencias a letra, que es n Cuando miramos país, Nueva Zelanda, perfecto, eso es exactamente lo que estamos buscando. Impresionante. Entonces eso fue todo para la sesión de aprendizaje de hoy. Ahora hagamos un recapitulación. Primero aprendimos que olvidamos la mayor parte de lo que aprendimos cuando acabamos aprender una vez que mostré por la curva de olvido en el gráfico que te mostré. Pero podemos aplastar esa curva de olvido implementando la repetición espacial en nuestro aprendizaje. Y eso es exactamente lo que estamos haciendo en este curso. A continuación, queríamos la fuerza interior. Vimos cadenas son objetos que representan texto en Python. Puedes usar comillas simples o comillas dobles para crear cadenas. Solo sé consistente para contener tu código. Entonces para agregar cotizaciones dentro la cadena podemos usar para mantener el carácter escape, o también llamado la barras invertidas. Las cadenas tienen índices, comienzan en 0 para el primer carácter. Puedes usar índices negativos para escoger los últimos caracteres y empezando desde el último y así sucesivamente. Puedes asignar estas cadenas a variables, y luego puedes imprimir esas, esas variables a la pantalla usando la función de impresión. Dulce. Por lo que ahora estamos listos para la sección de entender para hoy. Ahora la primera pregunta es, ¿cómo aplastaremos la curva de olvido? A continuación, asigna una cadena con el texto que soy programador a una variable llamada myString one. Asigne el mismo Texas antes a la variable MyString a, pero alterna las cotizaciones que usaste. Utilizas single, usas un doble, y viceversa. La cuarta pregunta es la impresión ambas cadenas a la pantalla. Imprime el tipo y el ID de cada cadena. Utilice el ACE operado. Averigua si la variable es apuntar al mismo objeto. La quinta pregunta es, crear una variable llamada MyString tres. Asigno esta nueva etiqueta, el objeto dentro de la variable myString uno desde el paso uno. Pista que no hay necesidad de escribir ningún texto o usar comillas aquí, solo nombres de variables y el operador igual. Entonces la pregunta final es imprimir las tres variables desde el paso 124 a la pantalla e imprimir su tipo en ID y compararlas entre sí utilizando el operador. Anota cualquier pregunta que pueda tener y que pudiera tener que surgiera y consultarlas con su almohada esta noche. Diez revisarán esto mañana. También puedes volver a usar el chat. Puedes usar la sección de comunidad para hacer cualquier pregunta y ahí estaremos activos. Buena suerte y te volveré a ver mañana. 7. Día 4 - Funciones (1/2): Bienvenido a Day para los objetivos de hoy se trata de aprender sobre funciones con guiones. Se analizarán las funciones incorporadas en Python. Estamos buscando funciones definidas por el usuario. Y finalmente, entrelazado con todo lo que estamos buscando a qué código bloquea nuestra función es simplemente una referencia a algún código que se ejecutará cada vez que llame a esa función. Piense en una función similar a una variable. Una vez que defina la función y le dé un nombre, posteriormente podrá usar ese nombre para llamar a esa función. Entonces, en otras palabras, se llama a una función por su nombre, y esto ejecutaría el código dentro de esa función. Hay algunas funciones que ya se han incluido en Python, y no tenemos que definir esas funciones nosotros mismos. Y a esas se les llama funciones incorporadas. Ejemplo perfecto de una función incorporada es la función de impresión, que se pasa en una cadena y la imprimirá en la pantalla. Pero tendrás que definir lo que hará la función printf. Entonces eso significa que la impresión es una función incorporada. muestrean otros ejemplos de funciones incorporadas. La función Len. Permítanme definir primero una cadena. Puedo usar la función Len para averiguar la longitud de lo que esté pasando. Para que puedas pasar en una cuerda, ya sabes, pasarla te dirá siete porque hay siete personajes. Industria. Otros ejemplos de funciones incorporadas o la función de tipo. Ya hemos hablado de esto antes. Entonces me dice, vale, Es una cadena de tipo, el objeto que está en esta variable. También podemos tener función BID, como mencionamos anteriormente también. Eso te dice el equivalente de la ubicación en memoria de esa variable, ese objeto, lo siento. Entonces también podemos tener sus dos nuevas funciones que podemos utilizar que son útiles para depurar, que son la función que significa directorio. Entenderá lo que significa esta salida más adelante en este curso. El querido, querido para la función de directorio. Y luego también está la función de ayuda. Función te da, te da alguna no documentación. Entonces en este ejemplo para esta variable, no tenemos ninguna documentación para esto. Pero podemos, también podemos usar la función de ayuda para depurar a, podrías encontrar toda la función incorporada de Python simplemente buscando esa documentación en línea. Veamos funciones incorporadas de Python. Y aquí tienes. Aquí tengo una lista de lo que son y lo que hacen. Entonces por ejemplo, si fuimos a la función de impresión, obtenemos una descripción detallada de lo que dólares la función de impresión. Podemos crear nuestra propia función usando la siguiente sintaxis. Puede usar DEF para la definición def. Y luego tienes el nombre de la función. Y llamaremos a esta función mi función. Luego usa los corchetes redondos y luego un colon. Cuando presiones Enter, verás que si estás usando ipython, hará la sangría por ti, pero necesitarías agregar sangría en este caso es base forzada. Y aquí, aquí sería lo que sería el bloque de código. El bloque de código de función. Entonces cada vez que hago referencia a esta función, este es el código que se ejecutaría. En este caso, estoy usando la declaración pasada porque no quiero que la función haga nada. Sólo quería pasar. Cada vez que ejecuto mi función, ese código se ejecuta. Y simplemente no hace nada en este caso porque es simplemente pasa función no cuadrada que dice hola y luego imprime el nombre. Hagamos def. Diga impresión. Entonces digamos imprimir. acabó. Siempre que lo hago. Imprimir corbata. Y llamas a una función usando los corchetes redondos, verás que el código se ejecutará. En este caso, verás que usamos los corchetes, pero no proporcionaríamos ningún atributos a esa función de la misma manera que lo hicimos cada vez que imprimimos con la declaración print, proporcionamos una cadena. Para que imprima una cuerda. Podemos ver que cada vez que estábamos ejecutando esta función que definimos sin ninguna, sin ninguna variable, todavía se ejecuta el código que tiene la función. Opcionalmente puede agregar en doc stream a su función. Harías esto así. Usted crea su función. Entonces justo debajo de ella se agrega una cita triple. Entonces esta sería la cadena doc. Una cadena de doc. Considerando que para la documentación. Si usas cada vez que creas funciones dentro de tu código, sería útil que quien intente leer tu código comprenda lo que hace la función. Esto funciona de nuevo para la documentación. También, digamos que queríamos usar una función, pero queríamos tener un valor que Garmin, que vaya y vaya a esa función. Por ejemplo, pongamos un nombre y un apellido. Nombre, nombre, nombre y apellido. Y luego vamos a decir print. Vamos a decir hola. Y luego primero, FirstName, LastName. Esa función hará lo que llamemos Mi función. Podemos decir, digamos desordenado. Entonces la función sabrá que FirstName es un primer argumento, luego el segundo nombre es, el apellido es un segundo argumento para esa función y puedes hacer referencia a esas variables dentro de tu función. Por último, como mencioné antes, puedes usar la función help para ayudar a una función incorporada a investigar, mirar algunas de las variables que tienes. En este caso, es la función. Entonces, siempre que uses la función de ayuda, te lleva a una pantalla y te proporciona el nombre de la función. El nombre del atributo es una función toma en. Y por último, este sería el arroyo de corteza de perros, la documentación. Si tuvieras alguna documentación para tu función, no serías capaz de verla a través de la función incorporada de ayuda. Y luego para salir de aquí presionas Q y te trae de vuelta. ¿Yo Python? Llegué tarde a la sección de aprendizaje. Y ahora hagamos un recapitulativo. Una función es simplemente un bloque de código que se ejecutará siempre que se llame a esa función. Y las funciones son llamadas por su nombre y usando corchetes como este. Python tiene funciones incorporadas que siempre lo leen listas para usar. Por ejemplo, la función de impresión es la primera que aprendimos. Entonces tenemos la función Len para obtener la longitud de un objeto. Tienes el ID de función de tipo ahí para directorio. Y luego la función de ayuda. Puedes ver la documentación de Python para la lista completa de funciones, que es el enlace que te mostré antes. Podemos definir nuestras propias funciones mediante uso de DEF y mi nombre de función, corchetes y punto y coma. Y luego el bloque de código respectivo debajo de eso, donde tienes un bloque de código con sangría debajo de la función f, que es un código que se ejecutará. También podemos dot cadenas podría esa función usando comillas triples. Y luego la función de ayuda, la función incorporada de ayuda incorporada nos da información útil sobre diferentes objetos Python que incluyen funciones. Después para definir una función que toma en argumentos, podemos agregarlos a la definición. Al igual que así. Hacemos la definición que haces dentro del nombre. Y luego dentro de los corchetes se agregan los argumentos. Y luego puedes hacer referencia a estos argumentos dentro del bloque de código o dentro de la función que puedes usar. Estante con usted entender sección. primera pregunta es utilizar una lente y las funciones integradas de impresión para imprimir la longitud de esta cadena. El segundo se define una función llamada lectura que imprime cualquier saludo a la pantalla. Entonces define una función llamada add que acepta dos enteros, los agrega Princeton para excretar. Y por último, se utiliza para ayudar a la función incorporada en sus dos nuevas funciones. Si tu función no ha tenido docstrings, docstrings estudiantes y vuelve a ejecutar la función de ayuda y ver la diferencia. Pero impresionante. Buena suerte con esto. Y si tienes alguna pregunta, siéntete libre de preguntarlas en el chat. Y nos aseguraremos de estar activos en la comunidad de ahí. Gracias de nuevo y te veré mañana. 8. Lección 5: Bienvenido de nuevo. Mi amigo. Hoy es en realidad un día de descanso. Hemos estado empujando nuestros límites por un par de días seguidos ahora hoy lo que vamos a hacer es resolver lo que hemos aprendido y descansar un poco. Quiero que vuelvas a los ejercicios y asegúrate que has internalizado todo lo que hemos aprendido hasta ahora. Y por último, solo quiero recordarte las tres claves para un aprendizaje efectivo. Hemos visto hasta ahora por preguntas o la respuesta. Bueno, sabemos que cuando te vuelves de mente radicalmente abierta, empiezas a hacer muchas más preguntas, lo que empieza a llevarte a mejores respuestas, entonces es difícil ver avances desde el principio. Pero si sigues regresando y si eres consistente con la consistencia, te sorprenderá lo que puedes empezar a lograr. Y por último, vimos el concepto de repetición escénica. Cómo podemos aplastarla olvidando curva no solo familiarizándote con los conceptos una vez, sino actuando sobre lo que aprendiste, espaciado a través del tiempo. Y de esa manera podemos hacer que se tome, aprenda de manera más efectiva. Entonces eso es todo por hoy. Espero que tengas un buen día de descanso para hoy y te veo mañana de vuelta. 9. Día 6 - Programación orientada a objetos (OOP) - Métodos: Bienvenido al sexto día. Por lo que los objetivos de hoy tenemos que ver qué es la mente del principiante. Siempre que vamos a mirar hacia programación orientada a objetos, y vamos a ver que en Python todo es un objeto. Entonces vamos a ver que los objetos pueden contener datos, atributos y funcionalidad a medida que los métodos saltan a la derecha en la sesión de aprendizaje. La mente del principiante significa acercarse al aprendizaje a través una perspectiva fresca y ver las cosas como lo haría un principiante. Hay un sensor que va a la base. Obstáculo al aprendizaje es la creencia de que ya lo conoces. Por lo que acercarse al aprendizaje con un par de ojos frescos te impide enfrentar ese obstáculo. Por eso te invito a que vuelvas todos los días a este curso con la mente de un principiante y para que puedas sacarle el máximo provecho. También sabemos desde antes que python es un lenguaje de programación orientado a objetos. En Python, todo es un objeto, y los objetos pueden contener datos a través atributos y funcionalidad a través de métodos. Ya hemos visto, sabemos que los objetos pueden tener un tipo. Entonces si creamos una variable, una que es decir, igual a esta cadena, entonces podemos ver ese tipo de variable uno. Podemos ver que es una cadena porque eso es lo que asignamos textos dentro de las cotizaciones aquí. Si quisiéramos imprimir la variable uno, podríamos ver el valor de este objeto. Este sería un objeto y este sería algunos datos que está unido a ese objeto. Y eso es lo que muestra la función de impresión, que podemos pensar en esto como datos adjuntos a un objeto. Por lo que aparte de los datos adjuntos a un objeto, podemos ver que los objetos también pueden tener funcionalidad a través de métodos. Se puede pensar en un método simplemente como una función que pertenece a un objeto para llamar a un método que usamos la notación de puntos combinada con la sintaxis que usamos para llamar a nuestra función normal. Por ejemplo. Por ejemplo, seríamos mi variable, mi método. Si hubiéramos definido, por supuesto, una variable llamada myvariable y un método llamado mi método. Pero para este ejemplo, hagamos esto, use la variable uno, que tenemos y sabemos qué es una cadena. Para la variable uno, podríamos usar un ejemplo de un método de cadena que se llama Upper. Lo que hace este método es que toma una cadena y devuelve la cadena con cada letra en mayúscula. Otro ejemplo es el método title. Que X mayúscula es sólo la primera letra de cada palabra en la cadena. Por último, otro ejemplo es el método de recuento. Hay un error porque toma una entrada. Entonces el método count realmente toma en una entrada, es lo que queremos contar en esa cadena. Entonces en este caso, quiero guardar la carta I. Y me dice un número dos. Número dos porque nuestros dos ojos y esa cuerda, esta cuerda, hay dos ojos. Podemos ver la zona que tenemos. Recibimos un error de tipo con la cuenta, con el mensaje. Eso es todo. Count toma al menos un argumento y 0 donde dado, así es como sabía que necesitaba darle un argumento, es como lo cambié. Y aprendí que el método count toma en un argumento y devuelve un recuento de dos para esa entrada específica que podemos usar para R1, podemos usar la función dir, que recibirá un objeto y devolverá una lista de todos los métodos que contiene. Si lo hacemos aquí mismo para el VAR, podemos ver que tenemos todos los métodos contenidos en ese tipo de objeto. En este caso es una cuerda. Podemos ver la vacuna, tenemos una más baja, que las más bajas por cada letra en la cadena. Tenemos el conteo cuando acabamos de usar también. Podemos ver capitalizados también. Podemos ver cada método que tiene. Y por ahora podemos ignorar los que comenzaron con dos guiones bajos van a mirar en eso más adelante. Aquí podemos ver cada método que tiene. Se puede utilizar como referencia. Puedes usarlo allí, la función dir. Impresionante. Entonces ahora hagamos un recapitulativo. En primer lugar, acerque las experiencias con la mente de un principiante. Siempre habrá un camino que nunca hemos viajado antes y buscamos esos caminos y nunca dejarás de aprender. A continuación, aprendimos que todo en Python es un objeto. Los objetos pueden tener funcionalidad a través de métodos. Cada objeto tiene un tipo, y podemos ver que usando la función type y cada tipo tendrá métodos propios. Los métodos se llaman usando la notación de puntos. Entonces tienes primero el objeto y luego el método con corchetes redondos D. Algunos métodos de cadena son de capital inferior, buen título, tira superior, lstrip, rstrip, count, split, replace. Como mencioné antes, podemos usar una función dir para obtener una lista de todos los métodos en un objeto. Si tenemos alguna pregunta sobre qué hace cada método, podemos buscar en la documentación de Python para esos. Pero vamos a mirar en este curso y los más utilizados una vez en los que más estarías usando, tenemos ahora la sección de entender. El primer aviso es notar lo que se siente al aprender Python por primera vez. ¿ Y cómo puedes llevar esa perspectiva a tus experiencias cotidianas? Siguiente variable llamada myVar y establecerla igual al espacio, espacio espacial. Descubre lo que te gusta el espacio, espacio, el espacio, y usa la función type para obtener el tipo de objeto que es. Luego usa la función dir para obtener una lista de todos los métodos disponibles para ese objeto. Y usa el método de tira de puntos para eliminar los espacios en blanco adicionales de la cadena y reasignó la nueva cadena a mi VAR. A continuación, usa el método replace para reemplazarlo por espacios y reasignarlo a mi var, generalmente título en mayúscula inferior y métodos superiores para ver las diferentes salidas. Impresionante. Ojalá te encuentres un poco desafiantes pero no demasiado desafiantes. Y si tienes alguna pregunta, siempre puedes publicarlas en el chat y estará activo en la comunidad ahí. Gracias de nuevo por ver y te volveré a ver mañana. 10. Día 7 - Concatenación de cuerdas: Bienvenido de nuevo. Hoy siete. Veamos los objetivos de hoy. o menos vamos a ver qué más podemos aprender de la otra fonología. Entonces vamos a buscar en la concatenación de cadenas y finalmente formatear cadenas. Vamos a saltar a la sección de aprendizaje. Entonces volvamos al ELF y a la analogía por un segundo y recordemos que las preguntas son la respuesta. Así que cada vez que generalmente te haces una pregunta con la mente de un principiante, tu cerebro cobra vida con novedad y podrías encontrar caminos por los que nunca pasaste antes. Obtienes una percepción más precisa de la realidad en comparación con la última vez que te hiciste esa misma pregunta. Si te conformas con una sola respuesta, entonces estamos cerrando el toque sobre el aprendizaje porque las respuestas siempre serán un fragmento de esa representación de la realidad. Haz preguntas y escríbalas. Cuando haces preguntas específicas, precipitas tu mente para tomar en las respuestas cuando vengan. Hay una parte del cerebro llamada sistema activador reticular, o RAS, que actúa como portero de la información. Sin ella, nos veríamos abrumados por la gran cantidad de información que tenemos a nuestro alrededor. Por lo que el RAS nos deja enfocar nuestra atención. que puedas pensar en esta parte de tu cerebro como un dispositivo de eliminación y necesitas decirle qué buscarlo. Las preguntas prepararán tu cerebro para enfocarte en las respuestas cuando aparezcan. Así es como le dices a tu cerebro qué buscarlo. A lo largo de este curso, puedes hacerte preguntas como, ¿por qué estoy aprendiendo Python? Y la respuesta a eso podría ser bien ejercitar tu cerebro y hacer nuevas conexiones neuronales, o para ganar más perspectiva sobre cómo funciona el mundo, el mundo digital que nos rodea. O para finalmente encontrar un trabajo de alto pago. Entonces desarrollador, Esas son todas buenas razones. Entonces pregúntate por qué estás aprendiendo Python. Otra buena pregunta podría ser, ¿cómo puedo usar este nuevo concepto que estoy aprendiendo hoy? ¿ O cómo puedo aplicar estos conceptos de aprendizaje acelerado a otras habilidades de mi vida? Entonces es bueno tener todo esto en mente. Y por ahora pasemos al tema Python de hoy. Ahora vamos a mirar en la concatenación de cuerdas. Esto simplemente significa simplemente agregar cadenas entre sí. Estamos agregando cuerdas el uno al otro. Entonces esto es un simple como simplemente usar el signo más. Por ejemplo, puedes usar esta cadena de signo más y luego imprimirla en una cadena. Observe que no tenemos un espacio dentro de él porque no agregamos ningún espacio entre las cuerdas. Entonces, si queríamos espaciar, necesitamos agregarlo literalmente a una cadena para que el espaciado se imprima a la pantalla. También puede tener variables impresas a la pantalla y concatenadas. Por ejemplo, si tenías una variable con un nombre, puedes imprimir. Y luego la variable, se puede ver cómo imprime. ¿ Qué esperamos que lo haga. También podríamos usar el operador estrella para imprimir la misma cadena varias veces. Por ejemplo, si fuiste a imprimir la determinada cadena varias veces, simplemente podrías hacer lo siguiente y obtendrías la cadena varias veces. Una cosa es tener en cuenta sobre la impresión de enteros, por ejemplo, variable a, digamos que es igual al número tres. Si quisiéramos imprimir el número a la pantalla concatenado con otra cadena. Digamos que lo intentamos para imprimir esto, por ejemplo, también satisface a eso. Digamos que tratamos de imprimir variable a la pantalla. Obteníamos un error, un error de tipo, con el mensaje de que sólo podemos concatenar cadena, no entero a una cadena. Entonces me está diciendo que no podemos concatenar un int a una cadena. Para lo que eso significa es que necesitamos convertir esto, este entero a una cadena usando la función string. Ahora podemos ver que lo imprimimos. Lo imprimimos de esa manera. Porque por ejemplo, cada vez que hacemos una cadena de tipo, variable dos, vemos que es una cadena de tipo porque convertimos en una cadena. Sería equivalente a decir tipo string al número tres. Es una cadena porque convertimos la cadena al número tres. También podemos usar el método de cadena de formato para concatenar cadenas. Por ejemplo, tomemos como ejemplo estas afirmaciones. Entonces esta es una cuerda. Y luego cuando usamos formato de punto, llamando al método format, entonces decimos formato. Lo pasamos adentro. Pasamos en valor al método de formato. Entonces el método de formato se aplica a esta cadena. Y luego cada vez que ejecutamos esto, vemos, vale, esta es una cadena formateada. Si hubiera dicho al azar. Vemos que cada vez que lo que entramos método de formato se inpute en los corchetes, también podríamos usar lo mismo. Se puede decir que así es como se introduce valor. Digamos cualquier valor, valor, otro formato de valor, y luego podemos decir 12. Vamos a usar esto como ejemplo. Imprimiría así es como se introduciría un valor uno y el valor dos. Observa como no necesitamos usar el STR, la función STR para transformar o convertir el interior en una cadena más, siempre que usamos una cadena de formato, también podríamos usar referencias dentro de esos corchetes dentro de la cadena. De esta manera. Si dijimos el segundo parámetro posicional es, si ponemos uno aquí. El primero es, y podemos poner aquí un 0, luego obtener formato, y luego 12. Nuevamente. Veríamos que el segundo parámetro posicional es dos. Tenía un error tipográfico aquí, pero hay que decir si T2 y el primero es uno. De nuevo, podemos decir primero. Lo dijimos aquí primero. Segundo. decir que el diámetro es segundo y el primero es el primero. Para que puedas ver, puedes hacer referencia por índices. Índices también si especifica dentro de los corchetes, también podríamos usar una, el método de formato para dar formato al espaciado. Así que tomemos esto por ejemplo, excepto print, y luego pasamos en esta cadena en particular. Entonces usamos el método format y lo pasamos en la cadena uno, cadena dos. ¿ Qué significa? Por lo que el primer número es el índice que vimos en el anterior. Por lo que 0 significa que hará referencia al uno. Entonces uno aquí significa que cada referencia a aquí. Entonces usamos colon. Y tenemos nuestro carácter aquí. Este carácter significa que la alineación es el resto de referencias alineación. Si tenemos un opcode como este, esto significa alineación de centro. Tenemos una flecha derecha aquí, significa alineación correcta. Y si tuviéramos una flecha izquierda, significaría alineaciones a la izquierda. Pero vamos a ver qué da salida esto. Como se puede ver, la primera columna o esta primera línea de espaciado, el espaciado obtendría 12345 porque inputamos cinco aquí arriba. Entonces por otro lado, conseguirá 12345678910 porque eso es sospechar que pasamos y pasamos en el transportista. Es así como puedes usar tal vez si tuvieras una tabla o algo que quisieras introducir con una tabla o algo que obtendrías, podrías usar este tipo de formateo. Cambiemos el ejemplo ahora digamos uno en lugar de dos y luego 0 en lugar de uno. Y digamos que aquí escribiremos espaciado aquí, un espaciado a la izquierda. Pero en realidad no quisiéramos especificar que el espaciado porque ese sería el defecto. Pero veamos qué nos metemos aquí. Impresionante, sí, obtenemos dos en lugar de uno y luego obtenemos uno y podemos escribir espaciado con los diez personajes en total. Por último, probablemente la cadena de formateo más útil e go ball, que es f cadenas. Voy a apuntar el ejemplo. Primero, mi variable y luego aquí quiero salvar una. Porque esa es la variable que creo que habíamos definido previamente. Exactamente. Entonces así es como imprimiríamos var one. Ronaldo. Para que como se puede ver, es simplemente la cadena, pero luego solo, sólo se agrega la f antes. Eso es más o menos. Esa es más o menos una forma bastante simple de escribir y formatear cadenas como simplemente usar el FBI justo antes de la cadena, y luego usar las variables entre corchetes dentro de la cadena real. Entonces hagamos un recapitulativo. Convierte pensamientos y creencias limitantes en algo de empoderamiento, no sé codificar cada día a un codificador mejor impropio. Puede concatenar cadenas y múltiples formas usando el signo más, utilizando el método de cadena de formato o usando F Strings. F strings es más o menos la que más vamos a estar usando, ya que es más o menos la forma más conveniente de formatear cadenas. Y por último, el grabado es una de las formas más nuevas y legibles de formatear cadenas. Por último, vamos a saltar. ¿ Entiendes la sección? Quiero que pienses en una creencia limitada que tienes y cómo puedes convertir eso en unas creencias empoderadoras. A continuación, crea una función llamada saludo que toma un nombre como entrada y luego imprime hey there input name usando el plus para concatenar cadenas. Cambie la función anterior para usar el método de cadena de formato. Cambiar la función anterior usa la cepa S y luego usa un método de cadena de formato junto con el subrayado que, la notación de corchete rizado, para crear una tabla con dos columnas en una fila. Juega con diferentes alineaciones de anchura mínima y textos y mira cómo funciona eso. Sí, buena suerte con estos. Haz cualquier pregunta que puedas tener en la sección de comunidad. Y te volveré a ver mañana. 11. Día 8 - Entrada de Usuario (Números, Integers, Floats, Comentarios): Bienvenido al Día ocho. Entonces veamos los objetivos de hoy. Vamos a ver qué más podemos aprender del valor de la consistencia. También vamos a ver cómo aceptar la entrada del usuario. Queremos mirar en números a enteros y flotadores. Vamos a mirar a los operadores de números. Y finalmente vamos a buscar comentarios y cómo usar los comentarios en Python. Vale, así que utilicemos nuestra imaginación por un segundo. ¿ Estarás en un mes si seguías aprendiendo a este ritmo cada día? ¿ Qué tal tres meses? ¿ Qué tal seis meses? ¿ Qué tal un año? ¿ Qué tal cinco años? La verdad es que te convertirás en un codificador hábil manera más rápido de lo que piensas. El problema es que generalmente no mantenemos una tasa consistente de nuevos aprendizajes cada día. La gran noticia es que lo único que se interpone en el camino entre nosotros y dominar una habilidad somos nosotros mismos. Recuerda que realizamos a nivel de nuestra última recuperación. Debemos acercarnos a la recuperación como hacemos todo lo demás con la mente de un principiante. Así es como aprendemos a escuchar el cuerpo y mantenernos calibrados entre el entrenamiento y pruebas para evitar quemarse, pensar en aprender como un excelente ejercicio para tu cerebro. tu cerebro le gusta la novedad, y eso es exactamente lo que le estamos dando cuando aprendemos algo nuevo. Pero recuerda siempre que el cerebro es como un músculo y el resto del cuerpo, cuanto más lo usamos, más fuerte se pone. Pero sólo mientras encontremos un buen equilibrio entre esfuerzo y recuperación, empujarnos demasiado podría llevar al agotamiento. Escucha tu cuerpo y mantente calibrado. Por eso tenemos días de descanso cada cuatro días de clases. Y si sientes que te estás empujando demasiado y eso está totalmente bien. Simplemente agregue un poco más de descanso, pero recuerde mantenerse curioso y consistente. Así que ten esto en cuenta y pasemos a Python ahora, obtener la entrada del usuario es tan fácil como usar la función de entrada. Sea cual sea lo que ingresemos después de eso, después de eso sería la entrada del usuario. Podríamos asignar esto a una variable. Digamos que en realidad entrada del usuario se utiliza para la entrada. Y luego cada vez que imprimimos entrada del usuario obtendría lo que tengamos de esa variable. También podemos ver que con lo que lo pasemos la función de entrada va a ser el prompt para el usuario. Ingrese entrada. Entonces esta sería la entrada. También podemos ver que como los hemos visto un poco antes en el curso, podríamos usar números en Python también. Si lo haces. Podemos, podemos almacenar enteros, por ejemplo, números como este, como números enteros, cualquier número entero, 567, Hagamos siete. O podríamos hacer mi flotador, que sería cualquier tipo de número con decimales. Se puede ver que se puede ver esto mirando el tipo también, pero cambia. Podemos ver un tipo de entero, pero luego tipo de mi flotador, flotar. La diferencia es que el flujo tiene posiciones decimales y los enteros son números enteros. También podemos tener operadores de números en Python. Entonces vamos a probar esto creando dos nuevos números. Hagamos el número uno igual a dos. Para el número dos igual a dos. Entonces diferentes operadores trabajan en Python. Podemos usar más o menos Python como calculadora. Podrías hacer num1 más num2. Eso sería igual a seis plus normal. Podemos hacer algo menos así que sería igual a, podríamos usar la estrella como multiplicador para la multiplicación, sería de ocho. Podríamos usar la división también. Devolvería un dos. Tenga en cuenta que esa división siempre devolverá un flotador independientemente de si estos dos son enteros, MD basalto es un número entero, pero es, Python aún devuelve un flotador porque la división siempre devuelve un flotador . Por último, ¿tenemos qué? También tenemos la doble estrella exponencial, eso es cuatro veces cuatro. Y finalmente tenemos el modulo que es cuatro dividido por dos. Y entonces, ¿cuál es el resto o cuántos números quedan? Y eso es un 0 porque cuatro divididos por dos no tiene remanente. También vale la pena. Haciendo hincapié en el hecho de que cada vez que se utiliza input, por ejemplo, se pide al usuario que ingrese un número que devuelva una cadena. En realidad se pone bebida. No es un número. Si dijera variable uno igual a entrada, ingrese una entrada. Si dijera Five, por ejemplo, y escribí variable uno, obtendría una cadena. Por lo que es importante notar que obtendrías una cadena en lugar de lo que habrías esperado, que era un entero. Para esto, simplemente, podríamos simplemente hacer variable uno igual a variable uno. Podríamos hacer int variable uno. Reasignamos la variable a una versión int de sí misma. Ahora si ejecutas el tipo de variable uno, diríamos que es un entero, pero solo después de convertirlo a un entero. Y lo mismo aplica para el flotador. Si quisieras convertir la variable uno en un flotador, podrías usar la función float. Entonces verías tipo igual a un flotador. Por último, veamos los comentarios en Python. Para hacer un comentario de una sola línea en Python, solo usarás el signo de libra para hacer un comentario multilínea. Por lo general, la versión de triple cotización. Entonces también puedes usar cotizaciones triples en realidad y señal única que funcionaría también. Entonces comenta, puedes usar una libra para comentario de una sola línea o comillas triples, simples o dobles. Y eso funcionaría perfectamente para los comentarios en Python. Utilizamos comentarios a lo largo de nuestro código rotulador simplemente para documentar nuestro código y asegurarnos de que otras personas que no lo escribieron entiendan lo que está pasando a lo largo del código, y puedan navegar por el funcionalidad del código. Dulce, así que hagamos un recapitulativo. Vimos que la consistencia a largo plazo conduce a avances sobresalientes. Así que asegúrate de mantenerte consistente, viniendo, sigue volviendo. A continuación, vimos que la función de usuario, la función de entrada, se utiliza para obtener entrada del usuario. Y opcionalmente puedes pasar en una cadena que se mostrará al usuario. Python también soporta números, enteros son números enteros y los flotadores tienen decimales. Los operadores disponibles incluyen el operador estrella más menos para multiplicación, bulbos de división, doble estrella para exponenciado y modulo, que es el signo de porcentaje. Puede utilizar las funciones int y float para comparar dos objetos, dos enteros y flotadores respectivamente. Estos son muy prácticos al usar la función de entrada, ya que toma datos en cadena, por defecto, la función de entrada siempre trae una cadena. Tenemos que transformar, transformar eso. Tenemos que convertir eso en un float a un entero para uno que sería un número. Por último, usamos la libra para comentarios y comillas triples para comentarios multilínea. Y por último la sección de entender. Impresionante. Entonces, para hoy, la primera pregunta es, ¿dónde estaría en un año si desarrollas el hábito de un aprendizaje consistente? La siguiente pregunta es definir una función para pedir al usuario que ingrese un número y luego imprime el cuadrado del número establecido en la pantalla. Ahí tienes una pista, podría ser útil. La tercera pregunta es definir una función que pida al usuario que ingrese un número y luego imprima si el número es impar o par. También tienes una pista que podría ser útil. Y luego finalmente, usa comentarios a lo largo de tu código para documentar lo que pasa en pasos de relevancia del código. Eso es todo por hoy, chicos. Si tienes alguna pregunta sobre estas preguntas, asegúrate de hacerlas en la comunidad y te veo mañana aquí. Buena suerte. 12. Día 9 - Condicionales (si/elif/else) y Bloques de código: Bienvenido Hoy Nueve. Los objetivos de hoy tenemos. ¿ Qué más podemos aprender de la repetición espacial? Vamos a mirar a los booleanos, estamos buscando condiciones. Y luego vamos a mirar a los operadores booleanos. Así que vamos a saltar a la derecha en la sección de aprendizaje. Una excelente manera de aprovechar al máximo la repetición espacial es a través del recuerdo activo. El recuerdo activo es lo que sucede cuando se producen las respuestas usted mismo sin ningún material de apoyo haciéndose una pregunta y haciendo el esfuerzo por responderla por su cuenta elimina la ambigüedad entre estar vagamente familiarizado con algo en conocerlo realmente. Esta es una forma extremadamente efectiva de mover la información de la memoria a corto plazo a largo plazo. Esto también está directamente ligado a la repetición espacial porque cada vez que estamos revisitando un tema, estamos participando en la retirada activa. Las secciones de entender de este curso son una gran manera de aprender a través del recuerdo activo ya que tienes la oportunidad de producir respuestas por tu cuenta y fortalecer las conexiones neuronales sobre el tema que eres mirando, siempre y cuando no estés utilizando el material de soporte a menos que sea completamente necesario. El recuerdo activo es una gran manera de comitear o aprender a la memoria a largo plazo. Así que ten en cuenta esto cuando intentes aprender algo nuevo. Por ahora, vamos a Python. Ahora vamos a mirar en declaraciones condicionales. Las declaraciones condicionales son uno de los pilares más importantes de la programación ya que permiten que tu código siga un flujo lógico especificado. Las condiciones están en todas partes en nuestra vida cotidiana. Si tiene hambre, ve a buscar algo de comida, si tiene sueño, ve a la cama, y así sucesivamente. Para usar declaraciones condicionales, utilizamos un tipo de datos específico específico llamado Booleanos. booleano puede ser verdadero o falso, y escribimos el verdadero con una letra mayúscula y falsa con una letra mayúscula también. El enunciado if evalúa una expresión booleana, y si es así, se evalúa como true, entonces el bloque de código se ejecutaría. Entonces en este ejemplo asignamos valor booleano de true, la variable llamada hambriento. Y luego dijimos si tiene hambre, entonces ejecuta este bloque de código. Desde hambriento igual a verdad. Y cuando presionamos Entrar aquí, vemos la impresión. Imprimir conseguir un sándwich a una pantalla. Es lo que sucede y lo que atraviesa el bloque de código. Resulta que también podemos usar junto con la declaración if, podemos usar una declaración if else, si, un estado else en 12. Entonces veamos el ejemplo de, sabemos que teníamos la variable hambrienta que es igual a verdad. Vamos a agregar una variable perezosa y asignarla a false. Ahora, vamos a usar una declaración if y vamos a decir si perezoso, perezoso. Entonces vamos a decir print, no haciendo nada. Pero entonces vamos a decir L si, si no, si falta el colon, lo siento, déjame decir colon. Hambriento. Imprimir, conseguir sándwich. De lo contrario. Se puede imprimir. Digamos si nada más, nada Falso, False a través de cualquiera de estos, estos condicionales, entonces caerá a la declaración else. Podemos ver ahora mismo que entra en LF porque dice si perezoso, que es igual a falso, entonces se remonta a los hambrientos. Y luego dice, vale, no soy perezoso y tengo hambre. Voy a ir por un sándwich. Y se puede ver conseguir un sándwich. Los objetos también pueden evaluar a verdadero o a falso. En pocas palabras, piense en cualquier cosa que pueda estar vacía o un non lo evaluaría como falso. Todo lo demás se evaluaría a verdad. Si dijera si ninguno, esto lo imprimiría porque si ninguno. Pero si has dicho si cadena vacía, por ejemplo, imprime esto, también se imprimirá porque es una cadena vacía. 0. Imprima esto. En este caso, tampoco lo imprime porque no lo hizo 0. Y finalmente si, pero si tenemos, por ejemplo, esta impresión de cadena que podemos ver que lo imprime porque es, es algo y está lleno de algo. Así que casi todo lo que es ninguno o vacío o 0, lo que evaluará como falso y todo lo demás se evaluaría como verdadero. También hay lo que se llaman operadores booleanos que resultan en un valor booleano. Estos operadores son iguales. El mayor que, mayor o igual a, igual a, y así sucesivamente. Por lo que corremos los ejemplos. Así que vamos a añadir una variable un número, vamos a hacer dos y luego variable a igual a cinco. Si dijera si variable uno es igual a variable para imprimir, digamos esto. Vemos que no se imprime porque no es igual el uno al otro. Y si dijéramos que son mayores que la variable uno, mayor que la variable dos. Ahora veremos que tampoco se imprime porque dos no es mayor que, cinco, mayor o igual a. Sabemos que tampoco va a imprimir. Entonces vamos a decir, bueno, digamos menos que. Vemos que imprime esto. También podemos hacer menos o igual a. Esto, también se imprimirá esto. Y por último, podemos decir no igual a, que es un signo de exclamación y un signo igual. Podemos ver que también imprime esto. Otros operadores booleanos AND O y NO. Para ver si miramos en estos y x2, si digamos verdadero y verdadero, imprimir. Digamos que imprima esto. Por supuesto, sub-frames porque verdaderos y verdaderos ambos. Pero, ¿y si dijéramos si es verdad y falsa? No imprimiría nada porque necesitaríamos que ambas condiciones fueran ciertas para que la cantidad de la condición exterior fuera cierta. Digamos si es verdadero o falso. Imprima esto. Y entonces podemos decir, está bien, imprime a esto, que es perfecto, lo que tiene sentido porque queremos o el otro, necesitamos uno u otro para ser verdad para evaluar como verdad. Entonces podemos ver que éste es cierto para que la vista sobre la alternativa evaluaría todo es cierto. Por último, el operador NO. Lo que hace es que si pones al operador no antes que cualquier valor, lo hará, revertirá donde evalúe los anuncios. Por ejemplo, si dijera si no es cierto o falso, imprima esto. ¿ A qué crees que esto evaluaría? ¿Exactamente? No imprimiría esto porque si se puede pensar esto como decir falso o falso, ambos son falsos para que no imprima nada. Por lo que el orden de operación es el operador NO va en primero, evaluar este primero evaluando no es cierto. Entonces va el operador final, y luego va el operador OR. También es útil saber que el final y los operadores OR, devuelven el valor que representa lo que el valor booleano debe representar. Por ejemplo, si tuviera esto, digamos algo vacío. Devolvería la cadena vacía porque eso es lo que representa. Representa de falsey o un valor falso. Debido a que esta expresión se evalúa como false, esta expresión devuelve el valor que representa esa falsedad. Por ejemplo, si tuviera esto y aquello, devolvería eso porque es el último que evalúa, pero vuelve, pero sigue representando un verdadero valor al final. Porque por ejemplo, si tuviera, por ejemplo, esto o aquello representa esto, porque esto ya pero ya representa un verdadero valor. Entonces devuelve, uh, esto, este valor. Pero si lo tuviera, digamos esto, o digamos, vamos a tener uno vacío para eso. Entonces representará, devolverá ese valor. Porque éste es el que representa lo verdadero. Si tuviera ambos vacíos, devolvería solo una cuerda vacía, una vacía, la vacía. Esto es útil en algunos casos. Verás más adelante en el proyecto, lo usaremos en una de las declaraciones que podrían ser útiles saber. También puedes usar una función booleana, la función bool, para ver si un argumento que pasa en lo que evalúa el tamaño. Por ejemplo, si hago esto, sabes que es verdad. Si estamos haciendo referencia a uno de los otros ejemplos que hicimos esto y que podemos ver que evalúa como cierto esto y eso devolvería eso. Eso sería lo mismo que decir booleano de eso, que se evalúa a verdadero. También hay una forma abreviada de escribir una declaración if. Lo escribes así. Digamos fuego. Es verdad. De lo contrario. Se puede ver si esto es cierto. Vuelves sitios de bomberos. Esta es una forma de escribir una taquigrafía. Taquigrafía si declaración podría ser útil siempre que no necesite el otro. La forma más larga de escribirlo. Fuego. Si es falso, elseif, fuego falso, lo contrario hielo, vamos a conseguir hielo en otro lugar. Impresionante. Entonces hagamos un recapitulativo. recuerdo activo es la acción de producir activamente la respuesta usted mismo sin ningún material de apoyo. Aquí hay una forma extremadamente efectiva de mover la información de la memoria a corto plazo a largo plazo. Tipo de datos booleano que puede ser verdadero o falso. Y recuerda que eso es k sustituido. Los condicionales le permiten crear un flujo lógico de forma lógica en su programa usando if, elif y else. Los operadores booleanos devuelven un único valor booleano. Por lo que el signo igual, igual mayor que, mayor o igual a, menor que, menor o igual a, no igual a. Y luego, Y, O, y NO. Los operadores devolvieron un valor que evaluaría como la línea de fondo booleano. Por ejemplo, si dijeras esto y pensaras, por ejemplo, si dijeras esto y una cadena vacía, obtendrías devolver la cadena vacía porque la cadena vacía representa ese valor falso. Y luego podrías usar la función booleana, la función bool, para devolver el equivalente booleano a lo que lo pases en ella. Por último, vimos cómo escribimos declaraciones taquigrafía si. Y podemos lucir algo así. Fuego, si es cierto, de lo contrario hielo y esto devolvería fuego. Por último, aquí tienes la sección de entender. Entonces los ejercicios para hoy, no voy a leer a través de ellos hoy ya que son demasiado largos y creo que este video ya es un poco para ofrecer hoy, pero asegúrate de mirar al fan. Buena suerte con esto. Si tienes alguna pregunta, siéntete libre de dejar esas preguntas en el chat y estaremos activos en la comunidad. Son tan buena suerte y te veré mañana. 13. Lección 10: Hoy tenemos otro día de descanso. Hemos estado empujando nuestros límites desde hace varios días seguidos ahora. Por lo que hoy vamos a internalizar lo que hemos aprendido hasta ahora y descansar un poco. Por hoy, te pediré que vuelvas a las lecciones que puedas sentir mis necesidades, algunos revisitando y miren cualquier pregunta que puedas tener. Aprendemos mejor a través de la acción. Así que asegúrate de hacer cualquier ejercicio que pudiéramos haber perdido hasta ahora. Una vez más, tardaré un segundo para recordarles la clave para aprender que hemos visto. Para preguntas o el unsere, cuando te vuelves radicalmente abierto de mente, empiezas a hacer muchas preguntas. Las preguntas son la respuesta si vas ahí, siempre son enriquecedoras. Superamos creencias limitantes al hacer preguntas constantemente y el estrés probándolas al mundo real a través de la acción para la consistencia. Es difícil ver el progreso de inmediato sobre una base diaria. Recuerda que es fácil caer en la ilusión de que no estás mejorando cuando en realidad me mejora extremadamente rápido. Si sigues regresando, te sorprendería lo que logras. Y por último, para la repetición espacial, podemos aplastar la curva de olvido no solo familiarizándonos con los conceptos, sino también guiados por participar en lo que es recuerdo activo y el espaciado aquellos a través del tiempo. Eso es todo por hoy. Así que ten un buen día de descanso y te veré mañana de vuelta aquí. 14. Día 11 - Funciones (2/2): Bienvenido al Día 11. Veamos los objetivos de hoy. Primero. ¿ Qué más podemos aprender de saber que las preguntas son la respuesta? Entonces vamos a mirar el concepto DRI. No te repitas. Además, las funciones son argumentos de palabras clave de función y luego funcionan valores predeterminados y devuelven objetos de funciones. Y por último, vamos a buscar argumentos y argumentos palabras clave como los argumentos como una función. Así que vamos a saltar a la derecha en la sección de aprendizaje. Para la sección de aprendizaje, tenemos que las preguntas son poderosas. Recuerda que están vivos, son enriquecedores y ahí para siempre en el momento presente. La misma pregunta, más mente de un principiante equivale a nuevos conocimientos. Recuerda siempre un sentido decir que el mayor obstáculo para aprender es la creencia de que ya lo conoces. Así que mantengamos redes curiosas mantengan una mente abierta. Como vimos antes, las funciones nos permiten utilizar el mismo bloque de código varias veces a lo largo de nuestro código. Esto es útil siempre que necesitemos realizar la misma acción varias veces. No queremos que nos repitamos. Esto es importante, no queremos repetirnos. Y en la programación, la idea de no repetirse se llama qué seco, lo que se llama la codificación seca. Por lo que queremos mantenernos secos al codificar. Para esta lección, vamos a empezar a usar VS Code, Visual Studio Code. Para abrir esto, basta con mirar sus aplicaciones y buscar Visual Studio Code. Fundé así y ¿cómo se abrió así? Y sólo abriré un archivo, archivo dot py. Habíamos visto antes. Podemos definir una función de la siguiente manera. ¿ Verdad? Para que podamos definir mi función y utilizarla como pase. Y luego simplemente llamas a esta función diciendo mi función y llamándola usando los corchetes redondos. También vimos cómo podríamos usar argumentos opcionales, son parámetros opcionales a la función. Entonces usa estos dentro de la función. Podríamos haber hecho esto en lugar de usar el pase. Entonces ejecute mi función y luego tendríamos que introducir aquí hay algunos argumentos que otros. Entonces podríamos ejecutar esto y veríamos esto, aquello y otros. Pero mira lo que pasa si ciertamente no he ingresado uno de los argumentos, golpeo Guardar y luego ejecuto esto, obtendré un error. Diría un error de tipo. Mi función falta una requerida, falta un argumento posicional requerido, argumento tres. Esto se debe a que habíamos declarado anteriormente que necesitábamos este argumento a un 100% una vez que nos quedaremos así. Otra forma en que podríamos escribir esto es decir argumento tres equivale a valor falso. Esta será una manera de decir como si, si el argumento no se pasa a la función, entonces asigne este valor predeterminado a ella. Así que cada vez que ejecutaríamos esto, veríamos esto que y luego valor predeterminado. También podría llamar a la función usando lo que se llama argumentos de palabras clave. Podrías especificar aquí abajo. Por ejemplo, se podría decir Argh a igual a eso. Entonces son, digamos tres iguales a otros. Por último, ganó igual a esto. Entonces podrías ejecutar esto. Se puede decir esto, aquello y otro, aunque lo hicieras, pero aparte de esto, pero ya que usamos argumentos de palabras clave, que es especificar las palabras clave y los argumentos. Podíamos ver que obtenemos el orden que queríamos. Otra cosa útil de las funciones es que puedes devolver valores usando desde una función. Por ejemplo, digamos nums, y luego dices num uno. Núm dos. Podríamos devolver un valor de esta función. Y podríamos decir, digamos num uno. Digamos realmente resultados iguales a num1 más num2. Y entonces sólo podemos devolver el resultado. Esta es una forma de usar una función para devolver un valor para nosotros. Entonces si dijimos, Adnan, dijo 510, entonces si ejecutamos esto, veremos que no nos imprimimos nada a la pantalla porque el Cuando ejecutamos la función, no contiene nada. No imprime nada en la pantalla. Solo ejecuta esto y luego devuelve este valor a la pantalla. Pero si dijimos, si dijimos print, lo que se devuelve de esa función, entonces cada vez que ejecutamos esto, debemos conseguir el número 15, que es lo que esperábamos. Declaración Return devuelve un objeto o una serie de objetos de una función. También puede crear funciones que tomen argumentos arbitrarios o argumentos de palabras clave arbitrarias mediante el uso de la siguiente notación. Entonces usa una estrella y luego args, doble estrella y una palabra clave args de esta manera. Y lo que esto haría es que cada vez que tú, siempre que llames a esa función, digamos mi función. Se podría decir lo que sea, sea cual sea la cantidad de argumentos que queramos pasar, tomará como argumentos, como se puede ver aquí. Entonces si decimos palabra clave nuestra o lo que sea, digamos var 11, este sería un argumento de palabra clave. Y luego Val dos, este sería otro argumento de palabra clave. Entonces cada vez que pasamos en estas cantidades arbitrarias, eso puede ser número arbitrario de argumentos en este número arbitrario de argumentos de palabras clave, ejecutamos esa función. El funcion lo que nos llevaría a Tuple para los argumentos y el diccionario para los argumentos de la palabra clave. Y quiero que mantengas esta pregunta en mente, vale, qué es una tupla y una vez un diccionario, porque los veremos pronto. Pero por ahora es lo único importante saber es que se puede proporcionar un número arbitrario de argumentos. Bueno ahora intentaremos número de argumentos de palabras clave usando lo siguiente. Una notación estrella y una notación de dos estrellas. También ten en cuenta que puedes decir este apareamiento aleatorio, puedes llamar a esto aleatorio. Seguirá funcionando. Pero seguirá funcionando. Pero es convención, digamos args y hashtags de palabras clave como este. Impresionante. Entonces hagamos un recapitulativo. Las preguntas están vivas y siempre enriquecedoras para siempre en el momento presente. Tenemos que decir curiosidad en con una mente abierta, con la mente del principiante. Y de esa manera seguiremos aprendiendo. Las funciones nos permiten mantenernos secos. ¿ Qué codificación? No te repitas. Las funciones no pueden tomar argumentos requeridos. argumentos posicionales son argumentos opcionales. Al agregar una palabra clave con un valor predeterminado. Las funciones pueden devolver cualquier tipo de objeto. A pesar de sus funciones. Podemos usar los args estrella y esta palabra clave de doble estrella args. Notación 12 funciones excepto en número arbitrario de argumentos y argumentos de palabras clave respectivamente. Por último, echemos un vistazo a la sección de entender para hoy. ¿ Cuál es el mayor obstáculo para aprender? alambre cuestiona la contestación? Después defina una función que acepte un argumento predeterminado y lo imprima la pantalla llamada función, proporcionando el argumento y no proporcionándolo también. Defina una función que tome un número arbitrario de argumentos, args, y un número arbitrario de argumentos de palabras clave, argumento de palabra clave, e imprima el número. Imprime los dos objetos resultantes en la pantalla. Y entonces no te preocupes si no sabes cuál es la estrella óptica, aprenderemos de esos pronto. Y por último, crea una función que devuelva un objeto, asigne el objeto devuelto a una variable, e imprima el objeto en la pantalla. Pero impresionante, Eso es todo por hoy, chicos. Estas son las preguntas y luego si tienes alguna pregunta al respecto, así que no dudes en preguntar en el chat y la comunidad estará activa. Son tan buena suerte y te volveré a ver mañana. 15. Día 12 - Listas, Rangos, Clasificación: Bienvenido al Día 12. Entonces los objetivos de hoy, tenemos que ¿qué más podemos aprender de la consistencia y empujar nuestros límites cada día? Entonces vamos a buscar en lista, dos métodos de lista en estas rodajas y finalmente en rangos. Hoy el tema principal serán las listas. Así que vamos a saltar a la derecha en la sección de aprendizaje. Primero, quería tomarme un segundo para imaginar donde no estarías en un año partir de ahora si haces que el tamaño de mordedura sufriera cada día, el medio líquido 1% mejor en Python, resulta que puedes hacer estos esfuerzos de tamaño de bocado de hábito y luego terminaron disfrutando realmente de ellos. Eso es exactamente lo que estamos apuntando a Amy para que haga con este curso, ojalá mostrarte que aprendizaje puede ser divertido y que podemos crecer cada día donde realmente disfrutamos del proceso día a día. A continuación, tenemos esa lista en un tipo de datos que se utiliza para almacenar artículos pedidos en una variable. Las listas son mutables, lo que significa que puede actualizarlas agregando o eliminando elementos individuales a la lista. Los elementos de la lista se pueden mezclar final de cualquier tipo de datos, incluyendo otras listas. Echemos un vistazo a lo que estamos hablando aquí. Para crear una lista, simplemente usamos la siguiente notación. Utilizamos corchetes. Mi lista sería esta. Y luego para agregar ítems a esto, simplemente agregamos ítems y los separamos, uh, usando comas, el ítem dos, etcétera sería una definición de lista. Si dije imprimir mi lista la pantalla y luego presionar Ejecutar, vemos que la lista se imprime en una pantalla. Podemos ver que por los corchetes y que esto sería en realidad una lista. Si queríamos definir una lista vacía, simplemente creamos una lista y la asignamos a corchetes sin nada dentro de ellos. Cuando ejecutamos esto, ejecutaríamos esto y veríamos que devuelve una lista vacía. Las listas tienen índices. Y de la misma manera que cuando hemos hablado de índices con cadenas que nos referimos con corchetes y el número de índice. Hacemos lo mismo con las listas. Y de la misma manera que una lista, el primer ítem sería el índice ceros. Están basados en cero. ¿ Y si dijéramos esta declaración? ¿ Qué crees que va a imprimir en la pantalla? Vamos a ejecutar esto. Y obtenemos el ítem uno exactamente porque estamos haciendo referencia al índice 0 o para enumerar de la misma manera que con cadenas podríamos decir índices negativos. Y conseguiremos lo mismo que esperábamos de las cuerdas que obtendríamos el último número. A continuación, vamos a buscar un par de métodos de lista. En primer lugar, vamos, veamos el método append. Si ejecutamos mi lista, añada un nuevo elemento y el elemento, luego imprime mi lista. Veamos qué pasa cuando ejecutamos esto. Obtenemos la misma lista con el ítem anexado. Lo que hace el método append es que agrega el elemento que ingresa en el método append al final de la lista. También podemos tener una, también tenemos un inserto, método de inserción. Primero le decimos el índice, luego insertamos, insertamos el elemento, luego el ítem, y luego volvemos a imprimir la lista. Veamos qué pasa. Vemos que se inserta como el primero, como el ítem Número Uno de la lista. El ítem con el número de índice Uno de la lista. Por lo que obtenemos el artículo luego el elemento incierto, el ítem dos, etcétera, y luego el nuevo elemento. A continuación, también podemos ver que podemos, podemos eliminar elementos de una lista mediante el uso de la declaración DDL, esa declaración delete. Podemos decir borrar mi lista. Nuevamente, tendríamos que hacer referencia a algún ítem con un índice. Entonces cuando lo imprimimos, mi lista, veríamos el ítem uno y luego etcétera Sin el ítem dos, también está el remove, el método remove, mi lista, eliminar. Entonces podrías buscar un artículo por lo que es. Se puede ver eliminar, imprimir mi lista. Entonces corre esto. Entonces se pudo ver que eliminó los elementos de esa lista. También tenemos el método prob. Y lo que éste hace es que borre o que elimine el último ítem de la lista. Se lo devuelve. Siempre que hago mi lista pop, sí imprimo mi lista. Lo que haría es que verías que no tendría el etc Dod la última vez hasta esto, tiene el ítem uno y el ítem dos, pero no el último ítem. Si dijera print, mi lista pop, vería el etc. impreso y luego la lista, porque lo primero que estoy pintando aquí es un comando de mi lista pop. Y sabemos que este método lo elimina y lo devuelve. Y ya que, desde que devuelve el último ítem de la lista, y se devuelve eso también. Cuando tratamos de imprimirlo, vemos que el artículo se imprime en la pantalla. Y luego cuando imprimimos la lista, vemos que la lista ha sido modificada y no tiene el etc. en ella. También tenemos lo que se llaman listas rebanadas. Así que ejecutemos el siguiente comando. Mi lista, y tenemos su debido de 0 a 22. Lo que esto hace es que se inicia en 0, en el índice 0 y termina el índice dos. Y eso es de eso. Podemos ver que consigue arranques e incluye un 0. Pero luego se suma también con el índice de uno. Y luego cuando llega al elemento con el índice de dos, no se incluye. Por lo que incluye el primero, pero no incluye el, el número más alto, el número superior. Hagamos otro ejemplo. Veamos qué pasa si lo imprimimos esto, ponemos entonces establecer tres por ejemplo, y luego uno. Cuando corrimos esto, nos pondríamos bien, empezamos en uno y luego terminamos a las tres sin incluir los tres. Los tres serían los etcétera así es como funciona Lexus. Entonces también podríamos decir si no especificamos un número, solo dice que van todo el camino hasta el final. Cuando ejecutamos eso, vemos que comenzó a las 0 y simplemente va todo el camino hasta el final. Podríamos hacer esto al revés. Entonces podríamos decir, empezar todo el camino desde el principio e ir todo el camino hasta el número tres, digamos. Entonces esto significaría que empieza desde el 0, comienza todo el camino desde el principio. Y luego va todo el camino hasta tres con el pulgar incluyendo tres porque recordar tres serían los etcétera porque 012 y luego tres y no incluiría el etc.. Eso es lo que son las rodajas de cuerda. También puedes usar estos. Digamos por ejemplo, si fuiste a conseguir los dos últimos números, por lo que de nuestra lista, podrías ejecutar lo siguiente. Se puede pensar en formas ingeniosas de usar estas diferentes formas. Y entonces incluso si no asignaras ningún número único, obtendríamos toda la lista. Porque es todo el camino desde el principio, yendo todo el camino hasta el final. Estamos viendo cómo las listas son objetos mutables para que podamos cambiar nuestro objeto. Echemos un vistazo a la idea de mi lista por un segundo. Usaríamos el ID de mi lista. Entonces ejecutamos esto y obtendríamos lo que necesitamos para imprimirlo. Por supuesto, imprime la idea de mi lista. Conseguiríamos un número para la idea de esto, mi lista. Y si quisiéramos crear una copia de mi lista y hacer un cambio a la copia de mi lista. Hagámoslo. Podemos pensar intuitivamente como si quisiéramos crear una mi lista, copiar, podríamos decir intuitivamente, bien, sólo copiar mi lista y hacerla igual a mi lista. Entonces, ¿y si lo imprime? Mi lista, copia mi lista. Copiar. Perfecto. Ok. Estoy obteniendo el ítem 1203, punto tres, y etcétera Así que estamos consiguiendo la lista, la copia de mi lista, funciona como se esperaba. Pero ahora digamos que queremos hacer un cambio. Nosotros, en lugar de imprimir mi esta copia, digamos que no iban a imprimir mi copia de lista y luego vamos a bombear de mi lista de copia. Estamos haciendo un cambio a mi copia de lista. Entonces digamos cuándo, cuando nosotros, cuando ejecutamos esto, nos ponemos etcétera, que es como se esperaba. Pero luego imprimimos mi lista. El original mi lista. Terminamos con imprimiendo el original mi lista. Vemos que mi lista también había sido modificada. Menos la milista original ha sido modificada también en el etc. se ha hecho estallar de esa lista también. Entonces, ¿cómo creamos una copia sin, sin alterar ambas listas? Porque lo que sucede aquí es que la imagina cualquier ID que tengamos en mi lista, asigna esta variable, solo asigna una etiqueta al mismo objeto. Por lo que sólo tenemos un objeto, que es esta lista. Y cuando tratamos de crear una copia, simplemente agregamos una etiqueta al mismo objeto. Cuando creamos aquí la acción pop, salimos a lo que este nivel apuntara. Señaló el objeto original, que fue éste. La forma correcta de hacerlo sería, hay un par de deseos, dos formas en que podemos usar aquí una rebanada de lista. Lo cortamos así. De esa manera cada vez que corremos, ejecutamos esto, obtenemos toda la lista como se esperaba. Haríamos hojaldre de marionetas de la copia, pero lo guardaríamos en el original. O podríamos usar la copia. Copia este método. El ejemplar, este método. Ahí vas. Entonces así es como copias una lista a otra lista. Y entonces ahí es donde haces cambios en una copia sin hacer cambios en tu objeto original. Recuerda que podríamos usar el método dir para obtener todos los métodos son todos los métodos de un objeto o un tipo óptico. En este caso, cuando lo ejecutamos, al menos podemos ver todos los métodos del tipo de datos de lista. Aquí tenemos como hemos visto un par de estos ya. Hemos visto la bomba, vimos apéndice, vimos el inserto. Ahora veamos uno más. Veamos el, vamos a ver. Veamos el índice un método de índice. Si ejecutamos mi lista, digamos imprimir mi índice de lista, entonces qué introducimos aquí sería un valor. Digamos que yo, el ítem a lo que devuelve es el índice donde vive ese valor. Si agregamos Apple, Apple, auto, elefante, etcétera Si quisiéramos mirar dónde estaba el elefante, simplemente correríamos esto y te dirá el índice dónde va a tener valor el elefante. Y si no hay nada, tienes valor de entrada que no está ahí, recibirías un error de valor. Nada no está en la lista. Obtendríamos un error de valor para ese. Entonces, ¿qué pasa si miramos, digamos el método sort por ejemplo. ¿ Y si lo hiciéramos ordenar? No pondríamos nada. Entonces no imprime ninguno porque este método sort no devuelve nada, por lo que no necesitamos la función de impresión para ellos. Hagamos una función printf de lo que la mylist, ¿cómo se ve mi lista? ¿ Antes de hacer una acción en mi lista? Entonces vamos a financiar esto. Y cuando decimos Ok, estamos consiguiendo auto de Apple, elefante, etcétera porque en realidad éste ya estaba ordenado, a, B, C, D, E, F, G. Sí, ya está ordenado. Entonces digamos, vamos a cambiar estos dos. Añadimos ese ejemplo, luego obtenemos los mismos procariotas superiores y etcétera porque ese método de clasificación realmente lo ordena. Éste vale la pena señalar que es diferente de la función ordenada porque podrías imprimir mi lista ordenada. Podrías imprimir el ordenado mi lista sin clasificar y con el método. Y éste imprimiría la lista ordenada. Y luego cuando imprime esto por sí mismo, se puede ver que no está ordenado. El método ordenado es diferente. El método sort es diferente de la función ordenada. También podemos ver que podemos usar la función Len para ver cuál es la longitud de la lista. Podemos ver que la longitud es de cuatro. Y finalmente, echemos un vistazo a los rangos. Alcance. Simplemente usarás la función range para crear un rango y luego organizando simplemente, digamos que hacemos rango cinco. Está arreglado pasaría del número 0 al número cinco sin incluir el número cinco. Por lo que nuestra gama es un tipo por sí mismo. Bueno, podríamos usar la función list para convertir los arreglos en una lista. Esto nos daría una lista del rango 01234, excluyendo los cinco. Naranja. Si ingresamos uno, solo un valor, sería el encuadernado superior. Si ponemos un dos valores, digamos 15, sería el límite inferior y el superior. Hagamos una lista. Este rango va de uno a dos a cinco. Entonces, ¿qué crees que esto saldría a ser? Si estamos haciendo uno, será diferente a éste, ¿verdad? Sí. Dónde querríamos 234 excluyendo los cinco. Y también tenemos una última forma de usar un rango que está introduciendo tres valores. Uno, tomemos cinco. Y luego digamos un tercer valor, que es el es cuántos incrementos pasa el valor. Por lo que sería de uno a cinco incrementándose en dos. Por lo que pasa de uno a números más tarde es tres y luego a cinco con cinco. ¿ Y si dijéramos todo el camino a 20? Obtendríamos 135, todos los números como incrementarse en dos todo el camino a 20 sin excluir, sin incluir el número 20. También hay tres funciones más útiles que podemos ver que no están relacionadas con las listas también. Tenemos la función Min, la función max, la función sum. Por lo que estos son bastante intuitivos. Y si, como si dijéramos, digamos mi lista igual a lista de rango 120, incrementándose en dos. Entonces mi lista sería una similar que hicimos arriba. Pero entonces, ¿y si dijéramos mínimo de mi lista conseguiría uno como se esperaba? Si no fuéramos máximo de mi lista, obtendríamos que obtener 19. Y entonces si hiciéramos el algunos de mi lista, obtendríamos un 100 porque yo sería la suma de todos los números de esa lista. Impresionante, así que hagamos un recapitulativo. Los esfuerzos del tamaño de la mordida cada día conducen mejoras del 2% que se componen con el tiempo. Las mejoras por ciento son exactamente las que conducen al crecimiento exponencial a largo plazo. A continuación, vimos que una lista es un tipo de datos. Utilice los artículos ordenados almacenados en una variable. Las listas son mutables, lo que significa que su contenido puede cambiar para que su DNI siga siendo el mismo. Definimos una lista utilizando la siguiente sintaxis. Y pueden contener una combinación de cualquier tipo de datos, índice de lista de referencia utilizando la notación de corchete. Y luego los índices negativos hacen referencia a elementos que van al revés desde el último ítem. También vimos estas rebanadas. La siguiente sintaxis se usaría dondequiera que quisieras crear un nuevo objeto con una copia de mi lista. Entonces también vimos un montón de nuevos métodos de lista, incluyendo los siguientes. Recuerda que podríamos usar la función incorporada para ver una lista completa de todos los métodos en el tipo de datos. También vimos las funciones incorporadas utilizadas para esto, como terreno ordenado, min-max, y algunas. También creamos rangos utilizando la función incorporada en el rango. Y vimos cómo podemos, podría convertir rangos en esto usando la función incorporada de lista también. Suecia, por fin, aquí tenemos la sección de entender. Recuerda la importancia de la sección Entendimiento. Creo que la parte más crítica de los cursos. Si puedes hacer todos los días de la sección de entender, menos entiendes lo que estamos completando a lo largo de cada día. Entonces aquí tienes la sección de hoy. Tienes alguna pregunta para estos. Siéntete libre de dejarlos en la sección comunitaria o en el chat y ahí estaremos activos. De lo contrario, buena suerte con esto y espero verte de vuelta mañana. 16. Día 13 - Loops: Entonces bienvenidos al día 13. Para los objetivos de hoy tenemos cuáles son los beneficios de aprender y empujar nuestros límites, y ¿cómo evitamos quemarnos? Entonces vamos a buscar en for-loops así como loops while. Y luego el continuum, la declaración de break, y finalmente la declaración. Saltemos a la derecha en la sección de aprendizaje. Sabemos que el aprendizaje implica novedad. La novedad es más o menos como hacer ejercicio a nuestros cerebros. Porque cuanto más usamos nuestro cerebro, más fuerte se pone mientras estemos calibrados. Y por calibrar, quiero decir que porque si empujamos nuestros límites y nos empujamos demasiado, podríamos quemarnos potencialmente. Por eso hemos presionado estados cada cinco días para poder recuperarnos y revisar lo que estamos aprendiendo. Y evitamos quemarnos. Para mirar en for-loops, sabemos que la sintaxis para crear un for-loop es la siguiente. Cuatro artículos en terrible luego ejecutan el bloque de código. Dentro de esto. En este caso, el ojo terrible puede ser cualquier tipo de objeto que tenga, que se pueda iterar a través. En este ejemplo. Si, por ejemplo, si tuviéramos una variable con una cadena en ella, y podemos decir por ítem en la variable jugador, imprima, digamos imprimir elemento solo para ver qué haría esto. ¿ Y si lo hiciéramos iteré a través cada elemento en una variable de cadena. Veamos qué pasa. Vemos que pasa por cada letra, que es más o menos donde habríamos esperado más por cada letra y la imprime en la pantalla. También tenemos otro tipo de bucle que se llama bucle while. Y la sintaxis es la siguiente. Mientras pasa condición. Esta es la forma más sencilla de decir mientras alguna condición que evalúa a un valor booleano, ya sea true o false. Si bien es cierto. Esto se va a ejecutar mientras que true, y luego el bloque de código se va a ejecutar. Entonces hagamos un ejemplo y digamos, vamos a crear una variable de recuento. Digamos contador igual a 0. Y digamos mientras cuente menos o igual a cinco, imprima. Ahora cuando ejecutamos esto, también necesitaríamos agregar conteo igual a contar más uno. En Python, hay una forma más sencilla de sintaxis para escribir esto. Una sintaxis más simple como esta, que es contar más igual a una. Simplemente agrega uno a contar. Y representa lo mismo, que lo mismo que escribo una psicodélica, esa misma cosa que escribieron hace un segundo. Vamos a correr esto y ver qué pasa. Impresionante, Eso tiene sentido. Entonces vas a contar 0 y luego cuenta uno. Entonces, si bien esta condición es verdadera otra vez, un recuento es igual a uno. Después vuelve a correr, lo vuelve a ejecutar, y correrá un total de seis veces hasta que el conteo sea igual a seis. Y entonces es entonces cuando dejará de correr. Así es como vamos a correr un bucle salvaje. Pero ahora veamos un ejemplo de si olvidamos agregar la alteración de la variable conteo. Si hicimos esto y lo ejecutamos, vemos que el código se está ejecutando infinitamente. Nunca se pegue. Ahora dejará de correr porque tu condición siempre te evaluará a verdadero. Si este es el caso en que esto te pasa, simplemente ejecuta el control C. Hará una interrupción del teclado e interrumpirá el funcionamiento de tu código. Si alguna vez creas un bucle infinito o si quieres interrumpir la ejecución de tu código, simplemente puedes ejecutar la interrupción del teclado y el código comenzará de ejecutarse. También hay dos comandos que podemos usar para dentro del while y para bucles. Estos comandos los van a escribir en un comentario aquí arriba. Continuar y continuar y romper. Lo que hacen estos es que, por ejemplo, si el conteo más igual a uno, vamos a añadir, por ejemplo, aquí, eso es triste, una declaración continue. Y luego agreguemos imprimir, imprimir, contar. Ya se puede ver cómo se ve gris esto. Ya no tiene colores es porque la declaración continue, lo que hace es que se salta todo. Eso es más suave, y simplemente corre al, el, el while, the while o the for-loop nuevamente desde la siguiente iteración. Simplemente hace esta próxima iteración de inmediato. Si fuera a anotar esto y luego ejecutarlo, ejecuta un bucle infinito con solo Hayes porque nunca llega al recuento de impresión y nunca llega al recuento más una declaración. Así que voy a interrumpir el teclado. Sí, eso es lo que hace la declaración continua continua continua. Va a la siguiente iteración. Si hice esto por otro lado, se quitan el continuum de ahí. Correrá 0, oye uno, o al otro lado. Hey 0, A1, A2, A3, A4, A5. Y luego cuando es odio seis, no lo hace, esto ya no se evalúa como cierto y simplemente deja de correr y sigue corriendo el resto de ellos. El código. Entonces veamos la declaración break. Eso es simplemente agregar declaración aquí abajo que dice si cuenta igual a tres, luego romper. ¿ Para qué fue esto? Lo que la declaración break, lo que hará es simplemente dejar de ejecutar el código salvaje o el bucle salvaje o el for-loop por completo. Si ejecutara esto, esperaríamos que se ejecutara cada vez que llegue a tres, dondequiera que cuente e inconsistente llegue a tres, el código se ejecuta, el bloque de código bootstrap funcionando y lo hará break y el loop while dejará de correr por completo. Eso es lo que hacen las declaraciones continue and break. Digamos que teníamos una lista definida con tres valores o tres ítems en la lista. Dado que esto también es un iterable, podemos usar un for-loop dos veces iterar a través de cada elemento de esa lista. Lo que hicimos por artículo en mi lista, imprimimos el artículo, eso es lo que esperaríamos. Cada artículo individual o ningún luminoso y nombre se imprimen en la pantalla. Eso es impresionante. También hay otra forma en que podríamos usar un for-loop para imprimir artículos, ¿verdad? Se analiza el objeto terrible, que sería decir para el artículo en rango. Entonces si queríamos crear una lista de números, por ejemplo, van desde 0, o podemos omitir los ceros, tienden a diez. Entonces di elemento en rango. Podemos decir esto y luego esto imprimiría todo el camino 0 a nueve, como se puede ver aquí abajo, 0123456789029. ¿ Y si quisiéramos imprimir? Déjame volver a cuando teníamos en esto. ¿ Y si quisiéramos imprimir cada impar los artículos de probabilidades en esta lista? Permítanme añadir otro. Mientras que queríamos imprimir todos los demás artículos de esta lista, podríamos hacerlo. Podríamos usar la siguiente sintaxis para el ítem en el rango 0. Entonces mi lista también. Imprimir artículo, imprimir mi elemento de lista. De esa manera podríamos imprimir todos los demás artículos que podríamos escoger por ahora bajo y nombrar este cada otro elemento de la lista usando una función de rango. También podemos usar la sentencia insert para otras expresiones booleanas. Por ejemplo, si corrimos esto, si, digamos ahora sin embargo, en mi lista. Sí. ¿Qué esperas que esto se ejecute? Exactamente, sí, Porque si el artículo está en la lista, podemos imprimir sí. Por lo que la declaración n también se puede utilizar de esta manera. Y también si podemos decir lo contrario, si se quiere. Ahora sin embargo, no en mi lista. Se imprimirá. Sí. De lo contrario imprimir. Digamos que no en mi lista. No, no en la lista. Entonces si no, podemos decir que sí. ¿ Qué esperas que pase aquí por una aldosis y lista o si no, podemos ver que está en esto porque se dice otro jugador. Si dijimos algo más, otro jugador, dirá que no en la lista porque L no está en la lista. Ahora y si quisiéramos crear otro esto podemos crear una lista vacía. Puede crear una lista vacía. Y queremos agregar a esta lista cada ítem de la primera lista tiene el cumple con cierta condición, ¿verdad? Entonces podemos decir por ítem en mi lista, vamos a hacer una determinada acción. Entonces antes que nada, vamos a decir, si el condicional vamos a tratar de carne. La carne es si el artículo tiene la letra e en ella. Si ítem, digamos si en ítem, entonces vamos a hacer, ¿ queremos agregarlo a esta lista? Entonces mi otra lista anexa elemento, porque el ítem es el que estamos obteniendo de esta lista. Entonces, por último, queremos imprimir el resultado de mis otras listas. Veamos cómo funciona esto. Nos ponemos desordenados, nos metemos a Neymar y obtenemos otro, obtenemos cada elemento de este escritorio que tiene una e en ella. Este es un ejemplo que se puede ver. Estoy usando un for-loop for item en esta lista usando una declaración condicional. Y luego estoy usando un método list, que es el método append, pasando el elemento que estoy haciendo bucle a través del bucle for. Este es un buen ejemplo de algo que podría necesitar que suceda. Una combinación de, de comandos y de, de funciones que no necesitarías usar a lo largo de tu codificación. Excelente, Así que hagamos un recapitulativo ahora. Cuanto más usamos nuestro cerebro para más fuerte se pone mientras estemos bien calibrados porque si empujamos demasiado nuestros límites, podríamos quemarnos. Eso es lo que tenemos días de descanso. Vimos cómo se utilizan los bucles para recorrer los objetos de viaje. Hay varios tipos de objetos de octubre en Python, y algunos que hemos visto hasta ahora son cadenas, listas y rangos. Mientras que los bucles se bucle siempre y cuando la condición declarada se evalúe como verdadera. Después vimos que la declaración continua sostiene la iteración actual del bucle y luego continuando estudiante la siguiente. Y luego la declaración break sale por completo del bucle. El operador de índice devuelve un valor booleano, verdadero o falso si el primer objeto está en el otro. Por último, veamos la sección de entender. Esta es la sección más importante del día. Recuerda, porque implica el retiro activo y realidad te involucras en qué aprendizaje de palabras. Echa un vistazo a estos y hazlo para mañana. Y si necesitas alguna ayuda, siéntete libre de preguntar en el chat en la comunidad te será de ayuda ahí. Y de lo contrario, buena suerte y te veré mañana. 17. Día 14 - Diccionarios: Bienvenido al día 14. Los objetivos de hoy tenemos principalmente para enfocarnos en los diccionarios. Deberían mirar a los diccionarios, cómo encontrarlos, cómo trabajar con esos, y luego métodos de diccionario. Así que vamos a saltar a la derecha a la sesión de aprendizaje. El punto principal aquí es que un diccionario es el tipo de datos que consiste en una colección desordenada de pares de valores clave, también conocida generalmente como matriz asociativa. Eso es lo que es un diccionario. Ahora veamos cómo definiríamos un diccionario. Para crear un diccionario, utilizamos la siguiente sintaxis. Entonces mi dict Gennari, este sería un nombre de una variable que podría ser lo que quieras, y luego usar corchetes rizados. Esto definiría un diccionario vacío. Podemos llamar a esto mi diccionario vacío. Entonces mi diccionario podría ser algo así. Nombre. Digamos que John. Apellido, digamos Smith. Este sería un ejemplo de un diccionario con pares de valores clave. Y este sería un ejemplo de un diccionario vacío. Los diccionarios contienen ítems que se componen de una clave y un valor. Entonces este sería un elemento sobre el diccionario, y luego este sería otro elemento del diccionario. Hay separados por una coma. Entonces la clave tendría, tendría un valor asignado a ella. Y luego estos estarían separados por dos puntos. Y haríamos referencia a cada uno, cada ítem de un diccionario haciendo referencia a la clave de la siguiente manera. Entonces mi dict, similar a cómo lo usaríamos para list, firstname, podría usar mi dict firstName. Y si imprimimos esto y lo ejecutamos, podríamos ver bien, y es John. puede pensar en ello de manera similar a cómo hacemos referencia a los índices en una lista. Pero aquí nos referimos a la clave de uno de los ítems del diccionario. Si fuéramos a ejecutar esto con una clave que no existe en el diccionario. Y digamos, por ejemplo, la edad, obtendríamos un, obtendríamos un error, error clave. Dice edad. Básicamente va, no existe. Pero hay un método de diccionario que podríamos usar que se llama el método get. Podemos proporcionar la clave a ese método GET. Y lo bueno de esto es que si no encuentra, no encuentra la llave. En lugar de devolver un error, devuelve ninguno. Si le damos un método o si le damos una clave, lo siento que sí existe. Se devolverá la llave. Entonces el método GET es una forma de moverse por DR. Y podríamos conseguir ninguno si no existe. Además, se puede pasar un segundo argumento, que sería el valor devuelto como predeterminado si no existe. Podemos decir que esto tendrá edad. Y si ejecutamos esto, veríamos, vale, vuelve, no tiene edad porque no encuentra la primera clave que prueba o es pronta, para agregar un nuevo elemento a un diccionario. Simplemente referencia como si estuvieras haciendo referencia a la clave. Entonces digamos h en este caso, luego asignarle un valor. Digamos 27. Entonces vamos a imprimir esto de nuevo. Después de asignar los valores, vea lo que sucede. Es terminal despejado y vuelve a ejecutarlo. Vemos al principio y no tiene edad, pero luego le asignamos un valor a la clave H. Y entonces podemos ver, vale, sí tiene una edad y en realidad es imprimir todo el diccionario. Sólo para ver cómo se ve eso. Podemos ver primeroNombre John, LastName Smith, edad 27. Para reasignar un valor a una clave de diccionario. Simplemente reasignarlo haciendo referencia a la clave. Como lo hizo, también, asignamos o asignamos un nuevo valor. Si quisiéramos cambiar el nombre, por ejemplo, podríamos decir mi dict dict. Primero serían corchetes, FirstName, y simplemente usaría el nuevo nombre. Entonces podemos decir Mike. Entonces cuando imprimimos esto, los veríamos en este diccionario. Nombre Mike, apellido es Smith, de 27 años. Entonces si queríamos eliminar un ítem. De la lista, digamos que eliminemos lastname. Por lo que simplemente hemos usado una declaración delete, delete, y luego hacer referencia al valor como él haría referencia, para reasignarlo para crear uno nuevo. Entonces cuando ejecutamos esto, veríamos la final, el diccionario final siendo el primer nombre mic, edad 27. Al igual que con las listas, los diccionarios pueden contener diferentes tipos de objetos dentro de las claves. Entonces esto podría hacer referencia a una cadena. Nos referenciamos prácticamente a cualquier tipo de objeto, como se puede imaginar dentro del diccionario. Incluso diccionarios dentro de diccionarios también. Ahora veamos un par de métodos de diccionario. Existen tres métodos que son útiles. Esas son mis claves de diccionario, el método keys, luego el método values, luego el método items. El método items. Veamos qué proporcionan estos. Vuelve a pantalla y vuelve a ejecutarlo. Podemos ver que la llave está bien, obtenemos las llaves que son nombre, apellido, edad. Vemos que los valores son john Smith en 27. Y luego podemos ver que los ítems son prácticamente todo el diccionario, que es una lista de los pares clave-valor en una tupla. Para que podamos volver a ver, de nuevo una tupla. Pronto veremos cómo se ve ese tipo de datos. Pero más o menos devolverá los pares de valores clave, los artículos en el tipo de elemento de manera. Entonces si quisiéramos ver si hay cierta clave dentro del diccionario, podríamos usar el método keys. Entonces si digamos primer nombre en mi diccionario, imprima, sí. Vamos a ejecutar esto y por supuesto, vamos a imprimir sí, porque el FirstName esto dentro de las claves. Ahora vamos a buscar en bucle a través de un diccionario. Lo primero que debemos recordar es que no pasaría por un diccionario. Los diccionarios están desordenados. Entonces no garantiza que si miramos a través de este diccionario, pasará por FirstName, LastName y denso mito. Entonces h, lo siento, en ese orden, específicamente, esta importante recordar, no están ordenados, por lo que el pedido no está garantizado. Miró a través de ellos. Pero pasemos por cada instancia de lo que obtendríamos si tuviéramos que recorrer el diccionario. Para artículo en mi diccionario, dict. Aquí, obtendríamos, obtendríamos, cada clave sería lo mismo que decir por ítem en mi dict, keith, esto sería cosa equivalente a hacer. Nombre, Apellido y edad. Entonces si hiciéramos valores, ítem por sus valores, obtendríamos a John Smith 27. Entonces cada valor. Entonces finalmente, si hiciéramos ítem, mis artículos de diccionario, obtendríamos nombre John, apellido Smith, edad 27. Es una forma tupada de conseguir estos gran manera de mirar en similares, mira esto un poco más tarde también. Pero sería decir, ya que para desempacar la tupla, eso es lo que, llamémoslo tupla desempacando. Si dijimos cuatro elemento clave en mis artículos de diccionario y llave de impresión, imprimimos el artículo o éste tan estricto mejor. F cepa. Strain está diciendo clave KI igual a KI y luego Valor del artículo. Valor. Porque esto, lo siento, esto sería igual a valor. Entonces si fuéramos a guardar esto, podemos decir, bien, clave primer nombre valor john key, lastName valor Smith key H value 27. Sería desempacar las tuplas que obtenemos del método items. Genial, así que hagamos un recapitulativo ahora. La sintaxis para crear un diccionario es la siguiente, utilizando corchetes rizados y asignando, asignando claves a valores. Para crear un diccionario vacío, use corchetes rizados vacíos. Luego para acceder al valor de un diccionario hace referencia a una clave usando esta notación de corchete. Y luego para reasignar, simplemente reasignar el valor haciendo referencia a la, la clave y asignando un nuevo valor para eliminar un elemento, hacer referencia a una clave, y usar una declaración DDL que delete sentencia para eliminar ese ítem. También aprendimos nuevos métodos de diccionario, las claves getMethod, los valores y el método items. Por último, hay login a la sección de entender. Aquí tienes cuatro preguntas para hoy. Siempre recordando esta parte más importante del día, asegurándonos de que estamos haciendo nuestros ejercicios, y luego estamos empujando nuestros límites y aprendiendo cada día. Si tienes algún problema con estos, son alguna pregunta con estos, siéntete libre de preguntarles sobre tiro en la comunidad y estará activo ahí. De lo contrario, buena suerte y te volveré a ver mañana. Nos vemos. 18. Lección 15: Bienvenido a otro día de descanso hoy Vamos a interiorizar lo que hemos aprendido hasta ahora y volvamos a cualquier lección que llene mi revisión de necesidad. Recuerda que los ejercicios son la parte más importante de cada día. Entonces tenemos las tres claves para aprender que hemos visto hasta ahora para preguntas al final. Entonces sabemos que mantener una mente abierta, sé curioso y acerque el aprendizaje con mente de un principiante para la consistencia, sabemos que tenemos que volver a cada día y darle todo lo que tenemos. Empezarás a ver un resuelve y no te arrepentirás darle tus mejores cinco para la repetición espacial, se trata de un recuerdo activo, ya que es un gran ejercicio para el cerebro donde aprender y nos ayuda a mover las cosas de la memoria a corto plazo a largo plazo. Repetir los temas después del descanso y la recuperación nos ayuda a aplastar la curva de olvido. Asegúrate siempre de tomar en cuenta un descanso y recuperación. Pero gracias por volver y tomar un gran día de descanso y te volveré a ver mañana. 19. Día 16 - Tuples y Sets: Por lo tanto bienvenidos al Día 16. Los objetivos de hoy tenemos consistencia es clave para el crecimiento a largo plazo. Y tenemos que mirar en tuplas, queremos mirar en la asignación de tupla, luego establece, y luego algunos métodos para estos conjuntos. Vamos a entrar en la sección de aprendizaje ahora. Recuerde que los incrementos diarios se componen con el tiempo y el crecimiento a largo plazo V2. Y también recuerda el gráfico de crecimiento y cómo debemos mirar hacia fuera para el valor de la decepción, tuplas o un tipo de datos para que nos permitan almacenar una colección ordenada de artículos en una variable. tuplas son inmutables, lo que significa que no se pueden cambiar. Los artículos de una tupla se pueden mezclar de extremo de cualquier tipo, incluyendo otras tuplas. Para crear una tupla, simplemente usamos los corchetes redondos para crear mi tupla. Por ejemplo, podría hacer esto. Esa otra, y esta sería una tupla con tres ítems dentro de ella. Si quisiéramos crear una tupla de valor único, lo haríamos, si lo hiciéramos así, esto simplemente asignaría mi tupla a la cadena. Esto. Esto no funcionaría para crear una tupla de valor único. Habría que añadir una coma para crearla, para enfatizar que sería una tupla y esto crearía una tupla de valor único. tuplas son útiles siempre que tengas datos que sabes que no cambiarán y no deben cambiar a lo largo de la duración de tu programa. Por ejemplo, si quisieras incluir una semana o mes de meses del año, o se utilizarán letras del alfabeto para datos que no querrías cambiar a lo largo de tu programa. mismo modo que lo estamos haciendo con las listas, podemos hacer referencia al valor de una tupla mediante el uso de la notación de corchete. Por ejemplo, si quisiéramos imprimir este valor, ejecute esto y obtendríamos eso impreso a la pantalla que tiene un segundo valor. Recuerda que este 00 basó los índices reimpresos 0, íbamos a imprimir esto. También podemos bucle, bucle a través de los artículos de una tupla. Con un for-loop, obtendríamos lo que esperamos, que es esto, ese y otro después de la muerte que pintamos antes, para eliminar una tupla o dos por completo, podemos usar una declaración delete. Esto eliminará toda la tupla. Recuerda que no podemos eliminar. No podemos eliminar elementos vidas individuales de la tupla porque son inmutables. Del mismo modo que tenemos la función list, también tenemos una función de tupla. Podríamos convertir mi tupla, podríamos convertirla en una lista. Podríamos mantenerlo como tupla, sería redundante añadirlo aquí, pero entenderías que funciona de la misma manera lo haría esta función. Aquí vemos cómo se imprime en una lista. Podemos convertir lo mismo en tupla. También hay asignación de tupla, que es, esto sería una asignación de tupla. Tenemos el nombre de la variable, y luego tenemos los ítems de las tuplas que queremos incluir en la tupla. Esto es lo que se llama embalaje. Esto se llamaba empacado. Entonces también podríamos usar esta sintaxis para desempaquetar, desempaquetar esa tupla. Desembalaje. Esto puede ser útil porque ahora podemos hacer referencia a las diferentes variables. Las diferentes variables que asignamos simplemente desempacando las tuplas. Se puede ver este tinte otro porque asignamos este punto y otro desempacando la tupla. Simplemente recuerda el desembalaje porque será útil para mirar más adelante en, en el embalaje. Podemos ver que funciona también para listas. Por lo que este empaque y desembalaje se sostiene también para la lista. Aquí tenemos una función que toma en dos argumentos y simplemente imprime los argumentos uno tras otro, separados por una coma y un espacio que es literalmente todo lo que actualiza la función hace. Entonces definimos mi lista tiene dos valores, este y aquello. Resulta que también podríamos usar la, como mencioné antes, la estrella y la doble estrella para desempacar listas y diccionarios respectivamente. Si quisiéramos ejecutar mi función, podríamos ejecutarla así. Debido a la estrella, desempaquetaría mi lista en dos argumentos separados y la pasamos a una función como dos argumentos separados. Entonces si ejecuto esto, veríamos que funcionaría. Imprimirá este espacio de coma. Y luego debido a que la estrella trabaja para desempacar, la misma manera, podríamos usar la notación de doble estrella para desempaquetar un diccionario. Si tenemos un diccionario y todo está configurado para devolver un diccionario. En este caso, no funcionaría para este caso, claro, porque no me habían definido. Y la función en su lugar está arriba correctamente para eso, podríamos usar una notación de doble filamento para desempaquetar un diccionario. También podríamos usar la asignación de tupla con lo que se devuelve de una función. Digamos que esta función toma dos argumentos y simplemente devuelve los dos argumentos. Entonces lo paso como antes, le asigno algo a, ejecuto la función. En primer lugar, ejecuto la función. Entonces nos encontramos con la función, la paso en mi lista empacar mi lista en dos argumentos separados. Que correr esto va a devolver los dos argumentos separados simplemente, y eso es todo lo que va a hacer. Pero lo que pasa es que cuando los devuelve de esta manera en esta sintaxis, que es el argumento uno, argumento dos separados por una coma, esto devolvería una tupla de los dos argumentos. Entonces podría decir aquí mi tupla. Entonces podría imprimir mi tupla en una pantalla. Y luego cuando corro esto, pudimos ver esto y aquello como una tupla. la misma manera que estamos ejecutando esta función que devuelve dos argumentos separados. Podríamos ejecutarlo así, val valor uno y valor dos. Entonces podemos decir, bien, intentemos imprimir el valor uno y el valor dos para ver lo que obtenemos. Entonces podemos ver, está bien, estamos consiguiendo sí, estamos consiguiendo esto y lo estamos consiguiendo también. Estamos viendo que podemos volver de una función separar los diferentes objetos separados por comas. Y esto crearía una tupla con los objetos separados. Y luego con estos, podríamos usar desempacar tupla o simplemente podemos mantenerlo empacado como tupla y luego podemos imprimir esos valores por separado. Por último, veamos también los sets. Por lo tanto, se establece en un tipo de datos que le permite almacenar varios elementos en una sola variable. Son uno de los cuatro tipos de datos incorporados en Python para colecciones de datos en tiendas. Los otros tres son listas, tuplas, y diccionarios. Entonces los conjuntos no permiten que los valores duplicados sean inmutables en ordenados y en indexados. La parte relevante aquí es que los conjuntos no permiten valores duplicados. Para crear un conjunto. Utilizamos corchetes rizados. Se puede decir que mi conjunto es igual al valor uno, valor de dos valores, y luego imprimir mi conjunto. Podemos ver que imprime a pantalla valor uno a w. Y se puede ver que está desordenado. Por lo que puede ser a un valor de libro de orden aleatorio cumplido y cayó en. Lo importante es que no pueden aceptar valores duplicados. Siempre podemos convertir un conjunto en set en una lista. Usando la función de lista. Siempre podemos usar la función set también para hacer lo contrario, para girar una escucha a un conjunto. Un ejemplo de esto sería, digamos que teníamos una lista con valor a valor n, y vamos a repetir el valor a. ¿ Y si imprimimos lista. Después creó mi set e hizo conjunto de mi lista, luego imprimió mi set. Veamos qué pasa aquí. Borra la pantalla abajo y ejecútala. Vemos que estamos consiguiendo mi lista. Por supuesto que sabemos que estamos consiguiendo un set porque lo definimos como un conjunto porque había corchetes rizados. En este momento estamos lista de financiamiento. Por lo que ahora debería funcionar. Ok, nos estamos perdiendo una coma aquí. En este momento funciona. Tenemos la lista que tiene valor una forma de valorar dos y el valor n separado por comas y después haber hecho una lista. Pero entonces cuando giramos ese escuchando un conjunto, en realidad vemos también ese valor, que es un duplicado, se elimina porque es un conjunto duplicado, no tiene duplicados. Entonces cada vez que convertimos eso en un conjunto, vemos que lo obtenemos en los valores únicos. No hay valores repetidos. Para mirar en un par de métodos, íbamos a mirar el método add. Entonces pudimos ver que podíamos agregar solo otro conjunto de valores cuando lo ejecutamos, veríamos, vale, agregamos valor al conjunto desde arriba. También podemos ver que podemos usar el valor del método remove para, digamos, por ejemplo, eliminar. Entonces decimos, está bien, vamos a evaluar m valor uno en el set. También hay un método sindical. Entonces esto sería si tuviéramos otro set, mi set para digamos valor de tres. Vale, veamos valor, valor, uno. Valor para un ejemplo. Entonces hicimos nuestro sindicato. Mi conjunto para pensar que esto regresaría exactamente. Creo que esto devolvería comentario en éste fuera. Pantalla para mayor claridad. Esto devolvería la unión de ambos. De acuerdo, tan exactamente. Entonces si tenemos dos conjuntos diferentes, entonces tenemos uno de los sets y luego hacemos un sindicato. El segundo de la frase, devolvería el valor 1234 y el valor n. Observe cómo los valores repetidos dentro de los dos, los dos conjuntos, que son valor uno, no se repiten ni siquiera en la unión. El sindicato es más o menos todos los ítems estaban todos a los valores que están en ambos conjuntos. Y el que creaste usando el sindicato y el que agregaste como insumo para el método de unión. Pero entonces no incluiría los valores repetidos. Hay otro, otro conjunto llamado intersección que ejecuta algo parecido a una unión, pero mira a los que son los valores comunes y luego devuelve unos valores comunes. Entonces podemos ver aquí que la intersección evaluadora común entre los dos conjuntos es el valor uno, que es correcto porque eso es un valor uno y valor, el valor coincide en los dos conjuntos. Impresionante, Así que hagamos ahora un resumen. Vimos que las mejoras diarias conducen a un crecimiento exponencial a largo plazo. Se te ocurre que las tuplas son listas inmutables. No están destinados a cambiar una vez que se crean. Cree una tupla utilizando la siguiente sintaxis, usando corchetes redondos. Y puede contener cualquier combinación de tipos de objetos. Cree una tupla de valor único utilizando la siguiente sintaxis. Asintiendo una coma al final del primer valor. Referencia a los elementos de tupla de la misma manera que esto usando unos índices basados en cero. Por ejemplo, mi tupla, estamos de vuelta a las tres. El enunciado tupla devuelve una tupla vacía, o devuelve una tupla de otro objeto terrible. la misma manera que la función de lista hace para esta asignación de tupla funciona como la siguiente manera. Si quería empacar una tupla, primero escribe el nombre de la variable y luego ejecuta los valores separados por comas y entre corchetes. Y si quieres desempaquetar, anotas los nombres de las variables separados por comas y luego referencia al valor o referencia a una variable que apunta a esa tupla. Objeto. Los conjuntos son tuplas similares y enumera las principales diferencias que decían, no alinean, permiten valores duplicados y nuestra fecha de índice desordenada e interminable en indexado, como tuplas, los conjuntos son inmutables. La instrucción de función set funciona de manera similar a esta función de lista y a la función de tupla. Entonces se aprenden los nuevos métodos establecidos o el método add, unión y los métodos de intersección. Por último, veamos la sección de entender. Tenemos un par de preguntas para hoy, seis preguntas. Nuevamente, recuerda que esta es la parte más importante, solo para ver que estamos aprendiendo y para asegurarnos de que estamos internalizando lo que estamos aprendiendo. Buena suerte con estos post cualquier duda que tengas en la sección de chat, en la sección de comunidad estará activa ahí. Y buena suerte y te volveré a ver mañana. 20. Día 17 - OOP - Clases Definición: Bienvenido a la fecha 17. Y veamos los objetivos de hoy. Vamos a ver cómo son las preguntas la respuesta. Vamos a buscar en la documentación de Python. Vamos a mirar a la Programación Orientada a Objetos. Oop, y cómo todo en 500 es un objeto. La pregunta más importante cuando estás mirando a la de hoy, ¿qué es una clase en Python? Vamos a saltar a la derecha en la sección de aprendizaje. Quiero recordarles que sigan haciendo preguntas a lo largo del curso. Dado que las preguntas apuntan su atención hacia las respuestas y respuestas pueden cambiar el tiempo. Recuerda al elefante y cómo responder a la pregunta una vez y luego mantener ese incierto a lo largo del tiempo podría ser peligroso en los sensores podría cambiar a través del tiempo. Por lo que queremos seguir haciendo preguntas constantemente. Gran lugar para obtener respuestas a preguntas es la documentación de Python. Los lenguajes de programación tienden a tener una gran documentación con toda la información correcta. E incluso programadores experimentados que llevan años codificando, mi uso constantemente la documentación para refrescar sus conocimientos. Pero leer documentación a veces puede ser intimidante por cuántos detalles tiene. Es por eso que generalmente iría a la documentación con preguntas muy específicas que quería contestar. Para aprender qué es la programación orientada a objetos, necesitamos responder a una pregunta muy específica, que es lo que nuestras clases en Python. Entonces la pregunta que vamos a mirar hacia arriba es lo que nuestras clases en Python. Vamos a decir documentación. Tratamos de obtener la documentación específicamente. Vamos a buscar el enlace python.org como documentación oficial. Ahora puedes ver aquí que es realmente pesado, texto-pesado, porque tiene muchos detalles en mucha información. Y por eso estoy diciendo que es un gran recurso. Pero cuando tienes una pregunta tan específica, igual que nosotros, solo necesitamos saber qué pasa si las clases son. Entonces para este ejemplo específico, sólo vamos a mirar el primer párrafo de la documentación. Copiemos este párrafo por aquí. Lo que vamos a hacer es que vamos a ver cada tema específico referencia de dados aquí. Vamos a ver qué son esos. Entonces digamos que las clases proporcionan un medio para construir datos y funcionalidad. Funcionalidad juntos. Creando una nueva clase. Nueva clase crea un nuevo tipo de objeto. Nuevo tipo de objeto, permitiendo nuevas instancias, instancias del tipo a hacerse de ese tipo. Cada instancia de clase puede tener un atributo, puede tener un atributo adjunto para mantener sus Estados. Vidrio esta instancia hay también puede tener métodos definidos por su clase para modificar su estado. momento, estoy haciendo esto para mostrarles cómo cuando, cuando rompemos las cosas en pasos manejables, de tamaño de mordida, se vuelve más fácil de entender. Por lo que ahora vamos a investigar estos temas específicamente y vamos a empezar a entender lo que estos significan. Porque de verdad creo que este párrafo podría sonar como un idioma extranjero para ti y eso sería, tener todo sentido en este momento por la etapa de donde estamos aprendiendo en Python. Pero esto está destinado a mostrarte que podemos convertir algo que suena como una lengua extranjera completa en algo completamente comprensible al descomponerlo en trozos de tamaño de mordida. Eso es lo que vamos a empezar a entender lo que significa cada uno de estos. Y eso nos hará entender completamente este párrafo. Resulta que hay muchos programadores por ahí y gente que escribe Python por ahí que ni siquiera entienden cuáles son estos conceptos. Y por eso van a ser una ventaja para que usted los entienda bien. También resulta que una vez que entiendas lo es una clase, todo lo demás, todo el otro tema de los otros temas será un breve porque lo son, están muy interrelacionados con lo que es una clase. Y resulta que para entender qué es la programación orientada a objetos, lo que tenemos que hacer es entender estos conceptos, que les mostraré cómo ser difícil de hacer. Empecemos con un ejemplo. Puedes pensar en ti mismo como arquitecto y tienes un plano de una casa. Puedes seguir y construir esa casa usando el plano en tantas ciudades diferentes de todo el mundo como quieras. Puedes ir a París y construir una casa. Se puede ir a Nueva Zelanda y construir una casa. Puedes ir a. Barcelona puede ir a Hawaii o tantas casas que quieras. Al final, cada casa sería su propia casa. Pero todos tendrían muchas similitudes desde que se construyeron usando el mismo plano. En este ejemplo, el Blueprint será la clase y las casas serían las instancias de esa clase. Entonces el plano sería la clase y las casas serían las instancias de esa clase. Se puede pensar en una clase como un blueprint para un tipo específico de objeto. También el término clase y tipo se utilizan indistintamente en Python. Puede utilizar este blueprint para crear instancias individuales que tendrán similitudes tanto en sus respectivos datos funcionalidad. Resulta que hemos estado trabajando con clases todo el tiempo. Lista son un ejemplo. Si tengo mi lista, una igual a C, podemos ver que cuando imprimimos el tipo mi lista, vemos que es una clase, clase llamada lista. Si creamos una lista diferente, digamos la lista dos. El tipo impreso NF, mi lista dos, obtenemos la misma clase de tipo, clase de tipo de nombre o el nombre de la lista de clases, que también es el tipo. Por lo que puedes usar el tipo en clase indistintamente. Podemos ver que hay dos instancias para separar en una instancia separada de la misma clase. Entonces la clase es la misma. Los planos son los mismos, pero las casas son diferentes. Las instancias son diferentes. Al recordar cuando hablamos de la función list, la llamamos función tupla, esa función, todas esas funciones. Resulta que en realidad no son funciones, pero en realidad son clases. Cuando tratamos de imprimir tipo de lista, por ejemplo, obtenemos un tipo de clase. Recuerde que el tipo en el aula intercambiable interruptor realmente consiguió clase. Cuando comparamos eso en contra, por ejemplo, imprimir el tipo de función de impresión vemos que es una función o método incorporado. Entonces podemos ver que la impresión es en realidad una función o método y la lista no es un método de función, sino que en realidad es una clase de sí misma. Podemos crear nuestras propias clases mediante el uso de la siguiente sintaxis. Nos quedamos en clase. Entonces el nombre de la clase. El nombre de las clases son, por convención, se capitalizan. Entonces podemos decir que pase aquí abajo. Entonces hagamos tipo de impresión de mi clase para ver qué obtenemos. Déjame ver. Vale, aquí estamos consiguiendo una clase de tipo clase, lo cual se había hecho eso porque está diciendo es una clase de sí misma. Impresionante. Entonces cuando hacemos tipo de impresión de esto, que fue el ejemplo que hicimos antes. Clase de tipo de clase. Impresionante, Eso tiene sentido. Eso nos dice que creamos nuestra propia clase y es un equivalente a lo que es la lista. Para crear nuestra propia instancia de una clase. Por otro lado, correríamos algo como esto. Mi clase, di mi clase una instancia, una, mi clase, mi clase, y luego llamarla quinta. De igual manera a cómo llamarías a una función. Lo llamaremos así. Y luego cuando lo imprimimos, si íbamos a imprimir el tipo de mi clase, mi clase uno, podríamos ver que es una clase de Maine. Mi clase principal simplemente hace referencia que es un script diferente que se está ejecutando como el guión principal. Y entonces mi clase es una clase que se define en el guión que es el redondeo principal del guión. Esto es similar a hacernos como si fuéramos a hacer mi lista. Crearíamos una lista. Y luego vamos a imprimir tipo de mi lista. Conseguiríamos como se esperaba lista de clases. Ahora hemos hecho mucho progreso aquí. Tenemos, por ejemplo, que las clases o son el equivalente de tipo. Por lo que podemos decir clases o tipo de objetos. Tipo de objetos que son iguales a los blueprints para crear nuevas instancias. Instancias. Por lo que ahora tenemos nuevas instancias en nueva clase, para que podamos moverlas. Entonces eso es hacer clic en crear una nueva clase. Ya lo demostramos también. Por lo que ahora nos quedamos con lo siguiente. Tenemos en nuestras clases o tipo de objetos o iguales a los planos se utilizan para crear las nuevas instancias. Y entonces todavía tenemos que entender qué atributos de funcionalidad de datos, es los métodos de citas. Pero ya estábamos familiarizados con un montón de estos y ya verás una vez que entremos en estos, pero por ahora, esto es lo que tenemos y hemos hecho bien entre buena cantidad de avances en comprensión de qué esto significa, que en un principio comenzó ya que más o menos les gusta una lengua extranjera, estamos haciendo buenos avances. Y eso será todo para la sección de aprendizaje de hoy. Impresionante. Así que hagamos un recapitulativo ahora. Vimos que las preguntas son, ¿son las preguntas primarias tu atención para recibir y absorber respondidas de manera más efectiva? Vimos que Python es un gran lugar para encontrar explicaciones detalladas. Y la mejor manera de usar la documentación es ir con preguntas muy específicas con tu mente lista para absorber las respuestas. Todo en Python es un objeto y así lo que es Python. Por eso Python es un lenguaje de programación de programas orientado a objetos . Cada objeto tiene su tipo o clase. El término clase y tipo se utilizan indistintamente en Python. Ejemplos con los que hemos, hemos estado trabajando con todo lo largo del tipo de cadena, lista, tupla, diccionario, etc. Pensar en una clase es un plano de una casa. Y casas individuales construidas a partir de eso para pintar como las instancias de esa clase. Por ejemplo, una clase sería lista. Pero cuando creas una lista real, esa sería una instancia de esa clase. A continuación, y lo haremos, veremos mañana, veremos cómo las clases pueden manejar datos y funcionalidad, y verás cómo hemos estado trabajando con eso todo el tiempo. Por último, en la sección de entender. Tengo un par de preguntas para ustedes hoy a cinco preguntas. Así que buena suerte con estos y asegúrate de hacer cualquier pregunta que puedas tener. Y si estás bloqueado con alguno de estos, no dudes en preguntar en el chat y la sección comunitaria estará activa ahí. Pero te veré. Buena suerte con esto y te veré mañana. 21. Día 18 - OOP - Atributos y métodos de clase: Este es el día 18. Para los objetivos de hoy, hemos aplastado la curva de olvido con repetición espacial y recuperación activa. Tienes clases definidas por el usuario, clase, datos, funcionalidad de clase y métodos de truenos o mágicos. Vamos a saltar a la derecha en la sección de aprendizaje. Recuerda que aplastamos la curva de olvido con repetición espacial y recuerdo activo. Con el tiempo, notarás cómo tu cerebro se vuelve más fuerte y puedes hacer otras cosas en tu vida cotidiana con más facilidad y enfoque. Volviendo a donde lo dejamos, recuerda que esto solía ser un párrafo que nos sonaba como una lengua extranjera. Y ahora estamos empezando a entenderlo mejor. Tenemos las clases o tipo de objetos son iguales a blueprints para crear nuevas instancias, tenemos que las clases pueden contener beta así como funcionalidad y atributos que crean un estado y luego también métodos. Y veremos cómo todo esto combinado a los entrelazados juntos. Ahora que sabemos qué es una clase y cómo crear la nuestra propia, hablemos de cómo las clases pueden almacenar sus propios datos. Estamos almacenando estos datos de manera similar a lo que hemos visto hasta ahora con variables. Llamamos a esta clase variables atributos. Podemos tener tanto atributos de clase como atributos instancia. Las diferencias que un atributo de clase es el mismo para todas las instancias. Y una instancia a atribuir es única a cada instancia. Cuando declara un objeto mutable como atributo de clase y lo cambia en una instancia. También cambiará para todas las demás instancias. Pero cuando crea un objeto mutable como atributo de clase, NS reasigna el atributo class en una instancia. Esa instancia ahora apuntará al nuevo objeto que se le asigne, pero todas las demás instancias mantendrán el atributo de clase original. Hagamos un ejemplo aquí y digamos que vamos a crear una clase que va a representar una casa. Eso es también asignar una cadena de doc dot, eso va a decir clase para representar casa. Ahora aquí es donde creamos los atributos de clase dentro de la definición de clase misma. Digamos que el primer atributo que queremos asignar como la ciudad, vamos a decir que la ciudad donde está la casa en Barcelona, vamos a decir recámara. Vamos a decir que va a ser una habitación de tres. Y luego en un departamento de dos baños. Entonces podemos decir algo así como piso. Digamos que tiene puedes tener azulejo, madera dura, alfombra. Es una lista con los diferentes tipos de pisos de un piso que tiene. Y se puede ver incluso tener un atributo booleano que dice tiene pool y decir igual a verdadero, tiene que albercar. Esta puede ser una definición de nuestra clase de robots. Entonces más tarde podemos decir, Ok, asignemos, creamos dos instancias de esta casa de clase. ¿ Cómo haríamos eso? Bueno, podemos decir cómo s1 igual a casa, luego casa a igual a casa. Esto crearía dos instancias separadas de la misma clase, el mismo plano de la casa, ¿verdad? Entonces es un plano que ha creado ahora dos instancias separadas. Entonces, por ejemplo, ahora mismo podemos decir, podemos empezar a hacer algunos cambios. Podemos decir que dos de casa a ciudad, lo vamos a cambiar a sydney. Entonces casa dos recamaras tiene disminución que en una menos igual a una. Casa dos baños. Digamos lo mismo menos un igual a uno, solo disminuyéndolo en uno. Estamos cambiando, estamos cambiando la segunda instancia de la casa o creamos para que podamos cambiar los atributos y ver qué pasa ¿verdad? Entonces digamos casa, dos plantas. Forzar eliminar. Bueno, déjame verlo exactamente. Pisos. Quitar. Vamos a quitar el piso de madera dura. Es impresionante. Ahora, hagamos lo siguiente. Voy a saltarme esta parte, pero más o menos lo que voy a hacer es que voy a imprimir el cada aspecto de cada atributo de cada instancia para que podamos verla y compararla contra los dos. Aquí vamos. Imprimimos una línea en blanco de mezcla, y luego la imprimimos una descripción que dice imprimir casa de una instancia atributos. El siguiente simplemente lo hizo. Imprimir ciudad, uno, ciudad de casa1, todo con f cuerdas. Y luego hicieron un título con el de la ciudad lo capitalizaría. Entonces tenemos recamaras, baños, pisos, que deben ser iguales a piso. Tiene una alberca verdadera o verdadera o falsa. Y entonces lo mismo exacto pero para la casa a casa a instancia. Entonces veamos qué pasa cuando ejecutamos esto. Conseguimos el primero, Barcelona tres, recámara a baño, azulejo y alfombra. Eso ya es extraño porque deberíamos tener alfombra de azulejos en la madera dura. Entonces tenemos la casa de la casa también, cuando tenemos donde esperamos tendría Sidney dos recamaras, una por dos recamara , un baño, alfombra de azulejo, y tiene una alberca. Cierto. Lo que pasa aquí es que cuando hacemos esto, cuando hicimos esto a la segunda, a la segunda instancia, en realidad estamos haciendo esto al mismo objeto que está contenido aquí arriba, y es asignado a clase saturada. Es por eso que los cambios a cada instancia única creada con eso, con ese atributo de clase. Donde tenemos que evitar que esto suceda es en realidad lo siguiente. Tendríamos que decir casa a casa dos plantas, piso igual a casa, casa a piso. Copiar. Tendríamos que crear una copia de esto. Entonces podemos decir casa a piso, quitar madera dura. Así es como lo haríamos. Correríamos esta casa perfecta, una podemos verlo estilo alfombra de madera dura y luego cómo suis alfombra de baldosas sólo basado en no, Vimos que los datos son en realidad a través de atributos. Atributos. Funcionalidad. Resulta que para agregar funcionalidad a nuestras clases, lo hacemos a través del método de mensaje, simplemente los métodos. ¿ Cómo hacemos eso? Bueno, recuerda cómo hablamos de métodos para listas, cadenas, y otros tipos de datos como, así. Bueno, resulta que es realmente similar al tipo de objetos que estamos creando en este momento con clases. Porque cada vez que queremos crear una nueva lista, digamos que mi lista, ejecute la lista, escriba, luego imprima mi lista. Obtenemos una lista vacía porque estábamos creando una instancia a través del tipo o la lista de clases, estamos creando una instancia y luego tenemos imprimir mi lista. Entonces también podemos conseguir directorio de mi lista, que volvería a imprimirlo a la pantalla, devolvería cada método que tengamos. Tenemos un método copy, tenemos que anexar índice de método pop, el método remove. Ya tenemos métodos. tipo de listas que tenemos, este tipo de lista en esta instancia que creamos una instancia, imprimimos la n ya que vimos que es una lista vacía, vacía. Pero entonces cuando tratamos de hacer el método directo o la función dir, vemos todos los métodos que están dentro de esa instancia. Bueno, sucede lo mismo para nuestras clases. Simplemente podemos crear métodos dentro de nuestras clases que agregarán funcionalidad a nuestras clases. La forma más sencilla de definir un método dentro clase que definimos como el siguiente. Si tenemos nuestra clase llamada mi casa en una clase para representar una casa, simplemente la definiríamos como una función dentro de un método. Mi método, digamos que el método Grant corrió. Entonces si creamos una instancia, digamos que digamos Bueno, creamos una instancia de mi casa, mi casa y luego corrimos mi casa una, mi método. Veamos qué pasa aquí. Dice que nos da un error. Dice error de tipo. Mi método toma 0 argumentos posicionales, pero uno fue dado. En esta instancia. Resulta que para una clase y yo **** métodos de clase, siempre tenemos que pasar en el auto argumento. Cuando ejecutamos esto. Por otro lado, veríamos OK, método corrió. Ten en cuenta que tenemos que pasar en el argumento auto debido a algo especial sobre los métodos es que el objeto de instancia se pasa como el primer argumento de la función cada vez se ejecuta. Piense en el auto argumento simplemente como la propia instancia. Entonces está pasando en la propia instancia a la función es, es exactamente como si yo fuera a decir aquí abajo, mi casa iguala mi método y luego pasar en mi casa uno. Vemos que el método bronce nuevo porque estoy llamando a mi casa, que es un objeto, que es una clase en este estado, en esta instancia. Entonces estamos llamando a mi método, que es un método dentro de esa clase. Y luego estoy pasando en la instancia, que es la propia instancia. Esto equivale a decir esto donde simplemente queremos hacer esto porque fuimos a, solo queremos llamarla la casa misma para la propia instancia, llamada la propia función, y luego hacer que la instancia misma pase a la función automáticamente por Python. Eso es lo que Python pierde y ahí es donde obtuvimos el error antes. Y ahí es donde funcionó después de que incluyéramos el auto argumento dentro del método mismo. Python también tiene lo que se llaman métodos mágicos o dunder. Trueno para un doble guión bajo, que son simplemente métodos que tienen algún tipo de funcionalidad especial para ellos. Y cada uno tiene un propósito muy específico. Sólo tenemos que lidiar con los métodos de truenos siempre que tengamos un objetivo muy específico en mente. Y sabemos que queremos usar ese método dunder para lidiar con él. Tomemos este ejemplo por un segundo. Utilizamos las variables de clase o atributos de clase para asignar todos estos atributos a una sola clase. Y usamos un atributo de clase para esto. Pero, ¿y si quisiéramos hacer algo como esto? Mi casa, una igual a mi casa, y luego decir Barcelona, tres a cuatro recamaras y baños. Y luego para el azulejo pasaría en la lista aquí, los pisos. Entonces es cierto. Y si quisiéramos pasar en esto ya que se parece más a una función, pero es simplemente una forma de iniciar una instancia de una clase con los atributos pasados a estos porque no queremos que todos ellos Barcelona o tener el mismo tipo de pisos. Queremos definirlos de forma única en cada vez, cada vez que declaramos una instancia de clase. ¿ Qué crees que podríamos hacer por esta situación? Bueno, resulta que hay un método dunder muy específico llamado método para la inicialización. Digamos inicializar instancia lo que hace este método dunder o cuál es el comportamiento específico que tiene este método trueno. El método init es que se ejecutará cada vez que se ejecutara una nueva variable o una nueva instancia de clase declarada, o cada vez que se ejecute una nueva instancia, entonces esto lo haría, se ejecutaría. Por ejemplo, si hice clase inicializada, lo hice aquí, voy a comentar esto porque no queremos usar eso todavía. Queremos decir mi casa. ¿ Y si hicimos esto? Podemos decir, Ok, clase inicializada. Vemos que cada vez que inicializamos la clase, creamos una instancia de una clase, se inicializa. Y luego este codon ahí en el método init del bronce, también se llama el método constructor. Constructor. Lo que haríamos por este ejemplo específico, para que esto funcione, simplemente usaríamos lo siguiente. La siguiente sintaxis haría auto, auto ciudad igual a, igual a ciudad. Entonces pásalo adentro. Ciudad aquí afuera. Auto habitaciones iguales a habitaciones de cama, habitaciones, baños, pisos y baños, y luego definirlos aquí abajo. Flores florecen. Entonces auto tiene. Alberca igual a cuenta con alberca. Ahora cuando ejecutamos esto, inicializaríamos esa clase y luego tendríamos todos los atributos asignados a esa clase debido a la forma muy específica que funciona el método init. Otro ejemplo de otro método, o podríamos crear un método regular, podría ser un método de descripción de impresión. Y aquí hay un ejemplo. Definimos la instancia, un método de descripción, y luego simplemente imprimimos descripción de todo desde la instancia. Así que cada vez que queríamos ejecutar ese método, mi casa una descripción de instancias, guarde eso. Podríamos verlo imprime ciudad de epsilon y recamaras, tres baños para forzar titulado alfombra de madera dura hospital igual a verdad. Podemos ver que es un ejemplo de otro tipo de método que podríamos crear. Aquí donde estamos ahora mismo. Vimos esa funcionalidad también. Lo que significa es que significa que a través métodos, funcionalidad a través de métodos. Y estos también podrían ser los que se llaman métodos mágicos dunder para doble guión bajo. Entonces hemos visto ese estado, estado más o menos como una instantánea de tu clase. Entonces estado podemos pensar en que el estatus es un subconjunto de datos y los atributos. Si tuvieras que tomar una foto de tu clase o lo que estamos tramando a tu objeto en un momento dado, ese sería el estado de tu objeto. Podemos decir aquí instantánea de su objeto. Por lo que ahora podemos ver con más claridad que el párrafo que inicialmente comenzó como lengua extranjera ahora tiene mucho más sentido. Si fuéramos a ir por atrás, leer atrás, no lo hice. En este momento entenderíamos conceptos que tiene. Eso es bastante impresionante sólo para convertir el idioma extranjero en algo comprensible. Entonces felicitaciones por eso. Dulce. Así que ahora hagamos un recapitulativo. Vimos cruzar una curva de olvido con repetición espacial y recuerdo activo. Nuestro cerebro se fortalece con el tiempo y se volverá más agudo y más enfocado en una vida cotidiana. Ahora veamos qué, dónde estamos. Podemos ver que sabemos que nuestras clases o tipos de sub objetos son iguales a los planos. Y luego nuevas instancias son iguales a las casas. El equivalente de planos y casas para clases son planos e instancias son casas individuales. Después vimos que los datos a través de atributos nos da el estado a través de la instantánea del objeto. Entonces la funcionalidad golpea a través de métodos, que no pueden ser tanto mágicos ni métodos dunder. Dunder para métodos de doble subrayado. Vimos que las clases tienen datos a través de atributos y métodos de funcionalidad. Podemos pensar en atributos como variables que pertenecen a un objeto y métodos como función que pertenece. Mesh admite que como funciones que pertenecen a un objeto. Los métodos de Dunder para doble subrayado, también llamados métodos mágicos, son métodos que tienen una funcionalidad especial y solo debemos manipularlos cuando queremos trabajar con ese específico funcionalidad. El método init es add dunder método de una clase que se ejecutará cada vez que creamos una instancia de clase set. Entonces sabemos que yo se refiere a una instancia misma. Lo pasamos como el primer argumento a todos los métodos dentro de una clase. Podrías usar otra variable, nombre en lugar de auto, pero podrías usar cualquier nombre que lo desees, pero es lo que usamos para la convención y para que tu código sea más legible por otros programadores. Y por último, echemos un vistazo a la sección de entender para hoy. Tenemos para preguntas para el día de hoy. Nuevamente, lee a través de ellos, pausa el video en este momento y luego pasa por estos. Si necesitas alguna ayuda, siéntete libre de publicar cualquier pregunta en el chat y la comunidad estará activa ahí. Y si no, puedes sentirte libre de llegar y seremos de ayuda a través, por ahí también. Buena suerte con estos y te volveré a ver mañana. 22. Día 19 - OOP - Herencia: Bienvenido al Día 19, los objetivos del circuito de hoy. El primero es mirar hacia otra ventaja de tener una mente abierta. Y el segundo es mirar a la herencia de clases. Vamos a ver qué son las clases de padres e hijos. Con eso, vamos a saltar a la derecha en la sección de aprendizaje. Tener una mente abierta nos permite mirar las cosas objetivamente y dondequiera que surja una mejor manera de hacer algo, podremos adoptarla rápidamente y mejorar. Una mente abierta nos impide quedarnos con nuestro viejo camino simplemente porque puede haber sido la forma en que hemos hecho en toda nuestra vida. Con una mente abierta, podemos mirar todas las opciones y elegir la que mejor funcione. Este enfoque rápidamente te hace destacar sobre todas las personas que lideran opiniones subjetivas se interponen en el camino de la toma de decisiones. Hay situaciones en las que queremos crear una clase basada en otra clase. Una clase hereda de otra. La clase de nivel superior se llama la clase padre. El que hereda de ella se llama la clase infantil. Veamos este ejemplo de una clase que tenemos como clase de padres. Mi clase de padres. Vamos a documentar. Será una cadena de punto muerto. Entonces definamos un método init para agregar el auto inicializa una instancia de mi clase padre. Entonces vamos a decir auto igual a. Vamos a añadir como parámetro a este método. Entonces vamos a decir print. Vamos a decir f cadena de y decir que acabas de inicializar, Misha, inicializó una instancia. Mi clase de padres. Entonces vamos a decir print c igual a aquí arriba. Realmente no necesitamos la corriente arriba que se ponga aquí abajo. Hacemos argumento igual a argumento. Impresionante. Ahora vamos a agregar un método más, que simplemente va a ser mi método padre. Pasamos en auto. Simplemente, solo somos esto es simplemente un método, un método de mi clase de padres. Lo único que vamos a hacer es que vamos a imprimir el método padre corrió. Por eso vamos a hacer ahora tenemos nuestra clase de padres, tenemos el método interno y tenemos mi método padre. Entonces vamos a definir otra clase, que va a ser mi hijo. Mi clase de hijos. Entonces cuando queremos por herencia, cuando queremos heredar de otra clase, queremos pasar en mi clase de padres a la clase de hijos. Nuevamente, esta sería una cadena de doc. Entonces definiríamos el método init. Digamos que queremos decir yo. Entonces los niños argumentan niños argumentan niño. Y luego aquí abajo simplemente decimos igual a niño a niño. Entonces vamos a imprimir simplemente algo para iniciar sesión. Dices, solo inicializado, inicializado. Nueva instancia de mi clase, mi clase de hijos. Vamos a decir la cuerda F con entonces niño Señor. Por último, vamos a tener método infantil. Mi método hijo que va a tomar en auto y simplemente va a imprimir. Pero voy a agregar un método de cadena de doc. Mi hija. Simplemente ir a imprimir método child corrió aquí se puede ver que llamé en una super, super función, que es simplemente llamadas y hace referencia a la instancia padre. Entonces se va a hacer referencia a la clase padre, va a inicializarla pasando en el argumento. Cuando veamos aquí abajo que tenemos este argumento, lo pasaría a la función llamada desde la clase padre. Y eso inicializaría la clase padre. Si tuviéramos otros argumentos aquí. Por ejemplo, son R2 o algo que hemos tenido más argumentos. Agregaríamos esos argumentos adicionales aquí también, R2, y luego lo pasaríamos en R2, simplemente replicaríamos todo lo que está en la clase padre, y lo pasaríamos a la clase child como bien. Pero en este caso sólo tenemos un argumento, por lo que sólo hacemos uno llamaría a la super función causará la clase padre. Lo inicializamos, pasamos el argumento y luego simplemente lo ejecutamos como cualquier otro inicializado cualquier otro método constructor. Y también es agregar alguna documentación a esta instancia de mi clase de hijos. Impresionante. Ahora cuando lo hagamos, cuando hagamos a mi hijo, digamos que mi hijo igual a mi clase de hijos. Lo pasarán en el argumento uno. Digamos valor uno, valor dos. Entonces vamos a decir Mi hija mía, y luego ejecutar los métodos, mi método hijo. Entonces vamos a verlos. Mi hijo también tiene el método de mi padre. Cuando ejecutemos esto, vamos a decir, está bien, solo inicializas una instancia de mi clase de padres porque son super, nuevo la super función llamada pecado, la clase de padres, y entonces lo inicializa. Cuando llamas al método init desde las súper, súper referencias, la clase padre, y luego lo inicializa con el argumento de que pasas. Por eso dices que estamos imprimiendo aquí. Acabamos de inicializar la instancia de mi clase de padres. Entonces se obtiene el argumento valor uno. Y luego dice que acabas de inicializar en incidencia de mi, mi clase de hijos, ¿eres argumento valor uno y valor dos? Entonces ves que no pasó nada más, que los métodos no corrieron. Y habla simplemente porque no los llamamos de la manera correcta. Tenemos que señalar que pasaría por referenciarlos mediante el uso de los, los corchetes. Cuando lo hacemos de esta manera podemos ver, está bien, método child corrió, el método padre corrió. Y ambos corrieron usando la clase hijo, que heredó de la clase padre. un par de ejemplos en los que podríamos querer usar herencia. Uno no lo es. Por ejemplo, si queríamos crear una app para una escuela, tenemos una clase de persona. Y luego como clase de padres, la clase de persona sería la clase padre. Y luego podríamos tener un par de clases de niños, que pueden ser estudiantes, la clase y la clase de maestro. Podemos tener a la persona que puede tener muchos atributos para una persona que podría aplicar tanto a los alumnos como a los profesores. Pero entonces podemos tener algunas aplicaciones más específicas para los estudiantes y los profesores por separado. Eso puede ser un ejemplo. Otro ejemplo puede ser que puedas tener una clase de padres si estás tratando de hacer un NOP por algo relacionado con perros o mascotas. Puedes tener una clase de padres llamada perro. Y luego las clases de niños para las diferentes razas son los diferentes tipos de perros que utilizas en el futuro. Puedes haber borrado perro, donde puedes tener un show dog o puedes tener un perro mascota, sí disuadir a diferentes aplicaciones que podrías usar. Herencia, herencia que podría ser útil. Rejilla. Entonces hagamos un recapitulativo. Ahora, estar de mente abierta nos permite adoptar las opciones objetivamente mejores independientemente de cualquier prejuicio que podamos tener. Inicialmente. Podemos crear clases secundarias que heredan de las clases padre agregando la clase padre en la definición como Blackstone, siguiendo la sintaxis como en clase, clase secundaria, y dentro de los corchetes, la clase padre. La herencia de clases funciona cuando queremos crear una subclase y no repetirnos al tener que reescribir todos los datos y funcionalidad transferibles. Utilizamos una función super incorporada para hacer referencia a la clase padre dentro de la clase child. Siempre que usamos una clase secundaria, y la clase secundaria tiene prioridad para cualquier dato o funcionalidad antes de que Python busque a través de la clase padre. Y por último, tenemos la sección de entender. Tienes cinco preguntas para hoy. Nuevamente, si tienes alguna pregunta al respecto, siéntete libre de preguntar y en la comunidad porque estaremos activos. No son que sea genial y luego buena suerte con esto y nos veremos de nuevo mañana. 23. Lección 20: Bienvenido a otro día de descanso. Wow, felicitaciones por llegar tan lejos en el curso a menos que increíblemente emocionados de tenerte aquí, porque significa que fuiste capaz superar la parte más dura, que es la primera un par de días, lograste mantenerte consistente hasta este punto? Es como un tren cuando está en parada completa, ponerse en movimiento es la parte más difícil. Pero entonces se hace más fácil y más fácil con el tiempo si eres consistente antes de que te des cuenta, el tren se mueve a máxima velocidad y el esfuerzo que necesitas hacer es mantenerlo ahí. Porque un objeto que ya está en movimiento permanece en movimiento a menos que haya una fuerza que funcione para detenerlo. Asegúrate de revisar cualquier lección o cualquier cosa que pueda ser útil. Y tardaré un segundo para recordarte las tres claves para un aprendizaje efectivo para la consistencia. Apenas vuelve cada día y dale todo lo que tengas. Enhorabuena por poner la moción de entrenamiento. Ahora te animo a que aproveches este impulso que llevas y que termines una estrategia final fuerte y que la mantengas en el aprendizaje después de la repetición espaciada. El recuerdo activo es un excelente ejercicio de traer. Combina esto con la recuperación racionalmente y aplastarás la curva de olvido. Por último, para preguntas o la respuesta, mantengan una mente abierta. Sé curioso y acércate al aprendizaje con la mente de un principiante. Siempre hay un nuevo camino por el que no hemos caminado. Tan impresionante. Disfruta de tu día de descanso. Asegúrate de abordar cualquier duda que tengas de días anteriores. Y te veré mañana de vuelta aquí. 24. Día 21 - Archivos: Bienvenido al Día 21, los objetivos del circuito de hoy. En primer lugar, queremos estudiar la importancia de ser consistentes. Vamos a volver a visitar eso. A continuación, vamos a buscar archivos. Vamos a ver todo lo relacionado con los archivos. Así que vamos a saltar a la derecha en la sección de aprendizaje. A medida que sigues regresando, sigues reforzando el hábito del aprendizaje y la novedad y te estás haciendo más fácil para ti volver a cada día. Si estás aquí. Eso significa que ya has hecho un gran trabajo en esto. Entonces felicitaciones. ¿ Por qué archivos? Bueno, entonces resulta que hay una gran manera de usar datos ya guardados o guardar nuevos datos creados por tu programa. Para abrir un archivo, utilizamos la función abierta. Y la función abierta devuelve un objeto de archivo. Entonces vamos a crear una variable llamada archivo. Y lo vamos a pasar en lo que se devuelva del archivo, la función abierta. La función abierta recibe el nombre de archivo, nombre de archivo dot TXT por ejemplo. Esto sería lo que se llama ruta de archivo relativa porque supone que el archivo ya está en la misma carpeta en la que estamos actualmente en este momento. Pero una ruta de archivo absoluta sería algo como esto. Este sería un ejemplo de una ruta de archivo absoluta. ¿ Lo pasarás en cada carpeta del directorio raíz? Este es un ejemplo de lo que usaría un sistema Mac OS. Y si tuvieras Windows, agregarías un C de dos puntos antes de que los puntos archivaran la ruta. Pero aquí sólo estamos, sólo vamos a estar usando rutas de archivo relativas. En este ejemplo, ya tenemos un archivo creado un archivo de texto, que es éste el que dice Esta es la primera línea, la segunda línea, y finalmente dejó tercera línea dot archivo TXT, y ya está en la misma carpeta en la que estoy actualmente. Se llama sample.txt. Y puesto que, como no es carpeta sostenida, podríamos usar una ruta de archivo relativa. Por lo que podría decir ejemplo TXT. Esto abriría ese archivo en ese objeto de archivo. Lo primero que necesitamos saber sobre los objetos de archivo es que tienen lo que se llama la posición actual. Y para mirar cuál es la posición actual, simplemente hacemos objeto de archivo o ese objeto de archivo y luego hacemos la función tail, el método tail para ese objeto. Y podemos decir que está en la posición 0 actual porque comienza en los ceros tercera posición actual. Eso significa que la posición actual está actualmente aquí. Al inicio mismo del expediente. Hay otro método llamado, llamado el método de lectura. Y ese método devuelve algo que queremos imprimir a la pantalla. Si hacemos objeto de archivo, lee, este método donde va a hacer es que va a empezar en la posición actual, que podemos decir ahora mismo desde mirar el método de la inclinación que dice. Es sólo la posición 0 va a empezar en la posición actual y va a ir todo el camino hasta el final. Si no especificamos aquí otro personaje, si le decimos al objeto archivo que lo lea, comenzará en 0, y terminará en el mismo, muy final del archivo. Entonces podemos ver que hay una primera línea, segunda línea, y finalmente la tercera línea. Esto es exactamente lo mismo que estamos obteniendo de nuestro archivo de texto que creamos de antemano. este momento si dijéramos el método de la cola del pato objeto del archivo, pudimos ver que está en la posición 58, V0, decir $1 lejos de 0 todo el camino hasta el final, lo que resultó ser posicionado 58. ¿ Cómo vamos de volver a ir a la primera posición? Bueno, ¿cómo cambiamos la posición volviendo al principio mismo o a otro lugar dentro del expediente. Bueno, hay otro método para eso, que se llama el método Seek. Si buscamos 0, entonces volvemos a la, la posición 0 de nuevo, el mismo inicio del expediente. Porque si tuviéramos que leer el archivo, por ejemplo, libre de leerlo y luego intentar volver a leerlo. Cada vez que lo lee aquí y lo lee, y se fue hasta el final. El puesto actual fue todo el camino a 58. Es por eso que cada vez que ejecuto file object read again, no imprimió nada porque necesitan ejecutar el método Seek primero para tomar la posición actual todo el camino de regreso a 0. Y luego puedo leerlo de nuevo desde el principio. Siempre que abrimos un objeto file en Python, podemos ver que tiene el objeto file, el atributo cerrado igual a false. Entonces cuando miras el objeto de archivo, Cerrado igual a false en este momento. Y podríamos usar la función close o el close, el objeto de archivo de método close, cerca para cerrar el archivo. De esa manera, cada vez que ejecutamos el archivo de cierre, podemos ver que hay igual verdadero y queremos cerrar nuestros archivos después de usarlos. Después, terminamos de usarlos. Con el fin de reducir el uso de la memoria fuera de nuestro script. No hay una forma aún más sencilla usar archivos en Python, que es mediante el uso de la anchura, la instrucción width o el bloque width. En este caso, usamos con abierto. Y luego ejecute el nombre de archivo, que en este caso es ejemplo bloquea dxdy. Como objeto de archivo. Entonces aquí ejecutamos las funciones o ejecutamos el código que queremos estar usando nuestro archivo de archivo. En este ejemplo, vamos a usar una línea for-loop. En objeto de archivo. Vamos a imprimir la línea. Vamos a ver que imprime cada línea en el objeto de archivo. Ahora porque el archivo ya contenía nuevas líneas aquí, cada vez que hago esto, estoy agregando una nueva línea, un personaje nuevo, ya que ya tiene una nueva línea. Y la función de impresión cada vez que se ejecuta, agrega una nueva línea también. Es por eso que está agregando dos nuevas líneas al mismo tiempo. Entonces para eliminar eso, podemos usar el método de tira. Y de esa manera obtenemos el expediente sin las nuevas líneas adicionales. Lo bueno de la declaración width es que cada vez que se utiliza un bloque de ancho, cada vez que el bloque ancho termina o termina, cerrará el archivo automáticamente. Se abrirá el archivo como objeto de archivo. Entonces se puede utilizar el objeto archivo. Puede usar un bucle for para recorrer cada línea en el objeto de archivo. Puedes imprimir cada línea. Y cuando este bloque de código termine de ejecutar el archivo, nos pondremos, nos acercaremos automáticamente sin que necesitemos decirlo explícitamente. Resulta que la función abierta podemos pasarla en la ruta del archivo así como en el modo. Hasta ahora aún no hemos pasado en el modo, ya que utiliza la R tiene un valor predeterminado. R es para leer abrir un archivo para solo lectura. Entonces, hasta ahora hemos estado indicando implícitamente que estamos abriendo el expediente para su lectura. Pero hay otros tipos de modos que podríamos agregar y podríamos usar, por ejemplo, W es abrir un archivo por escrito solamente, y esto eliminará el archivo si ya existe, o crear uno con eso nombre. Si no existe ya, entonces la x es cuatro abierta para la creación exclusiva, fallando si el archivo ya existe, entonces a es para abrir para escribir, añadiendo el final mismo del archivo. Por lo que a es para anexar. B es para el modo binario, usando esto a lo largo de la lectura y la escritura. Y T es para el modo texto, que es el predeterminado usando eso a lo largo de la lectura que estamos escribiendo modo. Entonces B y T, T es el predeterminado y B sería, no, no lo querríamos demasiado brillante para un binario, un archivo binario. Entonces plus es para abrir para actualizar, leer y escribir. Algunos ejemplos son plus, lo que significaría abrir un archivo tanto para leer como para escribir sin truncar primero. Y luego w1 plus que están abriendo el archivo tanto a leer como a escribir. Truncalización del expediente primero. Para abrir el archivo para lectura en modo binario, podemos usar RB, que tiene lectura y luego binario para anexar a un archivo binario usado AB. Los archivos de texto contiene archivos de cadenas archivos binarios contenidos serie de bytes. Dicho de otra manera, los archivos de texto son legibles por humanos y los archivos binarios no lo son. Algunos ejemplos de archivos binarios incluyen imágenes, videos y archivos de compresión. Y por último, podríamos usar el atributo mode file object para obtener el modo en el que el archivo estaba abierto. Entonces como ejemplo de cómo crearíamos un nuevo archivo, podríamos hacer algo como este ejemplo, dot TXT. Entonces vamos a decir lo correcto como objeto de archivo. Entonces aquí podemos usar el objeto de archivo, objeto , derecho, método para escribir texto nuevo. En este caso, lo que sucederá cada vez que vuelva a mi expediente, este era mi archivo de texto. Cada vez que vuelvo a este ejemplo de archivo de punto TXT, no incluiría todo esto. Si volví y trato de abrir ese expediente. Este es el expediente que obtendría si volviera a buscarla e intentara abrir ese expediente. Porque el w lo que hace es que trunca primero el archivo y luego le escribe. Y el método write se usa para escribir lo suficiente como para anexar al final del archivo. Con método directo, hay ciertas cosas que tal vez quieras considerar. Por ejemplo, los portadores devuelven la nueva línea o los caracteres finales de línea para, para los textos que vas a añadir. Ya que depende hasta el final de la línea, se pueden utilizar estos caracteres para cada uno como un carro devolver la nueva línea en terminaciones de línea tanto para Windows como para las unidades para los sistemas operativos Mac. Dulce, así que hagamos un recapitulativo ahora. Los archivos son una gran manera de guardar datos fuera de la ejecución actual de su programa. La función integrada abierta acepta una ruta de archivo, que puede ser rutas relativas o absolutas, y devuelve un objeto de archivo. Puede usar la función abierta y luego archivar métodos de objeto como leer, contar, buscar y cerrar métodos. Pero la forma más conveniente de trabajar con archivos es más que la sentencia width, usando el width open file.txt como declaración de objeto de archivo tiene la ventaja de que el archivo es automáticamente cerrado después de que se ejecute el bloque o el bloque de código, incluso si ocurre un error al imprimir todas las líneas del archivo que puede utilizar para línea en el objeto de archivo y dentro del bloque de ancho, y luego imprimir cada uno dentro del for-loop. Entonces hay modos diferentes, diferentes. No se puede reabrir la función. El defecto es RT, que es lectura y texto. Y uno común que se puede utilizar como el pluss r, que abre un modo de archivo. En modo texto tanto para la actualización como para la lectura. Un modo común puede ser R plus, que se abre en modo texto para actualizar, leer y escribir. Y por último un set over a la sección de entender. hoy tenemos tres preguntas con eso que tienen que ver con el manejo de archivos. Así que buena suerte con estos y háganoslo saber si tienes alguna pregunta en el apartado comunitario, ahí estará activo. Si no, buena suerte con estos y te veré mañana. 25. Día 22 - Manejo de Excepciones: Bienvenido de nuevo al día 22. Bueno. Los objetivos de hoy, tenemos errores y excepciones en el manejo de excepciones. Se trata de excepciones hoy. Vamos a saltar a la derecha en la sección de aprendizaje. Hay al menos dos tipos de errores. Tenemos errores de sintaxis y luego tenemos excepciones. Si fuéramos a ejecutar este código, veríamos que obtendríamos un error de sintaxis, sintaxis no válida porque esta sintaxis no es válida. Entonces ese sería el primer tipo de error. Y luego si tratamos de ejecutar algo como esto, como una división 0, obtendríamos un error de división 0 y esto sería una excepción. Lo mismo si ejecutamos el código a continuación, obtendríamos un error de nombre porque Pam es una variable indefinida no está definida. Entonces finalmente, si tratamos de agregar una cadena como una, como un, como un entero, obtendríamos un error de tipo sólo puede concatenar cadenas a cadenas. Obtendríamos un error de tipo, que es otro tipo de excepción. Podemos ver aquí cómo las excepciones pueden venir en diferentes tipos. Entonces los, los ejemplos que mostramos antes, somos ZeroDivisionError, nombre error y tipo par, podemos usar un try y excepto block para manejar posibles excepciones que puedan surgir. Lo que esto hace es que intentará ejecutar el bloque de código bajo la instrucción try. Y si se plantea una excepción, dejará de ejecutar el try-block e irá a revisar el bloque excepto. Si la excepción planteada coincide con alguna de las excepciones en el bloque excepto, entonces ese bloque se ejecutará. ¿ Qué significa esto? Tenemos un intento y excepto bloque. Veamos un ejemplo de un caso de uso real. Tenemos aquí un bucle while, a la vez que es cierto. Entonces esto seguirá infinitamente a menos que pase algo en este descanso donde vamos a probar esto, vamos a tratar de UserInput. Y vamos a pedirle al usuario que por favor introduzca un número. Y luego vamos a decir número. Vamos a transformar eso en un entero. Y luego nos vamos a romper, excepto si obtenemos un error de valor. Si obtenemos un error de valor en algún lugar alrededor de este bloque try, entonces este bloque excepto se ejecutará y luego imprimiríamos en la pantalla número no válido. Por favor inténtelo de nuevo. ¿ Cuándo obtendríamos un error de valor? Bueno, cada vez que obtenemos algo como si recibíamos una carta como entrada, cada vez que tratamos de int una letra, obtendríamos un error de valor o algo así. Tratemos de ejecutar esto como ejemplo. Por favor, introduzca un número. Entonces si lo hice W, me dirá número inválido. Por favor, inténtelo de nuevo y vea cómo el while, el loop while, se ejecuta de nuevo. Porque manejamos la excepción y luego el while es igual a true, y luego el bloque de código se ejecuta de nuevo hasta que lo intente de nuevo, voy a seguir recibiendo algo la misma iteración de la misma iteración hasta que yo introduzca un número válido, por ejemplo, tres. Y eso significaría que el código se ejecutaría con éxito. Se romperá, saldrá del bucle while y el código se ejecutaría con éxito. Si quisiéramos, podríamos sumar más tipos para ser atrapados por el bloque excepto. Añadiríamos esto usando la notación tupla. Por ejemplo, aquí, cualquier cosa que se plantearía como un error de valor, un error de tipo o un Neymar sería atrapado por este bloque excepto y luego este código se ejecutaría después de eso. Es así como entraríamos diferentes o varios tipos de excepción, excepciones a ser copiando excepto bloque. Hay otra forma en la que podríamos usar el bloque excepto. Y de esta manera sin entrar nada ni nada, ningún tipo de excepción, esto funcionaría como un comodín y esto cogería cada tipo de excepción que iba a ser planteada por este bloque try. Esto no se recomienda necesariamente porque si una excepción imprevista, donde corrimos aquí, sería atrapado por este excepto bloque. Y si esto fuera, el código para manejar eso se ejecutaría aunque no esperáramos esa excepción. No se recomienda utilizar un comodín. El uso de un solo, un valor único o un solo tipo de excepción es el caso de uso. veré más a menudo porque eso es lo que intentaremos predecir un solo tipo de error y manejaremos un solo tipo de error en la excepción. Las excepciones no solo soportan todas las excepciones cuando se levantaron o suceden de inmediato. Y el try-block, si hiciéramos referencia aquí a nuestra función, plantearía esa suposición aún, entonces eso se llamaría, eso sería manejado por la excepción también. Por ejemplo, si tuviéramos esto como una función, simplemente devuelve int del argumento, entonces aquí usaríamos num igual num igual turno en función. Entonces la entrada del usuario. Si fuéramos a ejecutar esto y luego decir que un número permanecería involucrado, por favor inténtelo de nuevo hasta que inputamos un número y luego se correría con éxito. Pero aquí está destinado a ver que si tuviera una referencia de función en algún lugar, algún otro lugar en el error ocurrió en la función en lugar de en el código real directamente. El aire, ya que sucedió en el mismo bloque de código, se levantaría y se manejaría menos esperado. Puedes definir tus propias excepciones heredando de la clase de excepción base. Aquí estamos creando nuestra propia clase o excepción propia, que se llama aire. Y es heredar de la excepción base desde aquí. Por lo que inherimos la excepción que sería la clase padre y esta sería una clase hijo. Y en este caso sería una excepción. La mayoría se definen con nombres que terminan con un error. Eso es convención. También puedes encadenar múltiples excepciones. Entonces si yo fuera a crear un par de errores ahí, éste heredaría de este aire, del padre de allí. Y voy a decir clase. Segundo. Éste heredaría del primer error. Entonces puedes ver cómo hay, hay algo así como un árbol de herencia sucediendo aquí. Ahora diría que para clase en, voy a decir error. Primero, su segundo ahí. Quieres probar. Quiero tratar de usar la declaración de raise. Ejecutar una carrera cada clase. Excepto, excepto la secundaria. Imprimir. Segundo. La mayoría excepto se puede encadenar excepto bloques. En primer lugar, van a decir print. Primero. Por último, acepte aire. Y voy a decir print. ¿ Qué pasa si ejecuto esto? Nos pondríamos el error OK, luego primero y luego segundo. Porque para el primer error, el primero, pudimos ver que cuando se intenta, cuando abraza el aire. Por lo que va de cuatro clases en estrecho, comienza ahí, el try-block y racista de air. Entonces seguirá cada uno excepto bloque. Cuando va excepto secundaria, cae en no la secundaria. Y si false sigue el siguiente excepto error, entonces cae el siguiente excepto bloque. Y dice, si esta áreas la primera área, ya que no lo es, cae por tercera excepto bloque y luego finalmente termina imprimiendo el aire porque cae por este error final excepto bloque. Entonces el primer salto es el mismo, Lo mismo. El primero caerá en primero y luego el segundo lo sigue al segundo. Pero si los bloques excepto fueran invertidos, por ejemplo, si éste hubiera estado aquí, entonces éste habría estado aquí. Conseguiríamos cada vez la era aérea, una era porque cada error cae en la clase aérea desde los errores. Y todas las clases heredan de la misma excepción base del mismo error raíz. Por eso conseguimos aire, aire, aire. Imprimimos cada vez el primero excepto bloque. Eso sucede como vimos en el ejemplo anterior, la declaración de carrera permite al programador correr un tipo de excepción, La única carrera de argumento indica la excepción a plantearse y esto posiblemente sea ya sea una instancia de excepción, lanzar una clase de excepción. Una clase de excepción siendo una clase que deriva de la excepción, la excepción base, como vimos aquí arriba, si una excepción clases pasaban implícitamente instanciadas llamando a su constructor sin argumentos. Entonces esto significa que por ejemplo, esta clase de error ha pasado. Inicialmente instanciaría esta clase aérea. Y si tuviéramos a nuestro constructor en esta clase con un constructor en esta clase, entonces ese constructor se ejecutaría porque sería instanciado. Mirando hacia atrás este ejemplo anterior, también íbamos a ver cuál es la declaración L. Realmente simple, es realmente declaración de trato simplemente sucede cada vez que el try-block se ejecuta con éxito. Entonces, por ejemplo, si quisiéramos agregar esta parte de break, podríamos agregarla a la declaración else. Podríamos imprimir el éxito, el éxito también. De esta manera, esto nos permite asegurarnos de que estamos aislando líneas. Entonces de esta manera, estamos aislando estas dos líneas, dos para el try-block y no estamos incluyendo la impresión y la declaración break en el try-block. Esta es una buena manera de aislar el manejo de excepciones a un par de líneas menos. En lugar de generalmente apegarse a algo que podría no ser lo que estamos tratando de apuntar. En este caso, cuando ejecutamos este código, obtendríamos el mismo comportamiento que el otro código. Estamos tratando de introducir letras, no funciona. Los números nos dejarían. No funciona hasta que ponemos un número real. Y luego dice éxito, el código termina funcionando. Impresionante, Así que ahí es donde nos quedamos ahora. Existen dos tipos de errores, errores de sintaxis y excepciones. Las excepciones vienen en diferentes tipos. Algunos comunes son ZeroDivisionError Neymar y escriba allí. Podemos ver la documentación de Python para que sea lista exhaustiva. Podemos usar un try y excepto bloque para manejar excepciones. Python, intentaremos ejecutar el bloque de código dentro de la instrucción try. Y si se plantea una excepción, capaz de comprobar la sentencia except y ejecutar ese código si hay una coincidencia. Como todo lo demás en Python, las excepciones son simplemente objetos de una determinada clase. Todos son una subclase de la clase incorporada de excepción base. Si quieres crear tu propia excepción, simplemente clase creativa que hereda de la excepción, que ya hereda de la excepción base. Y por excepciones de convención y por error. El enunciado de carrera se puede utilizar para plantear explícitamente una excepción. Por último, veamos la sección de entender. Tenemos cinco preguntas para hoy. Recuerda que estos son, esta sección es más o menos la sección más importante porque es donde realmente llegamos a aprender lo que estamos viendo en la sección de aprendizaje cuando tomamos medidas y en realidad hacemos estas preguntas. Así que buena suerte con estos. Y si tienes alguna pregunta, siéntete libre de publicarlas en la sección de comunidad en el chat, y ahí estaremos activos. Pero de cualquier manera, te volveré a ver mañana. 26. Día 23 - Módulos y biblioteca estándar de Python: Bienvenido al Día 23. Y veamos los objetivos de hoy. Primero, vamos a empezar por buscar romper creencias limitantes. Entonces vamos a empezar a buscar módulos, la biblioteca estándar de Python, apologistas como los cómics Python. Y luego mirar principalmente simplemente no reinventar la rueda. Vamos a saltar a la derecha en la sección de aprendizaje. Quiero tomar un segundo para hacerte saber que estás codificando ahora, hoy es la última lección de conceptos reales. Y después de esto, estarás listo para dar un proyecto para ir y usar eso para conectar los puntos de lo que hemos estado aprendiendo hasta ahora. Enhorabuena por venir tan lejos. De verdad admiro el compromiso de volver y llegar a este punto. Si solías pensar a ti mismo, no puedo aprender a codificar. Esa fue una de tus creencias limitantes. Entonces te has probado oficialmente a partir de, me parece muy emocionante probarnos equivocados cuando se trata de limitar las creencias. Entonces la pregunta comienza a convertirse en, ¿qué otras creencias limitantes quieres romper a continuación? Por ahora, sentémonos en nuestra última lección conceptual donde estamos hablando de módulos. El módulo es simplemente un archivo que contiene objetos Python todo el camino desde variables hasta clases y funciones. Puedes importar un determinado módulo tu script de Python y luego poder usar todo lo que hay en ese módulo en tu script sin la necesidad de reescribir ningún código o tener que reinventar la rueda. Para empezar, veamos cómo importar nuestros propios módulos sass de archivos main.py. Veamos este ejemplo. Tenemos este rasguño para no pi, y luego tenemos una función. Y tenemos alguna clase aleatoria aquí mismo. Y luego tenemos algún código que bronce cada vez que se ejecuta un script, y en lugar de ejecutar scratch dot py. Entonces si fuéramos a ejecutar este código vería correr rayado Pi. Y entonces ese sería todo el código. Resulta que podemos importar este es el contenido de este archivo a los objetos de este archivo a un archivo separado mediante el uso de la instrucción input, simplemente llamando al scratch el otro nombre de un archivo. Si está en la misma carpeta, podemos importar scratch dos. Y ahora aquí podemos simplemente llamar a los contenidos de Scratch a, por ejemplo, aún por funcionar. Podríamos llamar a esto y luego decir, por ejemplo, imprimir scratch dos en T2. Y luego vamos a sumar dos al número cinco, porque podemos ver que la función U2 simplemente devuelve el argumento más dos. Estábamos diciendo que imprimimos el ítem que se devuelve de eso a dos funciones que se llama desde este archivo importado, importado. Veamos qué pasa aquí. Cuando ejecutamos esto. Vemos corriendo scratch a dot py y vemos el número siete. Entonces básicamente esperábamos solo un número siete porque si solo estamos ejecutando este código, este crash dos, solo esperamos que salga el número siete. ¿ Por qué este running scratch dot t2 o scratch to dot py surgió cuando ejecutamos este código, solo este código. El caso es que cada vez que importamos un archivo, ese archivo se ejecutaría en realidad. Este archivo se ejecutaría en realidad donde sea importado. Entonces por eso marca y se imprimió sprint. Por lo que imprimió esta frase que teníamos en el archivo Scratch to dot py. Entonces, ¿cómo manejamos esto? Resulta que por convención hay una manera de manejarlo y entre escribirlo. Y luego voy a explicar cómo funciona, pero es más o menos de la siguiente manera. Entonces si el nombre es igual a main, entonces, entonces queremos correr main. La función principal. Principal. Va a ser igual a cualquier código que estemos ejecutando en este archivo. ¿ Qué significa esto? Básicamente estamos creando una función adicional llamada la función principal. Y estamos agregando el contenido principal del archivo. Entonces estamos diciendo si nombre igual a main, luego ejecute main. ¿ Cuál es este nombre, cosa del nombre? ¿ Qué es? Resulta que es un atributo del propio archivo cada vez que. Y eso es solo uno de esos, un ejemplo. Voy a ejecutar este archivo y voy a imprimir el nombre de impresión. Cuando lo ejecutamos, vemos bien, imprimir nombre, vemos que su principal. Entonces el nombre es igual a main, así que es por eso que imprime el nombre sprints main y luego corre a los sordos, la función de dominio también. Pero resulta que cuando ejecutamos la función desde un archivo separado, en este ejemplo, cuando traes de aquí, cuando ejecutamos scratch D2, vemos que no obtenemos la función impreso a la pantalla, pero en su lugar nos rayamos para imprimirlo la pantalla porque eso es lo que hizo esta declaración de impresión. Esta declaración de impresión cuesta a este scratch dot t2 para imprimir porque el atributo name será diferente si ejecutamos este script directamente o si lo ejecutamos desde una declaración de entrada. Por lo que ahora si elimino esta declaración de aquí. Y dejo esa afirmación como esta como una función principal def. Y luego si nombre principal igual a main, run main, entonces cada vez que ejecuto esto veríamos resultado esperado, que es apenas el número siete. Pero sólo para mantener la convención actualizada y para asegurarnos de que estamos manteniendo la convención de lo que estamos ejecutando. Vamos a ejecutar el nombre igual a main de nuevo aquí porque también queremos luego ejecutar main. Entonces aquí arriba vamos a definir main. Y lo que vamos a hacer, el guión real que estamos tratando de ejecutar aquí. Vale, entonces ahora si guardo esto y lo ejecuto, se ejecuta con éxito porque cada vez que lo ejecuto directamente, si el nombre será igual a main y luego ejecutará la función principal. Y luego llamará al script importado, que también está rayado. Pero no ejecutará el código principal de Scratch a porque lo hemos envuelto en la convención correcta. Ahora echemos un vistazo a la biblioteca estándar de Python. Biblioteca estándar de Python. Entonces biblioteca de módulos que viene con la instalación de Python. La biblioteca cuenta con módulos con código muy útil. Por ejemplo, hay un módulo para analizar archivos CSV, para registrar para nosotros solicitudes de URL, análisis JSON en muchos otros más. Empecemos con un ejemplo de un módulo llamado time. Una vez que importamos el módulo, entonces tenemos todo a nuestro alcance a través de esa importación. Podemos ver a través de este auto-relleno de taquigrafía que obtenemos un montón de cosas, nos lo facilitan. Veamos el ejemplo de la función de sueño. Lo vamos a pasar en el número tres. Después tenemos un heno estampado y luego imprimimos ahí. Entonces corremos esto. Veremos que imprime, oye, espera tres segundos y imprimen estampar la función de sueño como una función de ejemplo que importamos el módulo de tiempo y luego usamos la función sleep para tener un código de reposo durante tres segundos o como muchos que ingresemos en la función. Y luego otro ejemplo es una función de hora local, que cuando corremos, cuando imprimimos lo que recuperamos de ella, cuando lo ejecutamos, obtenemos alguna información sobre la hora local, para ejemplo, en el año 2021. Y luego obtenemos algo más de información sobre la hora localmente. Esta declaración, el tiempo de importación, importaría todo el módulo. Para importar una función específica desde el módulo usamos desde el tiempo de importación de sueño, por ejemplo. Entonces aquí, la ventaja de este snip de entrada es que aquí no lo haríamos, no necesitaríamos agregar la especificación de tiempo. Por lo que podríamos simplemente decir dormir inmediato porque lo tenemos disponible para nosotros. Ahora, cuando ejecutemos esto, vamos a ver qué recibimos un error. Obtenemos un tiempo no definido porque el tiempo no está definido. Por lo que necesitaríamos quitar el tiempo de aquí, pero entonces tampoco se define la hora local. Si fuéramos a importar la hora local también, varias funciones diferentes que podríamos usarla así separadas por una coma. Ahora obtendríamos el mismo resultado que antes. Otro ejemplo de un módulo es el módulo aleatorio. Y entonces vamos a usar, que no sería de nanomolar, sería importación aleatoria. Y entonces también podemos hacer conjuntos de Alia para lo que importamos. Podemos decir entrada aleatoria como Rand si quisiéramos. Entonces ahora tenemos esa taquigrafía aleatoria. En lugar de tener que proporcionar al azar. Por ejemplo, podemos tener mi lista a través de un ejemplo y decir a, B, C. Y luego hay una función en el módulo aleatorio que se llama shuffle. Entonces podríamos hacer aleatoria o rand shuffle y luego pasarlo en mi lista. Y luego vamos a imprimir mi lista y ver qué obtenemos. Conseguimos un cdb. La función aleatoria del módulo aleatorio va a barajar todos los ítems de la variable que la pasamos. En este caso, lo pasamos en una lista. Cuando toma en esa lista, baraja los artículos y luego cambia o actualiza a esto, pero los nuevos elementos barajados. Entonces es HTTP en lugar de ABC. También podríamos usar el LES la siguiente manera que podríamos hacer desde Importación aleatoria, importación, aleatoria. Esto es un tiro. Entonces aquí no tenemos definido al azar. Ni siquiera tenemos afilada, la barajada definida. Vamos a usar sharp defined. Y luego corre esto de nuevo y mira lo que obtenemos. Obtenemos a, b, c porque resultó que eso fue una salida aleatoria, pero luego obtenemos un CB, luego BCA, se puede ver cómo estamos barajando lista que pasamos en la reunión. Hay otra forma en la que podemos importar todo desde el archivo aleatorio. Podemos decir de Importación aleatoria, importar todo, que es una estrella de aleatoriamente importante de todos. Y eso significaría que podemos hacer referencia cada elemento en el módulo Random. Podríamos referirlo de inmediato sin tener que hacer referencia a nada más. Se puede ahorrar barajado porque ya está importado, entonces podríamos ejecutar esto y esto funcionaría bien. El problema con la importación toda declaración es que no queremos usar, realmente no queremos usar esto y es peligroso, peligroso usarlo porque podríamos tener conflictos con lo que tenemos ya en nuestras funciones que ya tenemos en nuestro código. Una última cosa a mencionar sobre módulos o paquetes es que incluso son paquetes que puedes descargar online. En realidad, una de las mayores ventajas de aprender Python, que como sigue siendo popular y potente al mismo tiempo, muchos desarrolladores de todo el mundo han escrito asombroso bibliotecas con módulos que puedes descargar para hacer cosas increíbles sin tener que escribir el código de peso pesado por tu cuenta o tener que reinventar la rueda. Por lo que en realidad puedes buscar paquetes en línea, para módulos que tienen muchas funciones y funcionalidad que podrías usar sin rehabbing para reinventar la rueda. Algunos ejemplos o algunos paquetes de aprendizaje automático son algunos paquetes de estadísticas que podrías usar. Las cosas realmente interesantes por ahí, conseguir acceso a las bibliotecas públicas. Es tan fácil como usar un gestor de paquetes para descargar esas bibliotecas y luego usarlas en tus scripts. En este ejemplo, voy a estar usando pip, que debería venir con tu instalación de Python. Entonces en mi caso, puedes probar pip en mi cara es PIP3, para que también lo puedas tropezar a través de nosotros. Voy a decir pip3 install pandas, que es un módulo muy famoso el dataframe. Descargué pandas y ahora lo han descargado significa que puedo referirlo en mi guión. Puedo salvar pandas. Y en este momento tengo todos los, todos los generalmente utilizados tan amables como SPS. Puedo decir PS. Y ahora tengo todo desde ese módulo disponible para mi script. Entonces hay un ejemplo de cómo descargarías un módulo público desde el uso del Administrador de paquetes y luego usarlo en uno de tus scripts. Pero suite por ahora, hagamos un recapitulativo. Hoy fue la última lección conceptual al curso que estás codificando ahora, has hecho, lo has hecho hasta aquí, así que felicitaciones. Los módulos se utilizan en Python para aprovechar el código que ya se ha escrito y evitar reinventar la rueda o reescribir código o mantenerse secos con una codificación para que no te repetimos. Puedes una entrada tus propios archivos dot py como módulos para importar cualquier módulo cuando la biblioteca estándar de Python, que se instalaron al instalar Python o tres, puedes instalar módulos escrito por otros desarrolladores de todo el mundo y luego importarlos usándolos en tus scripts. Cada script tiene un atributo de nombre. Cuando ejecuta un script directamente, este atributo será igual a la cadena principal. Y al importar un módulo, ese archivo de módulo se ejecutará con el atributo name igual al nombre del script. Ya que cada vez que importamos un archivo dot py tiene un módulo, el archivo se ejecuta. Utilizamos el nombre if igual a la sintaxis principal tal y como se escribe en el código principal del script bajo la función que llamamos main by convention, existen varias formas de importar dependiendo del propósito de lo que es siendo importado, puede hacer importar el nombre del módulo o desde el objeto del módulo de entrada nombre del módulo, o desde el nombre del módulo importar todo lo que ese último no se recomienda. Puedes usar alias usando como mi LDS, o puedes usar pip tres para descargar instalar módulos en todo el mundo. Esto es lo que mencioné antes. Por lo que obtienes run pip en tu línea de comandos y dices pip instalar el módulo que quieres instalar, para instalar desde la biblioteca. Y finalmente nos fijamos en la sección de entender. Hicimos tres preguntas para hoy. Siéntete libre de hacer cualquier pregunta que puedas tener sobre estas en la sección de comunidad o en la sección de chat, porque ahí estaremos activos. Y si no, buena suerte con estos de cualquier manera. Y te volveré a ver mañana para empezar con el proyecto. 27. Día 24 - Proyecto - Aplicación de aprendizaje de Python (1/5): Bienvenido de vuelta a mi amigo al día 24. Veamos los objetivos de hoy. Por lo que el día de hoy quería ser el primer día del proyecto. Entonces vamos a empezar por descargar el proyecto desde GitHub. Entonces vamos a ver algunos contextos más desde los archivos de proyectos. Y entonces vamos a ver algunas técnicas, algunas técnicas útiles desde el concepto que ya conocemos, pero algo o algunas nuevas formas en las que podemos aprovechar ese conocimiento que ya tenemos en algunas técnicas útiles para el proyecto específicamente. Entonces nuestro proyecto final va a ser una aplicación de Python, que va a ser una aplicación de prueba, que estaremos ejecutando a través de nuestra interfaz de línea de comandos, que también hemos estado llamando a nuestra terminal. Se trata de una app que te cuestionará sobre el conocimiento que tienes sobre lo que quieras. Y en este caso, lo vamos a hacer en nuestro conocimiento de Python, podrás practicar nuestras técnicas de recuerdo activo. Podremos practicar nuestra repetición espacial y todo eso con el propósito de recordar todo lo que hemos aprendido, el concepto de la estructura de la aplicación te dejará quiz tú mismo con cualquier tema sobre cualquier pregunta que enlazes, y mantendrá una puntuación para que sepas qué temas necesitan más atención y lo que necesitas para mirar más a fondo. Así que echemos un vistazo a la aplicación por ahora para descargar los archivos que necesitaremos para el proyecto. Vamos a GitHub.com. Aquí. Aquí vas a buscar. Te fijas en la búsqueda GitHub, vas a buscar magnético. Aprendizaje de Python. Github es simplemente un lugar donde gente puede compartir el código o puedes pensar en él como un patriota. La gente podría compartir su código en todo el mundo. Por lo que aquí puedes ver que si vas a la facilidad cognitiva, mi repositorio y luego al repo de aprendizaje de Python, que significa repositorio. Aquí puedes ver que hay un README que con una descripción de cómo funciona el proyecto o cómo funciona el script de Python. Entonces lo que vamos, vamos a estar haciendo es que vamos a estar descargando el archivo como un archivo zip. Entonces vas a hacer click aquí, eso va a descargar el zip. Y luego vas a abrir ese SIP. Suelo abre la carpeta Python. Y ahora verás que tienes tres archivos JSON diferentes. Un punto p-y, el archivo principal, los guiones principales, y luego un léeme, el archivo README más simple que eres, que estás viendo aquí abajo. Este es el archivo léeme, sólo una página de bienvenida y una explicación de lo que hace el guión. Entonces tienes el archivo principal, que es el proyecto principal con el que vamos a estar trabajando. Y luego tenemos estos tres archivos JSON, que son los datos que vamos a utilizar para almacenar las preguntas, los temas, y el archivo de puntuaciones pasadas. Entonces cuando abramos este archivo, el archivo principal va a verse algo así. Cuando ejecutemos este Python tres main, vamos a ver que nuestra aplicación se está ejecutando. Así que vas a ver bienvenido a tu nueva aplicación de aprendizaje de Python. Selecciona un tema para revisar y se te harán a México diez preguntas por carrera. Así que buena suerte. Y esta es la aplicación principal. Ahora cómo funciona esto es que simplemente seleccionas un número del tema que quieres estar revisando. Hagamos uno por ahora. Por lo que querrías, estaría seleccionando el tema de cadenas que tiene dos preguntas, vendrá una y Enter. Nos van a preguntar, vamos a ser pronta, vale, una de dos preguntas y ¿qué no aprende función? ¿ Sé por ahora que la función Len devuelve la longitud de un objeto pasado a ella. Vamos a ver, vamos a decir C o C. Eso es correcto. Buen trabajo. Y luego presione cualquier tecla para continuar. Voy a presionar Enter y luego continuar con la siguiente pregunta. Entonces yo también cuestiono rápido para explicar la siguiente declaración. Imprimir. Está bien, es autoformato. Es una función de formato. Sé que va a ser, digamos que un iba a salvar eso es correcto. Buen trabajo. Pulse cualquier tecla para continuar. Y luego me dice increíble que anotaste un 100% y luego ingresas sí, para volver a ejecutar la app, ingresa cualquier otro q para salir. Voy a decir que sí para volver a ejecutar la app. Y voy a ver que la partitura anterior para la cadena, tema de cadenas está poblada ahora es 100% ahora porque lo hice la última vez en Xcode subió un 100%. Así es como se está ejecutando el guión. Y ahora puedes ver que puedes correr y puedes jugar con esto como quieras. Digamos, por ejemplo, ahora mismo seis, quiero a la sección todo. Esto reúne preguntas de todos los temas y reúne un número aleatorio de diez preguntas. que puedan ver, vamos a ver aquí queremos guardar el último ítem de una cadena de la lista que sería B. Eso es correcto. Buen trabajo. Sólo voy a estar ahí va a haber otra vez, eso es correcto. Buen trabajo. Um, va a haber aleatoriamente haciendo algunas cartas. Casi lo tienes. La respuesta correcta fue, y me dice la respuesta correcta cuando lo hago mal. Casi estás custodiado por truco pregunta la respuesta correcta. ¿ Qué es lo inmutable? Ok. Sólo lo estoy haciendo al azar aquí. Me estoy equivocando porque los estoy haciendo aleatoriamente. Y veamos, anotaste 40% y luego si vuelvo a hacer sí, quiero intentarlo de nuevo, luego rebasaste el 40% aquí. Y si lo intenté de nuevo el 100, eso lo repoblará en un 100 y como el acorde anterior. Pero ahora se puede ver más o menos cómo se rama la app, y eso es más o menos lo que pretendemos hacer. Lo que vas a hacer ahora mismo es que vas a hacer, vas a mirar en el guión principal de Python, seleccionar todo y eliminarlo. Porque esto es un probablemente duplicado con el que va a estar trabajando. Entonces la pregunta es archivo, vas a estar usando esto, vamos a estar usando esto así como el archivo de temas y así como el archivo de puntuaciones pasadas, que al principio estaba vacío, un cadena JSON vacía. Lo que te he pedido que hagas en este momento es jugar con los guiones antes de realmente antes de eliminar los contenidos, jugar con el guión. Entonces ya sabes cuál es la, cuál es la funcionalidad de la misma. Porque, por ejemplo, otra funcionalidad que tenemos es que cada vez que haces la pregunta, por ejemplo, si hago el tema uno contra cadenas, este orden de ABC es aleatorizado. Siempre es como un orden diferente. Ese es un buen ejemplo de algo que no funciona. Y luego otra funcionalidad que tiene es que un máximo de diez preguntas. Para, por ejemplo, una sección tiene más de diez preguntas como la sección all. Y hice todo lo que dije que hacía antes, solo haría un máximo de diez preguntas. Esa es otra cosa a tener en cuenta, siempre al azar también, que selecciona siempre preguntas aleatorias y siempre en un orden aleatorio de a, B, C, y D. Así que tómate algún tiempo para familiarizarse con el guión. Ahora ya sabes cómo funciona. Y también pasar por el README, pasa por el archivo README o a través en el repo, se puede ver más legible. Repasa por el archivo Read Me legible y luego entenderás más sobre la funcionalidad del código y hacia dónde estamos tratando de apuntar. Entonces, en primer lugar, ¿cómo leemos un expediente? Bueno, ya hablamos de leer archivos y ahora te mostraré cómo podemos trabajar con un tipo de archivo muy común en programación llamado JSON. Json significa JavaScript Object Notación. Y podemos pensar en estos archivos como si estuviéramos mirando un diccionario de Python. Entonces veamos las preguntas JSON archivo por ejemplo. Podemos ver cómo es muy similar a un diccionario de Python. Podemos ver en este momento que la clave sería este número uno. Entonces el valor para esa clave sería todo esto dentro de los corchetes rizados. Entonces dentro de estos corchetes rizados, que es un diccionario de sí mismo, obtendríamos diferentes claves. Entonces temas, preguntas opciones, responden como claves diferentes, y luego cada clave con un valor diferente. Entonces este valor sería lista. Por ejemplo, este valor sería string. Este valor sería otro diccionario. Por lo que podemos ver tenemos un diccionario dentro de un diccionario, dentro de un diccionario principal. Entonces un JSON cuerdas que comienza aquí y termina todo el camino aquí abajo como un soporte rizado. Entonces es más o menos, podemos pensarlo como un diccionario de Python. En esta pregunta es archivo, podemos ver que la pregunta uno tiene los temas, cadenas, listas, diccionarios, y luego pregunta, la pregunta real que es uno no presta función do, y entonces las diferentes opciones que tenemos, las diferentes opciones ABC. Y luego por supuesto que necesitamos la respuesta. Necesitamos la opción correcta para la respuesta correcta, que es la letra a. pero en el programa real cuando se ejecuta, realidad baraja estas respuestas y entiende la inteligencia, que es la respuesta correcta. Bueno, ¿cómo mejoramos realmente? ¿ Cómo cargamos realmente el contenido de este archivo en nuestro script principal? Lo que hacemos aquí, lo que hacemos, o lo que usamos aquí es la importación, la biblioteca JSON, que está en la biblioteca estándar de Python. Entonces no necesitamos descargarlo, que simplemente lo importan a nuestro archivo. Entonces para utilizar la biblioteca Importar la JSON, usamos de la siguiente manera. Si estuviera, por ejemplo, en el ancho de carpeta mi, mis archivos que quiero leer. Iría a esta carpeta y luego usaría en la instrucción import JSON. Y luego lo haría con abierto como vimos en la otra sección. Hagamos temas, por ejemplo, el archivo de temas. Echemos un vistazo al archivo de temas. Es simplemente un ancho de diccionario, cinco claves y valores phi. Diccionario muy simple. Veamos los temas JSON, archivo JSON como objeto de archivo. Entonces simplemente usamos, hagamos las declaraciones impresas y usamos la biblioteca JSON. Utilizamos la función de carga y la pasamos en el objeto archivo. En realidad llamemos a esto. En lugar de imprimirlo de inmediato, vamos a llamar a este archivo load JSON. Objeto de archivo de carga de puntos. Ahora cuando imprimimos, cuando imprimimos la carga del archivo, vemos que tiene el contenido del archivo como diccionario. Porque cuando imprimimos tipo carga de archivo, vemos que es un diccionario. Entonces otro ejemplo que nos será útil usar hoy sería la función dump JSON. Cómo funciona éste es que usaremos, por ejemplo, con abierto. Vamos a estar usando las puntuaciones pasadas en este curso, y luego lo vamos a pasar en la W, la opción W, que nos permite escribir en el expediente. Y entonces quiero decir objeto archivo. Y luego vamos a decir k JSON volcado. Entonces vamos a decir carga de archivos, que hace referencia a la carga de archivo anterior que teníamos, habíamos declarado. Entonces vamos a decir objeto archivo. Entonces cuando leemos leemos puntuaciones pasadas para line in. En realidad todavía necesito cerrarlo aquí. Y como objeto de archivo para línea en objeto de archivo, línea de impresión. Y esto inesperado creo que va a faltar paréntesis. Por supuesto, imprimir objeto de archivo que no está definido. Sigue haciendo objeto. Podemos ver que tiene los contenidos que esperábamos porque entramos en el expediente. También vamos a estar usando una función llamada shuffle de la importación de la aleatoria del aleatorio, lo siento, la biblioteca aleatoria. ¿ Qué hace esta función? Y lo hemos visto en el pasado en una sección de pase. Pero lo que hace esta función es que si tenemos una lista, tenemos B, C, y D. Digamos. Entonces dijimos, dijimos al azar, barajar mi lista o pasarla en mi lista. Entonces cuando imprimimos nuestra lista va a ser barajada. Entonces BAC d, toma en un argumento como un argumento terrible y devuelve una versión barajada de ese objeto. Otra función útil a saber es una de la biblioteca del sistema operativo. Importamos la biblioteca del sistema operativo. Y luego cuando hacemos sistema operativo, esto es como si estuviéramos introduciendo o enviando a la línea de comando o declaración. Si aclaráramos aquí, la pantalla despejaría esta. Lo que haría esta declaración es que si hacemos sistema de entrada, pasará en cualquier cadena que lo pases a la función del sistema. Lo pasará a la pantalla como si fuera, como si lo estuviéramos llamando nosotros mismos. Si dijimos la función clara, nos despejará la pantalla. Entonces haremos el equivalente a éste. A ver si lo estábamos haciendo claro. Pero eso sería, eso funcionaría para el sistema Mac OS. Si tuvieras un sistema operativo Windows, usarías el sistema operativo. En lugar de claro, usarías CLS. En nuestro caso, comando no encontrado porque eso no funciona en una ópera y nuestro sistema operativo. Pero si tienes un sistema operativo Windows, TLS funcionaría para esa opción. La última que vamos a mirar, la última técnica que vamos a mirar. Que si quisiéramos dejar nuestro programa, si quisiéramos salir, si estamos ejecutando un código y queremos salir o salir del código, correríamos Una excepción de excepción muy específica que se llama salida del sistema. En este caso, no va a funcionar. No funcionará en el entorno IPython como esperamos que lo haga. Pero cuando subas un sistema, sal de tu código. Por ejemplo, vamos a encontrarlo. Entonces. Salida. Cuando lo subas en tu código, lo hará, dejará el programa. Así que cada vez que veas aquí adentro, volvamos a ejecutarlo. Siempre que veas Q enter, eso es en realidad llamar al sistema la carrera, la excepción de salida del sistema, y está abandonando el programa. Entonces así es como funciona eso. Eso fue todo por las técnicas de hoy. Y eso debería ser suficiente para ponernos en marcha y para ponernos en control de lo que estamos tratando de llegar para nuestro proyecto final. Impresionante, así que vamos a hacer un recapitulación ahora. Primero vimos que hemos descargado el archivo zip de GitHub y mirando el repositorio de aprendizaje de Python, repo significa repositorio. Después vimos el archivo README. ¿ Cómo fue la información útil sobre la funcionalidad del proyecto? Y el proyecto cuenta con tres archivos JSON de punto, pero los datos relevantes para el proyecto y un dot py, que es el archivo principal con el script real. También vimos que JSON significa JavaScript Object Notación, y podemos pensar en ello como el equivalente a un diccionario de Python. Después vimos las preguntas dot archivo JSON que tiene una muestra de preguntas que hacer para la aplicación de aprendizaje. Podríamos incluso agregar más preguntas a este archivo y se incluirían en el Python ampliar o el script de Python. Y por último, vimos algunas técnicas útiles. Vimos la declaración de importación JSON para importar la biblioteca json. Vimos la función de carga para cargar un objeto de archivo, y resolvimos la función dump de la biblioteca JSON también para volcar un diccionario en un objeto de archivo. También vimos esa importante aleatoria o la biblioteca aleatoria y vimos la función de la bilirrubina aleatoria que podíamos pasar en una lista para ser barajada. Después vimos que la biblioteca del sistema operativo y cómo podríamos usar la función del sistema para borrar la pantalla tanto para Mac como para Windows. Y por último, vimos cómo podíamos plantear una excepción de salida del sistema para salir del programa y que lo dejara de funcionar. Y ahora echemos un vistazo a la sección de entender. Por hoy. Quería descargar el proyecto de GitHub y ejecutar el proyecto y jugar alrededor con cómo el proyecto bronce y pensar en cómo los archivos de datos o el bud dot JSON archivos un útil para ejecutar el script. También borra el contenido del archivo main.py y comienza a hacerte preguntas sobre cómo irías sobre la programación que tú mismo. Y vamos a empezar a codificar juntos mañana. Así que buena suerte con estos posts. Cualquier pregunta que pueda tener en el chat. Nuevamente, comenzaremos a codificar el programa comenzará a codificar el proyecto final mañana. Nos vemos mañana. 28. Lección 25: Bienvenido a otro día. Está bien, definitivamente sigues matándolo. Quiero felicitarte por haber llegado tan lejos al rumbo. Estoy siendo serio cuando digo que mayoría de la gente ni siquiera se acerca a este punto. Y esto muy diferente, lo que te hace destacar de la gran mayoría de las personas que simplemente deciden renunciar temprano. La consistencia es una habilidad en la que mejorarás con el tiempo. Y eso es exactamente lo que hemos hecho aquí. Quiero decirte que te agradezco por estar aquí. Como saben, hoy se trata de descansar y volver a visitar cualquier lección previa sobre temas que pensamos que podríamos interiorizar un poco más. También me tomaré este tiempo para recordarte algunas de las claves para aprender. Por consistencia. Es exactamente lo que estamos haciendo. Volviendo a cada día. Cada día construyes más impulso. Piensa en cosas como entrenadas que podrían ser difíciles de empezar, pero una vez que se está moviendo, lo difícil se convierte en detenerlo. Para la repetición espacial. Revisa lo que has aprendido espacio a través del tiempo, a través del retiro activo, un excelente ejercicio para tu cerebro. Combina esto con un poco de descanso y recuperación de calidad y estarás aplastando la curva de olvido en poco tiempo. Por último, para preguntas o la respuesta, ser de mente abierta, curiosa y acerque el aprendizaje y los ejercicios diarios con la mente del principiante. Siempre hay un nuevo camino por el que no hemos caminado. Si crees que las has cubierto a todas, piénsalo de nuevo, espero que tengas un buen descanso y te veré de vuelta aquí mañana. 29. Día 26 - Proyecto - Aplicación de aprendizaje de Python (2/5): Bienvenido de nuevo al día 26, y este va a ser el primer día de codificación en el proyecto real, el proyecto final. Vamos a darle una oportunidad. Una vez que hayas descargado los archivos de GitHub, deberías estar mirando algo como esto. Tienes el archivo de preguntas, archivo de temas, el archivo core pasado, y luego el archivo principal main.py debe estar vacío porque debe eliminar todo lo que hay en él. Y eso es lo que vamos a estar haciendo por el proyecto final. Entonces para empezar, empecemos escribiendo la definición de la función principal al escribir esa configuración, se verá algo así. Y luego dentro de la función principal es donde comenzaremos a escribir nuestro código. La primera parte del código que vamos a estar escribiendo Es una función para cargar los archivos, la carga los datos de la pregunta Jake JSON, tema establece en la corteza pasada, eso va a buscar algo así. Agregué la cadena doc a la función principal que dice ejecutarlo ejecuta el código principal. Entonces agregué una función, una función que va a cargar los archivos JSON. Y luego paso en los tres archivos con las tres cadenas de los archivos de nombre, tres cadenas con los nombres de archivo. Después devuelve las preguntas, temas, y pasa curso en diccionarios a estas variables. ¿ Cuál sería la carga? La definición de la función de carga de archivos JSON. Bueno, la función se va a ver algo así. Definimos el archivo JSON. Entonces la función de cargar archivos JSON. Entonces tenemos una, una entrada arbitraria de nombres de archivo. Por lo que podemos poner entrada cualquier número de nombres que queríamos, y se convertiría en una lista en el nombre de archivo. Eso es lo que hacemos aquí abajo. Creamos una lista vacía con las cargas resultantes y luego pasamos por la lista de nombres de archivo. Y abrimos cada archivo como un objeto de archivo y luego hacemos una carga actual es una carga json desde la función de carga JSON load desde el objeto file. Después agregamos la carga actual a la lista de cargas resultantes y devolvemos eso. Escucha el final. Observe aquí cómo importamos la biblioteca JSON. Podríamos usar una función de carga json. Nuevamente, cuando devolvemos una lista, podemos ver aquí abajo en la función principal que desempaquetamos esa lista también. Si ingresamos tres archivos, esperamos tres salidas en esa lista. Y por eso funciona eso. Entonces aquí abajo, después de cargar los archivos en estas nuevas variables, queremos tener todos los datos compilados. Vamos a ver esta nueva variable de datos compilados. Y vamos a crear una función llamada crear datos compilados que use las preguntas, temas, y pase los diccionarios del curso como entradas. Y luego da salida compilaron diccionario de datos. ¿ Cómo va a lucir esta función? Entonces subimos aquí y creamos una nueva función llamada compilada. Crear datos compilados se pasa en las preguntas, temas, y pasar curso. Entonces veamos qué hace esta función. Se le necesitan preguntas, temas, y aprobar curso todos los diccionarios. Y esta función, lo que hace es que crea un dato compilado a partir de los contenidos cargados a partir de los temas de preguntas y archivos de contraseña. El primer paso que hacemos es crear un diccionario vacío. Entonces, literalmente, el primer paso que hacemos es que pasemos por este diccionario, que el diccionario de temas pase por número y el tema y simplemente añada los datos compilados, el número, y luego agregue un diccionario como el valor con el tema, con el nombre del tema. Ese es el primer paso que hacemos. Después creamos este adicional, adicional. Entonces miramos la longitud de los datos compilados y agregamos uno y creamos una cadena fuera de ella. Y agregamos este campo adicional que se llama, que tiene el tema como el Oldfield. Este es un campo que va a tener todas las preguntas y no se verá limitado por los temas individuales. Pero tendremos de una lista completa de preguntas. Cuando miramos la pantalla de salida que tiene el proyecto, podemos ver que tiene la lista de temas y luego tiene una categoría nula. Pensamos que las preguntas entraban en ella. Eso es más o menos lo que los datos que estamos tratando de entrar en los datos compilados, estamos tratando de conseguir el, el número de la idea del tema. Estamos tratando de obtener el tema, el número de preguntas, puntajes anteriores, y luego la lista de identificadores de preguntas que se anexan a cada tema. Así que eso es lo que estamos consiguiendo aquí abajo. Obtenemos, creamos un valor de datos con los ID de pregunta como una lista vacía. Estamos mirando la clave de datos individuales y el valor de los datos en los elementos de datos compilados. Y este fue un dato compilado de nuevo, recuerda que fue el primer diccionario que creamos. Lo que estamos tratando de llegar aquí es que hemos intentado poblar la pregunta Id es 40 para cada tema. Al principio, lo que hacemos es que hagamos una declaración if que va si el tema no es igual a o, hace algo y si es igual a o iría corriendo a esta otra declaración y se ejecutará otra cosa. Entonces veamos lo que hace adentro, aquí arriba. Si no es igual a todos, lo que hará es que mirará los ítems de la pregunta. Vamos a ver todas estas preguntas, estas preguntas como diccionario y pares clave y de valor. Y luego se va a ver si el valor de los datos, si el tema está viendo los temas de valor. El tema que estamos buscando en este momento está en los temas de pregunta. Entonces va a anexar, anexará los datos a su lista de preguntas Id , que comenzó como una lista vacía. Se anexará la clave de esa cuestión. Lo que estamos obteniendo aquí más o menos como una lista del tema con una lista de configuración de ID de pregunta relacionada con ese tema. Entonces, por ejemplo, las cadenas tendrían la pregunta I D número uno porque está incluida en ese tema. Por último, si se trata de una declaración L, así que si no está en la sección O, simplemente no filtra ninguno, ningún tema en absoluto ya que incluye todas las preguntas. Por lo que pasa por los elementos de la pregunta y es simplemente anexa todas las claves a esa clave de ID de pregunta en ese valor de datos. Eso es lo que sucede en este for-loop. Y luego finalmente, miramos el valor de los datos, las preguntas cuentan, y agregamos la longitud del recuento de los identificadores de preguntas para obtener el total de preguntas en eso, en esa categoría. Y por último, sumamos el curso pasado. Obtenemos el puntaje de pase de los datos de éste. Cuando está vacío o simplemente introduciendo en ese campo de puntuación pasado. Entonces finalmente devuelve los datos compilados. Eso es lo que obtenemos aquí abajo. Un theta compilado. Si lo hice aquí abajo, si corrí imprimir datos compilados, he guardado esto, entonces ejecuto esto. Veamos cómo se ve eso. Es un poco desordenado ahora mismo. Pero se puede ver que tiene, por ejemplo, una clave, que es el número uno es la clave. Y se puede ver el tema. El tema es cadenas y luego pregunta ID usuario ID número uno en la pregunta ID número ocho. Porque si fuéramos a ir a las preguntas, veríamos que la, la pregunta número uno tiene cadenas en ella y luego ninguna de ellas tiene cadena en ella hasta el número ocho, que también tiene los temas Puntuando Cuerdas en ella. Esa sería la lista de preguntas que supongo relacionada con ese tema. Por último, tiene los identificadores de preguntas reales. Así que de nuevo, tienes cadenas, el ID de la pregunta es 18, y luego el recuento sería igual a dos porque ese es el número de preguntas que tiene en el puntaje pasado es igual a non. Entonces número dos. Por lo que el número clave dos son los temas. Tendrá el tema de lista que el ID de pregunta es 10041011. Y se puede ver cómo va alrededor. Ahora tenemos un diccionario con los datos compilados. Entonces ese fue el objetivo de hoy. Los principales objetivos conseguir este diccionario de datos compilado en su lugar. Eso fue todo por la parte principal de hoy del proyecto. Así que asegúrate de echar un vistazo a estos bucles para asegurarte de que entiendes lo que está pasando aquí. Cómo importa los datos, cómo carga los datos, y luego cómo se crea el diccionario de datos compilado. Así que buena suerte y publica cualquier pregunta que pueda tener en la sección de comunidad. Estaré activo ahí. Y de cualquier manera, te volveré a ver mañana. 30. Día 27 - Proyecto - Aplicación de aprendizaje de Python (3/5): Bienvenido al Día 27. Por lo que hoy va a ser el segundo día o el 31. Día 28 - Proyecto - Aplicación de aprendizaje de Python (4/5): Bienvenido de nuevo En el día de hoy 28. Y donde lo dejamos con el proyecto fue que pedimos al usuario que ingresara el ID del tema. El siguiente paso en este momento es crear una instancia de una nueva clase que vamos a crear una nueva clase que se va a llamar la clase de prueba. Vamos a crear el quiz elegido, y va a ser la clase de quiz con las entradas del ID del tema, los datos compilados, y las preguntas. Vamos a subir aquí y vamos a crear una clase llamada quiz. Y vamos a agregar la cadena doc que se va a quedar representar un quiz basado en los datos compilados sobre el tema especificado. Ahora vamos a construir el constructor. El constructor va a tener el auto tema ID datos compilados y preguntas como entradas. Y luego se va a inicializar el examen Instancia. Y simplemente aquí abajo seleccionaremos auto tema ID igual al ID del tema en esto cómo establecemos los atributos de instancia. Por último, aquí mismo, justo aquí abajo, aleatorizamos la barajada la pregunta, dos preguntas que hacer. Y aquí abajo podemos vernos preguntas que hacer. Es un ID de tema de datos compilado para cuestionar ID. Entonces tenemos la pregunta que hacer, y luego simplemente aleatorizamos o barajamos las preguntas a hacer. Por lo que tenemos un orden aleatorio para esto. Aquí. Podemos ver que no está definido simplemente porque aún no lo hemos importado. Por lo que ahora solo necesitas importar al azar. Y del lado del método init, vamos a tener un método que va a ejecutar el quiz. Se va a llamar run quiz y va a ser un método de clase para ejecutar la instancia del quiz y devolver la puntuación y el tamaño del rango o número de preguntas hechas. Entonces aquí abajo creamos nuestro método. Así que vamos a empezar con un puntaje de 0. Entonces empezamos con eso. Después creamos el tamaño del rango, que va a ser mínimo de diez. El largo de las preguntas a hacer, porque no queremos estar haciendo más de diez preguntas. Después creamos un índice para un for-loop para el índice entre el rango de ese tamaño de rango, que de nuevo va a ser un máximo de diez. Entonces va a decir, está bien, la pregunta actual va a ser de las preguntas que vamos a conseguir la pregunta para hacer índice con ese índice. Entonces vamos a borrar la pantalla para hacer una pregunta. Y luego vamos a ejecutar la función de pregunta preguntada se ejecuta. Se, lo ejecutará y devolveremos verdadero o falso para una respuesta correcta o incorrecta. Si es correcto, aumente el puntaje en uno. Entonces si las preguntas se hacen función de pregunta, correcto, si es correcto, va a aumentar el puntaje en uno. Y si es incorrecto, simplemente mantendrá el cuadrado de las ciudades y luego va a decir entrada cualquier clave para continuar. Por último, tendremos el puntaje y el tamaño del rango devuelto por el, al final de este método. Entonces lo siguiente tenemos que crear una pregunta DSP que va a ser una función. Entonces diremos aquí abajo, definimos la función de pregunta hecha y tendrá las siguientes entradas. Entonces pregunta, número de pregunta y preguntas totales. Por lo que el primer paso es crear una lista vacía que se llenará con las preguntas, opciones y luego barajada. Entonces esto es lo que va a hacer. Creará una lista vacía popular con las preguntas, opciones y luego barajada. Después crearemos una tupla con sus primeras siete letras del alfabeto. Y luego el diccionario de opciones barajadas tendrá las opciones en el orden aleatorio. A continuación imprimimos el prompt de la pregunta. Después imprimimos opciones aleatorias para que el usuario elija. Y luego definimos una respuesta correcta para el objeto de pregunta diciendo la respuesta correcta. Y luego le pedimos al usuario mediante el uso la función de entrada validada. Y luego definimos una respuesta de usuario a partir de las opciones barajadas. Y por último, comparamos respuestas para determinar correctas o incorrectas, y devolver verdadero o falso respectivamente. Por último, vamos a ir todo el camino hasta el final de nuestra función principal. Y vamos a esta línea de código solo para ejecutar el método run quiz desde la instancia de prueba elegida. Y devolverá el puntaje y el tamaño del rango. Ahora si ejecutamos nuestro código, podríamos ver que llegamos a la pantalla principal. Digamos, digamos dos para listas, ingresa dos. Y ahora podemos ver, vale, ¿cómo hacemos una copia de la lista? Podemos decir que C va a decir que sí, correcto. Buen trabajo. Y observa cómo se está diciendo a la pregunta dos de un total de cuatro preguntas, ¿qué es una forma de eliminar? Debe ser B, el método pop, eso es correcto, Buen trabajo cualquier clave para continuar. Y entonces lo que es la función de longitud do trae la longitud o devuelve la longitud. Va a ser B. Eso es correcto. Buen trabajo. Por último, ¿cuál es el ascensor seleccionando el último ítem la lista que debería ser mejor, sea ese trabajo extra bueno. Perfecto. Por lo que corrió el quiz con éxito. Eso debería ser por hoy, chicos. Muchas gracias por ver. Si aún nos faltan un par de pasos, pero los revisaremos mañana. Y luego si tienes alguna pregunta, siéntete libre de publicarlas en la sección de comunidad y asegúrate de revisar los pasos que hemos hecho para asegurarnos de que entendemos lo que estamos haciendo. Y te volveré a ver mañana. 32. Día 29 - Proyecto - Aplicación de aprendizaje de Python (5/5): Hola mis amigos y bienvenidos al día 29. Hoy prácticamente todos configuramos con el proyecto. Hemos creado todas las funciones que necesitábamos. Creamos la clase y el método, y los métodos que necesitábamos. Y estamos casi todos listos con todo eso. Los pasos finales son manejar los puntajes. Para más o menos conseguir todo listo para que el usuario esté listo para terminar la sección de aprendizaje. Lo vamos a empezar agregando una llamada clara para que podamos borrar la pantalla. Y luego, vamos a computar el puntaje final. Entonces si el subrayado va a ser la inversión de la introversión de 100 veces un puntaje sobre el tamaño del rango. Podemos obtener un número por ciento, por ciento. Entonces hacemos el tema del curso pasado y hacemos una cadena de la puntuación final más ese signo de porcentaje porque esto es lo que va a entrar en la final o al anterior tema central ID. Eso es lo que va a entrar. Entonces usamos un bloque de ancho para abrir el archivo JSON de los tribunales pasados en modo de escritura. Y esto truncaría todo el expediente. Y lo abrirá como un objeto de archivo como este objeto de archivo. Y luego vamos a usar la función de volcado JSON. Lo vamos a pasar en el diccionario, el diccionario del curso pasado. Y vamos a pasar un objeto de archivo. Va a sobrescribir casi todo el archivo. Pero como teníamos el diccionario del curso pasado ya desde antes, desde la carga , antes, deberíamos conseguir cada versión del otro curso pasado también en el archivo. Y debemos sobrescribir sólo con la versión actualizada, con el nuevo ID de tema actualizado en ella. Entonces también vamos a agregar una declaración if con declaraciones else-if y una declaración L que va a decir, vale, si el marcador final fue 100, vas a decir increíble. Usted anotó al 100%. Si un puntaje final estaba por encima del 90%, excelente trabajo, usted anotó 90% o más del 90%. Si las puntuaciones finales por encima de 80, impresionante, Usted anotó lo que el puntaje use coordenada y si no, si está por debajo de eso, vas a decir, ningún entusiasmo sólo va a decir que anotó lo que anote la puntuación que anotó. El último paso va a ser sumar esto. Otra entrada try. Y va a decir que sí si quieres volver a ejecutar la app y no si no. Y va a decir si otro intento no igual a sí, vas a romper. Entonces, ¿qué se va a romper? Se va a romper una declaración while, un bucle while que vamos a decir while loop, mientras que es cierto, bucle a través de todo. Tenemos que poner aquí abajo la sangría apropiada. Entonces todo está dentro de la función principal. Entonces, ahora tenemos todo en un bucle de tiempo. Y si el usuario introduce algo que sea diferente de un SÍ va a romper el bucle y va a terminar el código. Así que intentemos volver a correr esto y veamos qué obtenemos. Hagamos tuplas. Entonces hagamos el número cuatro. ¿ Cómo se quita lo último que tengo una pregunta de tupla o truco. tuplas son inmutables, así que sé lo correcto, Buen trabajo. Considerando que el ejemplo correcto de crear una tupla, es con corchetes redondos, redondos, por lo que es un buen trabajo correcto. Impresionante. Usted anotó 100. Entra ayer de nuevo en la app y localizarás un continuum, voy a decir que sí, impresionante. Por lo que podemos ver eso en este momento. Simplemente vamos a un 100 y tenemos 100 y tuplas. ¿ Y si hiciéramos módulos, por ejemplo, hagamos el número cinco. Voy a tratar de conseguir un incorrecto a propósito. Entonces, cuál de las siguientes declaraciones se puede utilizar para importar el módulo JSON desde la biblioteca. Voy a decir que van a decir que casi lo tienes. La respuesta correcta fueron todas las demás opciones. Pulsa cualquier tecla para continuar, y me va a decir 0%. Entonces cada vez que hago sí y vuelvo y veo que es 0%. Pero si lo volvimos a hacer, entonces dijo Todas las demás opciones. Vemos Eso es correcto, Buen trabajo. Y luego te vemos anotar un 100%. Y vemos que obtenemos un 100% para pasar el curso. Entonces vemos que nuestro código está funcionando sin problemas. Estamos ejecutando nuestra aplicación de aprendizaje con éxito y todo está funcionando como esperamos. Tan gran trabajo de llegar tan lejos y felicitaciones por completar el proyecto. Y deberían de ser útiles para cualquier otro concepto que quisieras agregar, menguando otras formas que quisieras aprovechar. Esta forma de cuestionarte a ti mismo. También puede ser útil para otros temas una manera que puedas aprovechar los temas y las preguntas para tu uso personal y no, no tiene que ser solo para Python. Y puedes agregar preguntas a este archivo de preguntas y hacer preguntas para ello para lo que sea. Podrías encontrar un uso para esto también. 33. Lección 30 Los terminales son nuevos comienzos: Increíble. Terminas el curso y quiero felicitarte por venir tan lejos. Eres un valor atípicos. La mayoría de la gente no termina lo que empiezan, pero unos pocos aquí, eso significa que no eres uno de ellos. Entonces felicitaciones. Has aprendido que se trata de volver y darle todo lo que tienes. Y esa gratificación tardía es lo que trae las mejores recompensas. Y ahora podemos ver que los finales son simplemente nuevos comienzos porque siempre habrá mucho más que aprender en Python en cualquier otra habilidad que aprendas, incluso los mejores intérpretes y maestros de sus habilidades están aprendiendo constantemente y empujándose a sí mismos. Quería agradecerles por venir y embarcarse en este viaje conmigo. Y espero que hayas disfrutado y aprendido mucho. Y también quiero invitarte a que te mantengas en este camino de aprendizaje porque verás que eres capaz de hacer cosas que nunca has imaginado. Gracias de nuevo, y te veré por ahí muy pronto.