Introducción 2 a Python: aprender programación intermedia en Python | Kalob Taulien | Skillshare

Velocidad de reproducción


1.0x


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

Introducción 2 a Python: aprender programación intermedia en Python

teacher avatar Kalob Taulien, Web Development Teacher

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.

      Bienvenido a Python 201

      1:35

    • 2.

      El operador de IN

      9:47

    • 3.

      El operador NO

      7:30

    • 4.

      Cómo leer archivos utilizando Python

      6:03

    • 5.

      Cómo crear archivos utilizando Python

      4:27

    • 6.

      Cómo leer las líneas de múltiples multiples en Python

      6:10

    • 7.

      Escribir un archivo y ejecutarlo

      4:55

    • 8.

      Funciones dentro de las funciones

      6:35

    • 9.

      Cómo hacer peticiones de API simples

      4:59

    • 10.

      Cómo hacer las peticiones de JSON API

      6:09

    • 11.

      Cómo leer JSON en Python

      5:36

    • 12.

      ¿Qué son la función *args?

      4:59

    • 13.

      ¿Qué es la función **kwargs?

      8:25

    • 14.

      Cómo instalar la pip

      4:33

    • 15.

      Mutable vs inmutable

      5:29

    • 16.

      ¿Qué es la enumeración de la lista?

      3:19

    • 17.

      List de lista

      4:09

    • 18.

      Comprensión de diccionario

      4:27

    • 19.

      Cómo conseguir los valores de diccionario

      5:19

    • 20.

      Crear un entorno virtual

      7:46

    • 21.

      Cómo aprender Python explorando y utilizando iPython

      6:09

    • 22.

      Introducción a los paquetes de Python

      6:05

    • 23.

      Una breve API de petición de

      3:38

    • 24.

      TU PROYECTO

      13:06

    • 25.

      Python 201: resumen

      1:22

  • --
  • 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.

681

Estudiantes

13

Proyectos

Acerca de esta clase

Bienvenido a Python Python 201: de Python 3: la programación intermedio de Python 3.

En esta clase, aprenderás los enconjunto de Python. Aprenderás a:

  • utilizar las declaraciones condicionales más avanzadas,

  • cómo leer y escribir los archivos utilizando Python,

  • cómo hacer las peticiones de AP,

  • cómo utilizar los paquetes de 3 terceros, 3distor

  • Lista y de la comprar, de la lista y el diccionario de diccionario, que ,

  • environments, virtuales, de entornos virtuales,

  • y mucho más.

Al final de esta clase, crearás un Pokemon que ve un pokemon con su nombre utilizando una API de una API es una gran práctica para consumar la API como lo que lo haría como un programador de Python de una Python profesional de una y de cortos.

Para aprovechar al máximo este curso, deberás tomar Python 101 y otro curso principiante de Python de Python de Python

Tu proyecto: crea un programa de datos de Pokemon utilizando una API.

Crearás un programa que pide un nombre de pokemon y luego buscarás datos adicionales utilizando una API.

La API también es completamente totalmente libre de usar, de utilizar.

Este proyecto mica el tipo de trabajo que harás como programador de Python profesional y se considera un proyecto de vida real.

La parte más importante de este curso es aprender a gestionar (instalar y desinstalar) los paquetes de tres fiestas de parte, cómo utilizarlos y cómo hacer peticiones de AP, .

Las solicitudes de API son cómo las computadoras de una de los que se hablan entre los demás. Es absolutamente vital de que sabes cómo las solicitudes de API en Python, y aprenderás todo sobre ellas en este curso.

¿Para quién está dirigido este curso?

  • Este curso es para cualquiera que haya escrito un poco de Python poco pero está buscando más experiencia.

  • Programadores o desarrolladores web que de una experiencia de mano de una mientras aprenden

  • Este curso NO es para personas que nunca han escrito ningún Python.

¿Cuáles son los requeridos?

  • Necesitas un editor de código como PyCharm o VS Code VS

  • Tienes que que descargar e instalar Python e instalar

  • Debes estar listo para trabajar con código y no solo ver los videos. Esto es un curso de manos en la curso.

  • Deberás estar dispuesto a hacer un poco de trabajo para aprender bien Python3

Para aprovechar al máximo este curso, deberás tomar Python 101 y otro curso principiante de Python de Python de Python

Conoce a tu profesor(a)

Teacher Profile Image

Kalob Taulien

Web Development Teacher

Profesor(a)

Hi everybody! I'm Kalob Taulien.

 

Here's the TL;DR (short) version about me:

I have been coding since 1999 and teaching people how to code since 2013 I have over 350,000 web development students world-wide I'm on the Wagtail CMS core development team (Wagtail is Python's #1 most popular website making system) I try my best to answer EVERY question my students have  I love teaching — it's definitely one of my natural talents  Also I love goats! (Great conversation starter with me if we ever get to meet in person)

Below you can find all my Skillshare courses. The categories go from easiest to hardest, except for the Misc. Coding Courses at the very end. 

If you're brand new to coding, start with BEGINNERS WEB DEV.&nb... Ver perfil completo

Habilidades relacionadas

Desarrollo Lenguajes de programación Python
Level: Intermediate

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. Bienvenido a Python 201: Bienvenido a Python 21 con tu anfitrión Caleb Talia. Ese soy yo. Si estás listo para subir de nivel tus habilidades de Python, entonces por favor sigue observando. Este curso te va a llevar de nivel principiante a nivel intermedio habilidades Python. En este curso, vamos a profundizar en temas de Python como la nada y en operadores gestionando archivos funciones anidadas básicamente decoradores, objetos Python, argumentos de función de ámbito avanzado, argumentos de palabras clave, virtuales entornos usando paquetes de terceros, trabajando con solicitudes de API y mucho más. Ahora si algo de eso no te tuvo sentido o no sabes todas esas, todas esas cosas lo son, este curso es absolutamente para ti. Busca sacar el máximo provecho de este curso, vas a necesitar conocer algunos conocimientos básicos de Python como funciones, sentencias condicionales, tipos de datos, y variables. Si no conoces alguno de esos, por favor echa un vistazo al curso Python 101 ya que te va a ser mucho más útil. Este curso también está asumiendo que ya has escrito algo de Python antes y que tienes un editor como VS Code o PyCharm instalado un editor como VS Code o PyCharmy sabes cómo ejecutar un sencillo script de Python. Hola, lo estoy diciendo Caleb y llevo varios años trabajando con Python. He trabajado con clientes como Mozilla, nasa, el NHS en el Reino Unido. Y he enseñado a miles de desarrolladores cómo escribir Python en diversos cursos míos. Y hoy te voy a estar enseñando Python intermedio. Bienvenido a Python 201 con tu anfitrión, Caleb Italian. Espero verte por dentro. 2. El operador de IN: Empecemos hablando de la in operador. Y así en Python uno a uno, aprendimos sobre los operadores de comparación. Y acabo de hacer esto más grande en un operador de comparación simplemente se ve como si algo es igual a otra cosa. Ahora si tomaste Python 101, teníamos un pequeño proyecto donde escribimos un programa de rock-papel-tijeras. Y podemos cambiar esto a un archivo Python aquí. Y vimos algo como si mi respuesta es igual al rock, y en realidad es no iguala al rock. Y mi respuesta no iguala papel. Y mi respuesta no iguala a tijeras. Y si hago eso solo un toque más pequeño aquí, salga del programa. Y eso es todo lo que hizo. Ahora, hay una mejor manera de hacerlo porque sabemos que las tres respuestas que estamos comparando con el rock, papel, y las tijeras van a ser todas, bueno, van a ser iguales. Nunca van a cambiar. Entonces lo que podemos hacer es este operador, esto en operador de comparación. Y entonces lo que voy a hacer aquí es revisar mi terminal. Y si escribo Python 3.9 porque esa es la versión que quiero usar aquí. Simplemente puedo escribir el operador in para comparar una cosa con una matriz o una lista. Y así me dicen, una lista de nombres es igual a. Y vamos a hacer esto más grande aquí. Y lista de nombres es igual a Caleb, Juan, y gully. Y así si hacemos nombres o si hacemos tipo de nombres, vamos a ver que esto es una lista. Y supongamos B nombres, nombres, plural. Ahí vamos. Esa es una lista. No vemos nada nuevo. Deberíamos estar familiarizados con el tipo de datos de una lista ya. Pero y si quisiéramos comprobar para ver si una variable o un nombre está en una lista de nombres. Bueno, actualmente lo que tenemos que hacer es por nombre en nombres. Si mi nombre, sea cual sea esa variable, es igual al nombre, imprimir, este es el nombre. Y así esto es como que Honestamente no hay forma de vivir tu vida porque y si lo fueras , si tu lista, pero si eres un rayo es realmente, realmente grande, y si tienes 1000 artículos ahí dentro, entonces tienes que iterar más un 1000 diferentes artículos solo para averiguar si hay algo ahí dentro. Python tiene esto incorporado. Entonces lo voy a hacer aquí es Control-C solo abogado. Y puedo decir Caleb, como cuerda en nombres y esto va a salir como cierto. También podría decir lo mismo con una k minúscula. Y esto va a ser falso porque nuestros nombres tienen Caleb, John, y gully. Pero recuerda cuando estamos comparando cadenas en Python 101, una cadena con una K mayúscula no es lo mismo que una cadena con una k minúscula Así que lo mismo con una J o una g o cualquier otra letra. El hecho es que tiene que ser un partido exacto. Y así en el primer ejemplo aquí, esta es una coincidencia exacta. Y lo que puedo hacer aquí es que si solo escribo eso una vez más, puedo decir si golly en nombres, imprimir, golly está en la lista de nombres. Y vemos que gully está en la lista de nombres. Y así esta es una manera realmente, realmente fácil de comprobar para ver si una respuesta está en una serie de respuestas, un posible número de respuestas. Y así si volvemos a nuestro ejemplo aquí, sólo lo bajaré un poco y lo haré un poquito más pequeño. Si volvemos a esta respuesta aquí, vamos a decir, si mi respuesta no está sacudida, mi respuesta no es papel. Si mi respuesta no es tijeras, Lo que puedo decir en cambio es si mi respuesta, sea lo que sea. Y en lugar de igual o igual a, podemos decir en una lista de opciones. Y así solo necesitamos pasar esto en una lista y simplemente podemos poner en una lista de opciones. Y realmente hagamos que estas variables existan. Entonces podemos decir Mi respuesta es igual al rock. Y hagamos las opciones para ser una lista de roca, papel y tijeras. Y ahora podemos decir, si mi respuesta, rock es uno de estos tres, entonces haz algo. Podemos decir imprimir. El rock es una de las opciones posibles. Ahora sigamos adelante y guardemos este archivo como el en operador. Y yo voy a hacer, hacer, hacer, hacer, sólo salir de eso. Y voy a escribir Python en operador dot py. Y dice que el Rock es una de las posibles soluciones. Ahora, ¿y si cambio eso? ¿ Y si lo cambiara de rock a otra cosa? Literalmente cualquier otra cosa podríamos decir algo subrayado lo demás y vamos a ver que esto ya no imprime nada para nosotros. Y eso es porque si hubiera otra declaración, Esto sería ejecutado para nosotros. Imprimir respuesta incorrecta. Inténtalo de nuevo. Y eso es probar esto y vemos respuesta equivocada. Inténtalo de nuevo. Ahora donde esto se pone un poco más poderoso es, y de nuevo, tocamos esto en Python 101. Entonces esto es un poco de recapitulación. En lugar de decir que mi respuesta es igual a un valor codificado, podríamos decir, entrada. ¿ Cuál es tu respuesta? Y si esa respuesta es igual a roca, papel, tijeras, entonces va a decir que una de estas no es opción. Podemos decir que la opción es una opción viable. De lo contrario va a decir respuesta equivocada, inténtalo de nuevo. Entonces vamos a guardar eso y vamos a darle una oportunidad a esto. Dice, ¿cuál es tu respuesta? Si tipeo en rock. No, no hagamos rock. Ya hicimos rock. Hagamos papel. Esa opción es opción viable. Probemos esto otra vez. Dice, ¿cuál es tu respuesta? Mi respuesta va a ser Python. Python a Sí porque tengo un zed ahí dentro por alguna razón. Y dice, respuesta equivocada, inténtalo de nuevo. Y así el operador in just IN simplemente dice, es la cosa de la izquierda, dentro de lo iterable, a la derecha. Si es así, si es cierto, entonces ejecute esta declaración condicional. Si no lo es, entonces es falso. Ejecutar la declaración else, o originalmente no teníamos nada, así que no hagas nada en absoluto. Ahora si fuera a comentar eso, podemos hacer lo mismo con un diccionario. Entonces vamos a dar un valor, no un valor sino una variable llamada clave. Y este va a ser nombre. Y podríamos crear una persona a nombre de diccionario. Caleb, profesión, profesor de codificación. Y entonces podemos decir si clave en persona, Imprimir, Nombre es una clave de diccionario válida en el objeto Persona. Entonces vamos a seguir adelante y darle una oportunidad a esto. Ahora vamos, vamos a escribir en el espacio Python en el operador de subrayado punto py. Y dice nombre como clave de diccionario válida en el objeto Persona. ¿ Y si cambiamos la llave aquí? ¿ Y si lo cambiamos por algo que falta? No pasa nada. Y eso es porque lo que esto está buscando es la clave. Y recuerda en el diccionario tenemos un par de valor clave. Está buscando esa llave ahí dentro. Y así no existe persona con llave de fluoróforo, pero sí existe persona con clave de nombre. Y así podemos usar el en operador en un diccionario también. También podemos usarlo en un tupple. Ahora lo que me gustaría que hicieras, para probar esto, de nuevo, un poco de experiencia práctica es que quiero que uses el in operator en un set. Ese es un tipo de datos Python. Nos enteramos de esto en Python 101. Y quiero que uses el operador in en un set, no un diccionario y no una tupla, no una lista, sino un conjunto. Yo quiero que veas si eso te funciona. Si funciona o no funciona para ti. Porque en este punto nos estamos metiendo en Python nivel intermedio. Es hora de que empecemos a explorar y dejemos confiar en que alguien te muestre todo lo que puede o no puede suceder. Es hora de empezar a explorar y aprender por tu cuenta. Y, y así es realmente importante que puedas hacer esto porque eventualmente vas a tener trabajo. Y en ese trabajo te van a pedir que crees algún tipo de característica única y no va a haber un tutorial para ello. No va a haber una persona que te coja la mano por ello. Vas a tener que especie de poquito experimental por tu cuenta y llegar a tus propias soluciones. Y esto es simplemente realmente buena experiencia de la vida real cuando se trata simplemente experimentar y no vas a romper nada. Entonces siéntete libre de experimentar y si no funciona, no funciona. Si recibes un error, puedes aprender de qué se trata ese error. Pero adelante y dale una oportunidad a esto. Diga si la clave está en algún tipo de tipo de dato conjunto, entonces solo imprime algo. Eso es todo lo que tenemos que hacer. 3. El operador NO: Echemos un vistazo al operador NOT. Entonces aprendimos sobre las declaraciones condicionales y dijimos algo como si algo es igual a otra cosa, HACER una cosa. Y eso es genial. Y también nos enteramos de esto. Si algo no es igual a otra cosa, HACER una cosa. Pero, ¿y si no queremos simplemente escribir todo eso? Bueno, tenemos un atajo. Podemos decir si algo es cierto, si esa cadena es verdadera, el diccionario es verdadero, la lista es verdadera, el booleano es verdadero. ¿ De verdad importa si algo es cierto? Entonces haz una cosa. Pero ¿y si queremos decir si algo es falso? Entonces sigamos adelante y pongamos un ejemplo aquí. Vamos a decir que lo mío es igual a verdad. Sólo para armar este ejemplo, si lo mío, imprimir era verdad. Y si ejecutamos esto, podemos hacer Python, no operador dot py. Y dice que la cosa era verdad. Y eso es porque realmente se reduce a esto. Ahora bien, ¿y si quisiéramos exactamente lo contrario? Will actualmente, tenemos que hacer esto. Tenemos que escribir pase y luego hacer una declaración else. Lo de imprimir no es cierto. Y vamos a cambiar esto a falso sólo para que podamos hacer que esto se ejecute. Entonces la cosa es falsa. Esto no va a pasar. Entonces el otro va a ser ejecutado. Y va a decir que esto no es cierto. Entonces si volvemos a ejecutar esto, lo suficientemente seguro, dice que esto no es cierto. Ahora esto es exactamente lo mismo que decir Es igual a falso. Que es exactamente lo mismo que decir no es igual a cierto. Y vamos a limpiar este ejemplo y ejecutar esto una vez más. Esto va a decir, esto no es cierto porque lo falso no es cierto. De hecho, esto no es cierto. Esta afirmación es cierta porque está diciendo falso. ¿ Eso es lo mismo es cierto? No. Está bien. Bueno, entonces es una afirmación verdadera y aquí es donde se pone un poco confuso. Entonces en cuanto a Python, nos gusta atajar las cosas siempre que sea posible. Y simplemente decimos, si lo mío es igual a cierto, imprima aquí un comunicado. Ahora, cuando ejecutemos esto, vamos a ver que esto simplemente no se ejecuta, esto no ejecuta nada en absoluto. Lo que podemos decir en su lugar es el operador NOT. Y así en otros lenguajes de programación, vas a ver un signo de exclamación frente a tu variable. Lo ves mucho en PHP, y lo ves mucho en JavaScript. En Python, no hacemos eso en Python. Nos gusta que nuestro código sea agradable y legible. Entonces no queremos símbolos locos por todo el lugar como si no hubiéramos JavaScript en estos días. Simplemente decimos, si algo no es cierto y literalmente está haciendo una frase para nosotros. Si algo no lo es, y está buscando, siempre está buscando un verdadero valor. Entonces si no es cierto, aka, si esto es falso, imprime aquí una declaración. Sigamos adelante y guardemos esto. Y vamos a ver que esto ahora imprima un comunicado que diga imprimir un comunicado. Y aquí, como esperábamos. Ahora sigamos adelante y creemos un ejemplo más. Nombre es igual a K_1 como g Podemos decir si nombre no en. Mira esto ahora estamos mezclando el en operador con no. Y tenemos que darnos una lista de nombres. Caleb, John carajo. Entonces si la ascii de caña no está en una lista con estos nombres en ella, imprimir, caña no es parte del club. Y cuando ejecutemos esto, primero que nada, vamos a ver en esta declaración impresa aquí arriba, así que podemos simplemente ignorar eso. Pero luego vamos a ver la declaración impresa en la línea nueve. Y bastante seguro, la declaración impresa original aparece desde la línea cuatro. Y luego desde la línea nueve dice que Caín no forma parte del club. Y entonces lo que estamos diciendo aquí es, si el nombre no está en esta lista o matriz de nombres en particular, haga una cosa. Y con el no operador viene mucha potencia. Ya podemos comprobar para ver si las cosas son lo contrario. No pudimos hacer eso en Python one-to-one Python 101, tuvimos que tomar el largo camino en Python 201, nivel intermedio Python necesitamos saber que no palabra clave es algo no cierto, es algo no en otra lista es algo no algo más. Ahora una cosa a tener en cuenta es típicamente cuando estamos comparando cosas como cadenas, podemos tener el nombre uno es igual a K_1, name2 es igual a Caleb. Normalmente no hacemos esto. No escribimos si nombre uno, no nombre2, imprime nombres diferentes porque esto simplemente no tiene sentido realmente. Si nombre uno no se nombra a. Es decir, sí, hay una forma de comparar usando el operador is así, pero en realidad no lo hacemos de esa manera. El es operador es un especial en el es operador significa está comparando piezas de memoria, no sólo el valor, que podría ser caña o Caleb. Y así lo que solemos decir es cuando estamos comparando cadenas, si nombre uno no es nombre2 y lo hacemos con este operador. Pero cuando estamos trabajando con el no operador en una lista, lo ponemos en el medio. Y cuando ponemos al no operador frente a algo, estamos revisando para ver si es falso. Y así si literalmente lees esto igual que una frase regular, tiene mucho más sentido. Si algo no es cierto, declaración. Si el nombre no está en una lista, haz algo. Y si una persona no es igual que una segunda persona, haga otra cosa. Y ese es el operador NOT. Ahora lo que me gustaría que hicieras es quiero que hagas los dos primeros ejemplos aquí. Entonces vamos a deshacernos de esto y sólo hagamos los dos primeros ejemplos. Intenta revisar un booleano y luego prueba a revisar una lista como esta. Asegúrese de utilizar el operador NOT en ambas situaciones. Y el objetivo aquí no es convertirse en un experto en el no operador porque es honestamente, es algo bastante fácil de aprender en su mayor parte. Aquí la idea es simplemente obtener algo de experiencia práctica aprendiendo cómo funciona el código opuesto. Si no soy parte de un club, no puedo entrar. Si no soy rico, puedo comprar un yate. Si alguien entra alguna entrada de usuario y está vacía, eso sería falso. Entonces podrías decir, si no UserInput, entonces puedes salir del script o decirles que introduzcan más contenido o, o volver a ingresar el script. Así que adelante y prueba eso otra vez. El objetivo aquí es sólo practicar. Simplemente queremos practicar, practicar, practicar. Así es como te vas a poner bien. Solo necesitas practicar, practicar, practicar. Así que prueba esto, dale una oportunidad y si te atascas o, o esta explicación no fue lo suficientemente buena, siéntete libre de dejar un comentario abajo o en el grupo de aprendizaje a codificar Facebook. Siempre estoy ahí para ayudar. En la siguiente lección, sigamos adelante y hablemos de leer archivos. 4. Cómo leer archivos utilizando Python: De acuerdo, hablemos de cómo podemos leer archivos. Y así abrimos archivos en Python con esta cosa llamada administrador de contexto. Ahora no vamos a entrar demasiado en los detalles de un gestor de contexto. Es un poco de una forma diferente de abrir un archivo, sobre todo si vienes de un lenguaje de programación diferente. Pero también es muy rendimiento de memoria, lo que significa que no puedes romper accidentalmente tu computadora hasta que leer archivos es tan simple como decir con abrir tu nombre de archivo, r para leer como archivo. Y entonces podemos hacer algo como imprimir file.js. Y eso es todo. Eso es todo lo que hay a ello. Ahora realmente necesitamos crear un archivo aquí. Entonces sigamos adelante y creemos un nuevo archivo, y llamémoslo léame punto TXT. Hola de Python 201. Eso es lo que esto me leyó va a decir. Y entonces lo que vamos a hacer aquí en este archivo de lectura de archivos dot py, simplemente vamos a abrir ese archivo readme e imprimir lo que sea que haya ahí dentro. Y así podríamos decir con open read me 2.txt, ese es el nombre de archivo coma. R significa leer como. Y luego le damos algún tipo de nombre variable, podemos llamarlo archivo. Tratamos de no usar más f porque F es una especie de corto Para un F Strings. Entonces no queremos que eso se confunda en Python. que normalmente solo escribimos algo como archivo o CTX para contexto o algo así, realmente no importa. Es sólo un nombre variable. Y entonces podemos decir print file dot. Y se puede ver que VS Code ya está tratando de auto-llenar las cosas por mí. Entonces si solo voy aquí abajo, puedo dar click leer. Y esto es una función, este es un método. En realidad va a realizar algún tipo de lógica, y así necesita esos paréntesis. Sigamos adelante y guardemos eso y ejecutemos este archivo en tu terminal. Hagamos Python leyendo archivos dot py y dice Hola de Python 201. Notarás que en realidad hay una línea vacía ahí dentro también. Y si volvemos aquí, estoy bastante seguro, en realidad estoy bastante seguro de que va a haber una línea vacía dos. Y sí, ahí está. Línea vacía a esto es una nueva línea. Sigamos adelante y guardemos eso. Ahí hay una línea vacía tres. Hola de Python 201. Esta es una nueva línea. Y eso es realmente todo lo que hay para leer archivos. Ahora aquí está la cosa, es cuando estás leyendo un archivo o cuando estás tratando con archivos. Este gestor de contexto usando la palabra clave width simplemente significa que no tenemos acceso al archivo fuera de esta sangría. Entonces si comentamos esto fuera y escribimos pase y luego tratamos de imprimir archivo dot read. Veamos qué va a pasar aquí. Dice error de valor operación IO en archivo cerrado. Está tratando de leer este expediente, pero ya ha sido cerrado. Entonces básicamente lo que Python va a hacer es decir, con el archivo Léame dot TXT abierto como estado de lectura, no un estado de escritura ni nada por el estilo. Apenas un estado de lectura va a asignar eso a una variable llamada Archivo. Y entonces ese expediente va a ser alcance. Esa variable de archivo va a ser alcanzada a esta sangría aquí. Y luego cuando llegue al final de la sangría, que hace en la línea cinco, Va a cerrar ese archivo automáticamente para nosotros, lo que no tenemos que preocuparnos de cerrar el archivo en absoluto nunca. Python hará eso por nosotros. Esta es una forma segura de abrir sus archivos. Ahora lo que me gustaría que hicieran como un poco de tarea aquí es ir adelante y crear un nuevo archivo llamado README dot TXT. Y escribe esto para ver con abierto. Y luego su nombre de archivo, coma r para leerlo como algún tipo de nombre de variable, y luego imprimirlo. Y voy a limpiar esto porque no necesitamos eso. Y entonces todo lo que hacemos es ese nombre variable. Simplemente sucede que lo llamo archivo dot read, y eso nos va a leer el archivo. Así que adelante y dale una oportunidad a eso. Siéntase libre de pausar el video aquí mismo. Hay una cosa más que quiero mostrarte, pero me gustaría si pudieras pausar el video aquí mismo y solo probar esto. Ahora hay una cosa más que podemos hacer si queremos que el contenido de este archivo se almacene en una variable que sea accesible fuera de la palabra clave width aquí o la sangría aquí. Podríamos simplemente decir algo así como el contenido es igual a file.js read. Y luego aquí abajo podemos decir imprimir. El contenido es contenido. Y cuando probemos esto, vamos a ver que esto funciona. Dice que el contenido es Hola de Python dos a uno, esta es una nueva línea y ahí hay una línea vacía. Y así ahora tenemos acceso al, básicamente todo el contenido de ese archivo. Pero fuera del gestor de contexto que abrimos con la palabra clave width. Ahora, ¿por qué es esto importante? Bueno, esto es importante porque tenemos un gestor de contexto. Almacenamos el contenido del archivo en una variable llamada contenido. Y luego detrás de bambalinas, Python cierra este archivo. Lo hizo por nosotros, así que no está usando demasiada memoria, está tratando de ser lo más eficiente posible. Y porque francamente, mucha gente se olvida de cerrar sus archivos, esta es una forma segura de hacerlo. Y entonces podemos acceder a esa variable de contenido fuera del gestor de contexto. Ahora también me gustaría que le diera una oportunidad a esto. Por lo que hay dos tareas para esta pieza particular de tarea. Una es abrir un simple archivo TXT y luego imprimirlo. Y otro es asignar el contenido de ese archivo que estás abriendo a una variable y luego acceder a él fuera del administrador de contexto, la sentencia width, incluyendo la sangría para asegurarse de que sea accesible desde fuera de eso. Adelante y prueba eso y cuando estés listo, te veré en el siguiente video. 5. Cómo crear archivos utilizando Python: En la última lección, miramos cómo podemos abrir archivos y simplemente leerlos, pero también podemos escribir en archivos. Podemos crear archivos completamente nuevos. Y así vamos a seguir adelante y crear un archivo totalmente nuevo desde cero usando Python. Y así se ve así con abierto y luego tu nombre de archivo. Entonces digamos escribir archivos, data.txt. Por lo que este es el archivo de escritura dot py. Vamos a hacer escribiendo file.txt. Vamos a crear ese archivo. Y luego en la última lección usamos r para leer. En esta lección vamos a usar w para escribir como archivo. Por lo que ahora tenemos un gestor de contexto. Por lo que este archivo sólo va a estar abierto por el tiempo que estemos sangrando nuestro código aquí. Entonces podemos decir archivo dot write. Hola de Python 201. Vamos a seguir adelante y ejecutar este archivo escribiendo Python, escribiendo archivos dot pi. Y vamos a ver un nuevo archivo aparece por aquí a la izquierda. Y mira que aparece escribiendo file.txt. Boom, dice Hola de Python a uno. Ahora, ¿qué pasa cuando volvemos a correr esto? Vamos a escribir Hola de Python 21 segunda vez, guarde eso, y vamos a ejecutar esto. Ahora bien, ¿crees que esto va a anexar al archivo file.txt de escritura o crees que lo va a sobrescribir? Entonces ¿se va a decir Hola de Python a uno, Hola de Python a 1 segundo tiempo? O simplemente va a decir Hola de la herramienta Python 1 segunda vez como una línea individual en este archivo. Estos son pequeños experimentos divertidos que tenemos mientras aprendemos Python. Echemos un vistazo a esto. Haga clic y sobrescribió todo el archivo. Ahora si alguna vez quieres anexar a un archivo, eso es realmente fácil. A significa apéndice. Hacemos una. Y esta va a ser una segunda línea. Adelante y ejecutemos esto. Consulta nuestro archivo file.txt de escritura. Y dice, oh, en realidad no es como segunda línea. Pero sí anexó al final aquí. Entonces fue directo hasta el final del expediente y escribió más lo que realmente queremos hacer aquí. Y este es un buen ejemplo. Me alegra mucho que esto surgiera, es que podemos hacer slash n. Y así en realidad no vemos estos en archivos, pero en este archivo aquí donde está ese colon y se va a una nueva línea, en realidad hay un personaje oculto ahí dentro. Es una slash n para nueva línea. Y podemos escribir esa nueva línea aquí. También podemos agregar una nueva línea y una tabulación slash t. Esto está con pestañas. Adelante y ejecutemos esto y veamos cómo resulta esto. Entonces tenemos Hola de Python 21, segunda línea, esto es porque en realidad me metí la pata. No voy a editar eso o veces. Yo quiero mostrarles que incluso programadores con experiencia como yo cometerán errores. Eso es totalmente normal. Una segunda línea, porque corrimos eso una segunda vez. Y un tabulador aquí, te das cuenta que no son espacios. Esto en realidad es un tabulador y dice que esto está con pestañas. Por lo que ahora podemos escribir archivos. Y con esto, podemos tomar la entrada del usuario y podemos escribir archivos directamente desde la entrada del usuario. Pero no saltemos tan lejos todavía. En la siguiente lección, sigamos adelante y leamos múltiples líneas al mismo tiempo. Entonces, ¿cómo abrimos este archivo? Pero entonces ¿cómo acabamos de conseguir esta línea y esta línea y esta línea? ¿ Cómo hacemos eso? Pero antes de pasar a la siguiente lección, lo que me gustaría que hicieras como tu tarea es abrir un gestor de contexto usando la palabra clave width, abrir un archivo, nombra, lo que quieras. Utilice la propiedad de escritura W. Entonces W significa lo correcto, y acabamos de poner W para abreviar como algún tipo de archivo. Y luego ese gestor de contexto archivo punto a la derecha, y luego una nueva línea. Y puedes poner una slash n para una nueva línea ahí si querías o slash t. Y luego cuando termines de eso, intenta anexar a ese archivo. Por lo que escribir va a sobrescribir el archivo cada vez. A se va a anexar a ese archivo, agregarlo al final. Adelante y prueba eso y cuando estés listo, echemos un vistazo a cómo podemos leer múltiples líneas a la vez. 6. Cómo leer las líneas de múltiples multiples en Python: Está bien, bienvenido. Echemos un vistazo a cómo podemos leer múltiples líneas a la vez. Ahora podrías estar pensando, bueno, ¿por qué es esto importante? Pero si te diera una lista de 100 correos electrónicos y quisiera que encontraras el que tiene mi nombre en él. ¿ Cómo vamos a hacer eso? Y esto se parece mucho a raspar datos de internet, que es algo muy, muy común. Entonces antes que nada, sigamos adelante y creemos un nuevo archivo. Y esto sólo se va a llamar correos electrónicos 2.txt. Va a haber correo electrónico uno en gmail.com, correo electrónico al correo tres. Y luego pongamos a Caleb en gmail.com. Pongamos a John en gmail.com y pongamos gully en Hotmail.com. Por lo que tenemos seis direcciones de correo electrónico aquí. Y queremos tratar de averiguar si, digamos Caleb, edgy.mil dot com está aquí. ¿ Cómo hacemos eso? Bueno, primero tenemos que abrir esto. Decimos con correos abiertos 2.txt, Vamos a leerlo. No necesitamos escribirle ni anexarlo como correos electrónicos. Y lo que podemos hacer aquí son correos electrónicos dot read lines. Y si imprimo esto, vamos a ver que esto va a parecer muy, muy familiar. Entonces puedo teclear, vamos a aclarar eso. Y puedo escribir Python leyendo múltiples líneas y puntar py. Y mirarías eso? Esto de repente es una matriz. Por lo que el primer elemento aquí es el correo electrónico en gmail.com. Correo electrónico para enviar por correo electrónico tres Caleb un Gmail, John en Gmail gully en Hotmail. Esta es una matriz. Ahora podemos trabajar con una matriz. Esto es emocionante porque aquí podemos tomar atajos más bonitos. Entonces sigamos adelante y arrojemos esto a una variable llamada correos electrónicos. Y ya no tenemos que trabajar dentro de ese gestor de contexto. Se hace su trabajo. Ahora podemos acceder a todos estos correos electrónicos como una matriz o como una lista como lo llamamos en Python. Podemos acceder a todos estos correos electrónicos en una lista y una variable llamada e-mails, tan simple como eso. Entonces ahora podemos decir por correo electrónico, en correos electrónicos, imprimir, buscar, digamos que no, busquemos una cuenta de Hotmail. Buscando una cuenta de Hotmail. Entonces podemos decir si Hotmail está en este correo electrónico en particular, podemos usar el operador in para comprobar si una cadena está dentro de otra cadena. Imprimir todo el correo electrónico. Y así esto va a filtrar todos los correos electrónicos en un archivo y darnos todos los que tienen Hotmail en él. Adelante y ejecutemos este código y vamos a ver buscando cuenta de Hotmail, buscando cuenta de Hotmail en busca de leche caliente. Oh, mira eso. Si se encuentra culpable en Hotmail.com. Sigamos adelante y eliminemos esa declaración impresa porque eso no es útil. Digamos que solo queríamos toda la cuenta de Gmail. Por lo que esto va a filtrar el que dijo gully en hub en Hotmail.com. Corremos esto y el correo electrónico uno, correo electrónico al correo tres, Caleb y John. Ahora, ¿qué pasa con ese espaciado? Bueno, ese espaciado es porque si vuelvo a desplazarme hacia arriba, te das cuenta de esa slash n. Y hablamos de esto en la última lección. Slash n significa nueva línea. Y entonces lo que queremos hacer aquí es que queremos tomar este correo electrónico y simplemente queremos recortarlo. Ahora en otros lenguajes de programación, usamos la palabra trim. En Python, usamos trim izquierdo o derecho, y no lo llamamos trim en absoluto. De hecho, en realidad lo llamamos tira. Entonces nuestra tira y todo lo que va a hacer es sacar esas líneas ahí dentro. Entonces si volvemos a correr esto, no vamos a ver todos esos espacios extra. Y de hecho, en realidad no es donde queremos que esté porque lo estamos imprimiendo. Esto no va a imprimir nada para nosotros. Queremos cambiar lo que se está exponiendo en nuestras terminales. Nosotros hacemos desnudar aquí. Y cuando corremos esto una vez más, vamos a deshacernos de ese flotador de ahí. Corremos esto una vez más. Ahí vamos. Es deshacerse de esa línea extra para nosotros. Y de nuevo, la razón que está sucediendo es porque si imprimimos todos estos correos electrónicos, vamos a ver que esta matriz aquí, esta lista, esta lista de Python tiene una slash n al final. Y eso es porque al final de cada línea hay una slash n Es un personaje invisible, no lo vemos, pero está ahí. Y eso le dice al programa, eso le dice a la computadora que aquí hay una nueva línea. Y así todo lo que estamos haciendo es decir, oye, en lugar de tener slash n ahí, despojarlo. Ahora lo que me gustaría que hicieras como tarea es algo un poco más fácil. Intenta simplemente abrir un archivo llamado e-mails dot TXT. Tira un montón de correos electrónicos ahí, asegúrate de que sea legible. Y luego simplemente quiero que recorran cada correo electrónico e impriman el correo electrónico. Prueba esto. Y si notas que tienes líneas extra ahí dentro, intenta usar nuestra tira que simplemente va a deshacerte de la listón n al final de cada valor. Adelante y hazme un sólido, prueba eso. No va a parecer que esto es realmente súper útil por el momento. Pero cuando te metes en raspado web, que es lo que hace Google, Google raspa cada sitio web en el, en internet y lo indexa en una base de datos. Está buscando cuerdas dentro de cuerdas. Está recorriendo cada una de las páginas que hay por ahí. Por lo tanto, en lugar de recorrer cada correo electrónico, podría ser cada sitio web individual. Y luego va a hacer una cosa. Y todo eso podría ser almacenado en un solo archivo. Entonces ese es un ejemplo divertido del mundo real. Sí, definitivamente pruébalo. Y cuando estés listo, pasemos a la siguiente lección donde en realidad le pedimos a un usuario alguna entrada de usuario y luego creamos un archivo que luego va a ser ejecutable. 7. Escribir un archivo y ejecutarlo: De acuerdo, bienvenido de nuevo. Hablemos de ejecutar archivos, o supongo que crear archivos a partir de UserInput. Y así la idea aquí es que se pueda pedir al usuario alguna forma de entrada. Y luego puedes crear un archivo a partir de eso. Y con ese archivo puedes agregar algún contenido ahí también. Entonces vamos a fusionar toda la experiencia que tenemos con la lectura y escritura y anexar archivos en un programa donde básicamente puedes crear tu propia forma de catálogo o, o contactos o, o libreta de direcciones. Entonces primero vamos a pedir nombre de archivo. El nombre de archivo va a ser de entrada. ¿ Cuál es el nombre del archivo? Y también pidamos contenido. El insumo es igual para entrar al contenido, cualquiera que sea ese contenido va a ser. Entonces podemos decir algo así como ancho. Estamos abriendo un gestor de contexto aquí, abre ese nombre de archivo. Vamos a escribirlo o sobrescribirlo cada vez como archivo, entonces podemos decir archivo punto derecho, el contenido. Ahora si probamos esto, archivos de usuario ejecutables python, me va a pedir un nombre de archivo. Entonces pongamos Zed, Zed, Zed 2.txt solo para que aparezca en la parte inferior aquí, es fácil de ver bajo algún contenido. Hola, me llamo Bob y me gusta codificar. De acuerdo, parece que no hizo nada más que, oye, mira eso. Apareció Zed, Zed dot TXT. Y boom, MyText está ahora ahí dentro. Ahora consigue esto, en realidad podemos empezar a hacer que esto sea mucho más agradable para el usuario. Podríamos decir que el archivo abierto es igual a la entrada. ¿ Te gustaría leer este expediente? Y esto debería tomar un sí o un no. Entonces podríamos decir que si abrir archivo está en Y o N, entonces podemos hacer algo. Decimos, si abrir archivo es igual a N, no hacer nada. O podemos decir que si el archivo abierto es igual a y, sigamos adelante y abramos este archivo ahora. Por lo que podemos decir con open ese mismo nombre de archivo desde arriba con propiedades de lectura como archivo, imprimir, archivo dot read. Y así todo el guión se ve así. Estamos pidiendo un nombre de archivo. Estamos pidiendo algún contenido. Entonces vamos a escribir ese nombre de archivo con contenido dentro de él, y es completamente dinámico, depende del usuario. Entonces vamos a decir: ¿Te gustaría abrir este archivo sí o no? Abrir archivo está en una lista de Y o N. Luego ejecuta este código. Si abrir archivo es igual a y, entonces queremos abrir este archivo e imprimir ese archivo. Adelante y dale una oportunidad a esto. Vamos a hacer YoY punto TXT es el nombre del archivo, introduce algún contenido. El contenido es rey. ¿ Recuerdas cuando la gente solía decir que en los contenidos de redes sociales es rey? Y te gustaría leer este expediente? Vamos a teclear y Y lo imprime para nosotros. Leyó ese archivo para nosotros, y eso es exactamente lo que es NY YY 2.txt. Ahora voy a eliminar este archivo. Yo también voy a eliminar este archivo. Y voy a dejar este código fuente contigo. Ahora. Quiero que pruebes esto, solo pruebes las líneas de uno a cinco. No tienes que preocuparte por las líneas siete a 11. Drew apenas poniéndose elegante ahí. Simplemente estamos presumiendo básicamente sus habilidades sólo porque podemos, lo cual es una cosa muy programadora para hacer. Nos gusta hacer eso. Pero prueba esto y pide un nombre de archivo. Usted alguna entrada de usuario pide algún contenido para usar una entrada más de usuario y usar un nombre de archivo dinámico y dinámicamente derecho, algún contenido dinámico. Y luego asegúrate de que ese archivo realmente aparece donde crees que va a aparecer y abrirlo, asegúrate de que está haciendo lo que esperas que haga. Y si todo se ve bien, se ve bien? Pasemos a esa siguiente lección donde hablamos funciones dentro de funciones porque sorpresa, sorpresa. Todo en Python se llama objeto. Sí, es un concepto alucinante, pero podemos anidar cosas dentro de las cosas ness y en realidad lo puedes ver aquí. Nunca tuvimos una declaración con dentro de una declaración if, dentro de una declaración if. Y esto puede seguir para siempre. No es rendimiento hacer eso para siempre, pero podemos hacerlo para siempre si quisiéramos. Y las funciones no son diferentes. Podemos tener una función dentro de una función dentro de una función. Entonces en la siguiente lección vamos a echar un vistazo a las funciones y algunos de los alcances raros que ocurre dentro de eso. 8. Funciones dentro de las funciones: Echemos un vistazo a las funciones anidadas dentro de las funciones, porque en Python podemos hacer eso. En Python todo se llama un objeto, y eso significa que las funciones dentro de funciones u objetos, archivos u objetos paquetes son objetos. Todo es un objeto, obtienes un objeto, objeto Eigen, todos obtenemos un objeto. Pero en este curso, no en este curso, sino en esta lección, echemos un vistazo a los alcances y cómo afecta a las funciones dentro de las funciones. Entonces vamos a crear una función, llamémoslo cosa uno. Y entonces podemos tener una función dentro de esto. Y digamos sólo imprimir. Bienvenido a la cosa uno. Y eso es apretar que hasta sólo un rápido segundo allí. Y vamos a tener otra función aquí. Cosa también. Imprimir. Bienvenido a la cosa también. Y para ejecutar esto dentro de esta función. O más bien para ejecutar cosa también, simplemente ejecutamos dentro de la cosa uno, así que decimos cosa para ejecutarla. Y luego cuando llamamos a la cosa uno, esto se va a ejecutar, se va a imprimir, luego va a registrar esta función y el código dentro de esta función y luego ejecutar esa función dentro de ella. Y así ahora tenemos dos funciones y una aquí, y en realidad sólo se requiere llamar a una de ellas. Entonces sigamos adelante y guardemos esto. Y vamos a View. Escúchame ahora. Y vamos a escribir python archivos de usuario ejecutables. Eso no está bien. Eso es Doo-doo-doo-doo. Tengo que deshacer eso. De acuerdo, así que acabo de cambiar el nombre de ese archivo ahí, así que no vamos a anular el archivo de la última lección. Entonces lo que quiero hacer aquí en mi terminal tipo Python funciones dentro de funciones. Y vamos a ver que dice Bienvenido cosa uno, bienvenido a la cosa hacer. Y eso es otra vez porque si separamos esto, podría tener un poco más de sentido para nuestros ojos. Pero la cosa uno, bueno, sabemos que eso también es una función regular, es entonces que se va a registrar o estar registrado dentro de la cosa uno. Y luego lo ejecutamos. Ahora si no queríamos que se ejecutara, bueno, ¿por qué lo leeríamos en absoluto? Pero eso es al margen del punto que podríamos simplemente no ejecutarse dentro. Y esto simplemente va a decir bienvenido a la cosa uno. Entonces esa es una función dentro de una función. Y en última instancia eso es lo que se llama un decorador, una tarifa deco o algo así. Es decir, la premisa de un decorador hablará de decoradores probablemente en un futuro curso o un módulo futuro. Pero eso es básicamente lo que es un decorador en Python. Entonces ahora echemos un vistazo a los alcances. Digamos cosa que uno toma un nombre. Pero la cosa también no va a tomar un nombre. Por lo que podemos decir Bienvenido a pensar un nombre común. ¿ Y cómo íbamos a pasar cosa a ese nombre? Bueno, también podríamos hacer esto y podríamos decir nombre. Y entonces podríamos decir nombre aquí. Y luego si dije Jacob, esto va a decir bienvenido a pensar uno. Jacob, Oh, necesitaríamos el nombre Doo-doo-doo-doo ahí también. Y así pasa el nombre, pero honestamente tener que escribir ese mismo nombre de variable una y otra vez es irritante. Ya ves cuántas veces tengo que escribir nombre aquí. Lo bonito del alcance pitónico es si no encuentra un nombre dentro de esta función, si no encuentra este nombre en particular y esto podría llamarse literalmente cualquier cosa. Pero si no encuentra esa variable, ese parámetro, ese argumento dentro de su función, esto va a mirar fuera de la función. Y va a buscar en las cosas, una para una variable llamada nombre. Y así sigamos adelante y probemos esto. Y no pasemos un nombre en absoluto. Y así también la cosa sólo va a decir bienvenido a pensar también. Va a tener un nombre ahí dentro, pero en realidad no estamos pasando nada n. Y así vemos esto mucho en el mundo de JavaScript, pero esto no lo vemos mucho en el mundo de Python. Adelante y ejecutemos esto. ¿Y vamos a decir qué? Vamos a ver que dice, Bienvenido a pensar uno Jacob y bienvenido a la cosa a Jacob. Y eso es porque a pesar de que no pasamos explícitamente el parámetro de nombre, lo que hizo fue buscar un nombre dentro de esta función en particular. No lo encontró, por lo que parecía justo fuera de esa función. Lo encontró dentro de una función cosa uno. Y lo bonito de esto es que tiene alcance para que si tratamos de imprimir aquí nombre de impresión, No va a existir en absoluto. De hecho, esto va a lanzar un error nombre de error error, nombre, nombre no está definido. Y eso es lo bonito de las funciones y el alcance con las funciones es que una vez que tienes una función, si tienes una función anidada, puedes usar todas las mismas variables de esa función original. Y esa función original i en este caso, cosa uno, no va a filtrar ninguno de sus parámetros ni ninguno de sus argumentos. Y para que eso mantenga su espacio de nombres y agradable y limpio para que no tengamos que preocuparnos de que el nombre se registre y mágicamente estemos haciendo algo míticamente cuando simplemente no existe. Todo lo que hemos dicho fue básicamente si empaquetas esto, no ves que el nombre es igual a cualquier lugar aquí dentro, no existe aquí afuera. Y ese es el alcance de Python. Ahora, eso es solo el alcance regular de Python. Así es como funciona Python. Si no puede encontrar la cosa, se ve justo fuera de esa cosa. Y como recapitulación, funciones dentro de funciones es realmente solo declaras una función, declaras una segunda función dentro de ella, o una tercera, cuarta o quinta función dentro de ella. Se puede hacer una cosa, se puede devolver una cosa. Puedes hacer prácticamente cualquier cosa que te guste dentro de esa segunda o tercera o cuarta o quinta función anidada. Y solo puedes seguir anidando lejos si querías solo tienes que recordar cualquier función que registres tienes que ejecutar también. Y entonces si estás pensando, bueno, ¿por qué haría esto incluso con un comunicado impreso? Honestamente, no lo harías. Pero si tuvieras diez líneas de lógica aquí dentro y quisieras reutilizar esa lógica dos o tres veces dentro de la cosa uno, registrarías eso como una subfunción. Ahora tu tarea para esta lección es darle un tiro a esto. Función creativa, función anidada dentro de ella, ejecutar la función anidada, ejecutar la función original, y asegurarse de pasar algún tipo de argumentos o algún tipo de parámetro que se use tanto en el función original y la propia función anidada. Adelante y dale una prueba a eso cuando estés listo. Pasemos a la siguiente lección donde hablamos de hacer solicitudes API simples. 9. Cómo hacer peticiones de API simples: Vamos a seguir adelante y hacer una simple solicitud de API. Muy bien, en esta lección, vamos a necesitar usar un paquete llamado Solicitudes. Entonces, antes que nada, probemos esto. Escribamos Python para meternos en nuestro shell. Pyt HON, Si puedo deletrear eso. Y luego solo podemos escribir solicitudes de importación. Y si no ves ningún error, entonces estás bien para irte. Podemos proceder. Podemos utilizar solicitudes. Si ves un error, algo así, solicitudes de importación para que veas un módulo no encontrado error, entonces tenemos que seguir adelante e instalar solicitudes. Ahora si tenemos que instalar solicitudes, eso está bien, podemos hacerlo. Dejemos de lado nuestro caparazón aquí. Y vas a necesitar tener PIP ahora ya deberías tener pip instalado en tu computadora. Si escribes Pip dash v , te dirá un montón de cosas aquí. Y mi Pip está usando Python 3.8. Ahora si no tienes pip instalado en tu computadora, si hay comando no funciona para ti, dirígete a la lección donde instalamos PIP y hablamos de paquetes y cosas así para luego volver a ésta. Entonces eso son algunas lecciones por delante y luego simplemente vuelve. Pero las versiones modernas de Python, si recuerdo correctamente, viene con pip por defecto. Entonces lo que podemos hacer aquí, asumiendo que tienes las solicitudes, paquete o módulo, puedes importar solicitudes y luego simplemente puedes decir REQ para solicitud es igual a solicitudes dot get, y luego alguna URL. Entonces hagamos HTTPS, Caleb dot IO. Y podemos imprimir el estado aquí, código de estado X punto y no x Estoy acostumbrado a escribir x, debería ser naufragio. Acabo de cambiar el nombre de la variable, su código de estado de req dot de impresión. Y vamos a seguir adelante y darle una oportunidad a esto. Python API simple solicita dot py. Y me da un 200, ahora un 200 de estado y códigos HTTP significa que el sitio está en funcionamiento. Ahora en este punto, se puede hacer un programa de monitoreo de sitios con bastante facilidad. Podríamos hacer algo así. Adelante y comentemos eso fuera. Y podemos hacer solicitudes de importación. Tiempo de importación. Salvaje verdadero. Req es igual a solicitudes dot get y luego tu sitio web. Por lo que HTTPS cursos de codificación de puntos para cada buddy.com imprimir código de estado req dot. Y entonces podemos decir que si ese código de estado req dot no es igual a 200, podríamos enviar un email, podemos alertar, podríamos salir de este guión. Podríamos hacer lo que queramos, así que sólo vamos a pasar. Pero en última instancia esto idealmente enviaría un correo electrónico, enviaría un texto usando Twilio API o algo así. Envíame un correo electrónico o envíame un mensaje de texto, algo así. Y esto va a correr muy, muy rápidamente una y otra vez. Por lo que no queremos enviar spam a nuestro servidor con solicitudes, pero en cambio lo que queremos hacer es hacer una solicitud y tal vez esperar como 60 segundos. Y así podríamos hacer tiempo dot sleep 60 segundos. Y así una vez al minuto esto va a hacer una petición. Pero justo como ejemplo, bajemos eso a como tres segundos. Y volvamos a correr esto y a ver qué pasa con cien, doscientos. Entonces vamos a ver que esto tiene constantemente tirando de mis sitios para asegurarnos de que esté todo el tiempo. Básicamente, acabamos de crear un programa de tiempo de actividad o un programa de monitoreo de tiempo de actividad en como siete líneas de código con Python. Y así para cancelar todo lo que hice ahí fue el control C. Así que en realidad voy a comentar este. Puedes revisar ese código fuente si quieres. Y voy a descomentar la original porque eso es todo realmente necesitamos hacer para esta lección en particular. Todo lo que tenemos que hacer es esto. Y esta es una simple solicitud de API. De hecho, en realidad esto apenas es una solicitud de API. Esto es más o menos solo una solicitud HTTP. Pero en Python, está tan cerca de una API, básicamente es una solicitud de API. En la siguiente lección, vamos a echar un vistazo a hacer una solicitud API a un endpoint que realmente acepta y JSON o no aceptado pero devuelve JSON y cómo podemos convertir eso en un diccionario Python y trabajar con esos datos. Pero por ahora vamos a seguir adelante y darle a las líneas de uno a cuatro un intento, solo pruébalo y divertirnos un poco con él. A ver si puedes obtener un código de estado diferente de un sitio web diferente. Y si obtienes unos códigos de estado diferentes, algo que no es un 200, siéntete libre de ir e investigar qué significa ese código de estado. Si no estás familiarizado con los códigos de estado HTTP. 10. Cómo hacer las peticiones de JSON API: De acuerdo, hagamos una solicitud de API JSON, solo una simple. Entonces sólo vamos a conseguir algo de información. No vamos a publicar ninguna información ni poner o eliminar ni ningún otro término de API. Simplemente vamos a conseguir algo de información. Y esto va a ser lo más común que hagas cuando se trata de API de Python o API es realmente en general. Entonces a partir de la última lección hicimos solicitudes de importación. Y luego dijimos REQ es igual a solicitar dot get, y luego alguna URL aquí. Y no sabemos si eso resultó ser HTML o JSON o algo así. Por lo que necesitamos encontrar un punto final. Entonces si nos dirigimos a intercambiar punto punto punto, este es uno de mis sitios de API favoritos porque está temático para el nombre de Star Wars. Bueno, me gusta Star Wars, pero también podemos ir a intercambiar e dot dev slash api slash, digamos que la gente slash uno. Y esto nos va a dar información sobre Luke Skywalker o personas. Y di seis, quienquiera que sea. O cuando mentirosos. Y podemos obtener toda esta información de JSON. Ahora lo bueno de esto es que no es mucha información, pero es suficiente para ser una gran demostración. Así que sigamos adelante y consigamos intercambiando dot dev slash api slash gente, y luego solo un número. Entonces esa va a ser nuestra URL, HTTPS, swapping dot dev slash, api slash gente. Hagámosle persona a quien sea. Y entonces digamos que esa persona va a ser lo que resulte esa solicitud escrita para responder con db.json y persona de impresión. Adelante y probemos esto. Python haciendo solicitudes de API JSON. Y toma un segundo y podemos ver que C3PO. Y si estás familiarizado con Python y los tipos de datos, esto se parece mucho a un diccionario, ¿no? Por lo que ahora podemos sacar el nombre y podemos decir imprimir. Nombre IS pestaña, tabulador. Y vamos a hacer una variable F String aquí. Digamos persona, nombre. Y hagamos de esto una cuerda F. ¿ Qué más podemos agregar aquí? Tenemos un nombre. También podemos sumar su año de nacimiento es persona, nacimiento subrayado año. Y yo sólo estoy consiguiendo eso de aquí y de aquí. Entonces sigamos adelante y corremos esto una vez más. El nombre es C3PO, año de nacimiento es 112 POR vamos a añadir una pestaña más aquí. Sólo para una especie de alinear esto muy bien. Nombre es C3PO, año de nacimiento es 1 12, b, b, y. y ahora tenemos acceso a toda esta información aquí. Ahora lo que es genial de esto es que también tenemos películas que tampoco llaman películas. Y las películas es simplemente una lista de películas que digamos tres. C3po no lo es. Entonces echemos un vistazo a donde 3P o es n, e imprimamos qué película se llama ese título. Entonces necesitamos dos. ¿ Qué hace esa URL? Api filmes cinco, películas slash cinco. Eso es pedir eso. Y se llama Ataque de los clones. Y también es un episodio. Entonces digamos que solo queremos averiguar en qué películas está. Podríamos entonces decir para el cine en persona. Películas porque esto en realidad es una lista REQ a petición. Solicita, dot get film, URL, imprimir, película es. Y entonces podemos hacer cine. En realidad necesitamos JSON FI este primero. Entonces digamos que la película es igual a solicitar dot JSON. Y entonces podemos hacer título de película. Y esto va a imprimir todas las películas para nosotros. Demos también una declaración impresa por encima de las películas involucradas en. Y vamos a correr esto una vez más. Y se está apagando y consiguiendo cada película. Entonces esto es hacer una diferente, una API diferente solicita para cada película en la que está y conseguir ese título. Y así ahora estamos recibiendo dinámicamente mucha información. Estamos consiguiendo un personaje C3b. Estamos revisando qué videos son, qué películas está involucrado. Y para cada uno estamos obteniendo esos datos, toda esa película en datos, incluyendo el título y todo lo que estamos haciendo es imprimir el título. Y es por eso que cuando hacemos esto, se puede ver que está regresando uno a la vez. Película es Nueva Esperanza, Imperio ataca, Retorno del Jedi, Amenaza fantasma, ataque de los clones y venganza, o el CIF. Ahora como una cabeza arriba, realmente creo que si faltan algunos datos de esta API, pero sin importar, sigue siendo una API divertida de usar. Entonces, como recapitulación, ¿cómo hacemos solicitudes de API JSON? Es lo mismo que hacer una solicitud regular. Pero si esos datos resultan ser JSON, simplemente podemos hacer dot JSON en ese objeto de solicitud. Y eso lo va a arrojar a una variable. Nosotros lo llamamos persona. Y entonces tenemos acceso a todos esos datos. Todos estos datos en un diccionario Python. Entonces lo que me gustaría que hicieras es darle a esto una simple toma. No tienes que hacer un bucle for aquí. Pero lo que puedes hacer es una simple solicitud o una solicitud GET, y luego archivo JSON y luego imprimir qué son esos datos. Volverá como diccionario una vez que sea JSON desafía o lee de JSON, más bien, volverá como diccionario para que pueda tener acceso al nombre o al año de nacimiento o a cualquier otra cosa que la API te dé. Adelante y dale una oportunidad a eso y cuando estés listo, hablemos de cómo podemos convertir una cadena que se parece a JSON a una pieza real de JSON y un diccionario pitónico. 11. Cómo leer JSON en Python: De acuerdo, echemos un vistazo a la lectura de JSON. Entonces en la última lección, lo que hicimos fue tomar algo de JSON de una API y simplemente trabajamos con ella. Y eso estuvo bien porque los datos estaban en realidad en formato JSON. No era una cadena, estaba en formato JSON. Y así fue formidable para nosotros y fácilmente podemos convertir eso en un diccionario usando Python. Pero, ¿qué pasa si esto vuelve como una cuerda? Ahora lo que quiero decir con eso es sólo que los datos de C3PO en la última lección se parecen mucho a esto. Entonces C3PO es igual a, vamos a hacer esto un poco más pequeño aquí. Y tiene toda esta información aquí dentro. Ahora bien, no podemos simplemente decir nombre del corchete de C3PO como hicimos en la última lección porque esto es una cadena, esto no es un diccionario. Entonces si decimos nombre C3PO y tratamos de imprimir esto. Python leyendo JSON dot pi, vamos a ver que los índices de cadena deben ser enteros. Y eso es simplemente porque está tratando de rebanar esto. Sabe que es una cadena, y así no es un diccionario no tiene una clave o una propiedad llamada nombre. Entonces necesitamos convertir eso. Ahora podemos hacer eso con la biblioteca JSON. Todo lo que tenemos que hacer es escribir. Voy a hacer esto solo un toque más grande, su importación JSON. Y tenemos C3PO aquí arriba. Lo que podemos hacer ahora es que un C3PO es igual a C3PO. Pero simplemente ponemos JSON dot load, load s. parece que la palabra carga, pero lo que en realidad significa es cadena cargada. Entonces estamos tomando esa cuerda y la estamos lanzando básicamente en una herramienta de conversión que va a convertir esto en un diccionario para nosotros. Y si esto está debidamente formateado, no veremos ningún error. Y así ahora vas a ver algo como esto con este ejemplo en particular de todos modos, va a decir algo en las líneas de esperar nombre de propiedad encerrado entre comillas dobles. Y eso es porque, ¿adivina qué? Esto no está correctamente formateado JSON y este es un diccionario de Python. Ahora si volvemos aquí, gente como T, Vamos por C3PO. Se puede ver que todos estos datos tienen comillas dobles, no son comillas dobles, pero no usan apóstrofos al menos. Entonces sigamos adelante y copiemos eso. Y vamos a darle JSON debidamente formateado, lo que significa que tenemos que intercambiar los apóstrofos que estábamos usando. Y sigamos adelante y usemos tres como una cadena doc. Por lo que podemos tener múltiples líneas ahí dentro. Adelante y probemos esto. Cool Cocoa, Cacao, Cacao, que funcionan. Entonces a pesar de que está en múltiples líneas , estaba totalmente bien. Tenemos C3PO es igual a esta cadena JSON gigante. No es un objeto JSON, no es un diccionario, es una cadena en este momento. Y entonces dijimos C3PO es igual a JSON dot load s. y luego esa cadena, esta cadena de aquí arriba, y simplemente la convirtió en un diccionario para nosotros. Entonces sigamos adelante y tecleemos, imprimir tipo C3PO. Y vamos a ver que esto va a ser un diccionario, va a ser un DIC t Ahí está, dict de clase. Ahora lo que es genial de esto es que luego podemos poner esto a otro archivo después de añadirlo. Entonces sigamos adelante y quitemos eso. Y cambiemos algo en tu cambiemos C3PO es nombre a otra cosa. Entonces podemos decir que el nombre C3PO es igual a mi amigo Caine como clave. Y ahora eso sólo va a cambiar en el diccionario. Eso no lo va a cambiar en el texto real aquí, necesitamos convertir esto de nuevo. Y así para convertirlo de nuevo, simplemente hacemos JSON dot dump, S, dump string, C3PO. Y hagamos C3PO. Cadena de subrayado es igual a, y vamos a imprimir eso. Imprimir C3 POSTAR. Y debido a ello tiene todos sus datos. Esto está regresando como una cuerda y el nombre es Ksp. Ahora hemos tomado datos JSON como una cadena y lo vas a hacer, vas a estar trabajando mucho con esto. Por lo que es importante saber cómo funciona JSON. No todo está perfectamente formateado en el mundo de los desarrolladores o en el mundo humano en absoluto. Y así tomamos una cadena, dijimos convertidos a diccionario adecuado usando JSON load s. entonces cambiamos el nombre. Entonces dijimos, oh, en realidad lo que queremos hacer es que queremos volcar esos datos. Entonces cambiamos ese nombre, básicamente, lo cambiamos aquí arriba. Y luego volcamos esos datos de nuevo en una cadena usando dump S. Dump string, le dimos una cadena y luego la imprimimos. Y eso es realmente todo lo que teníamos que hacer. Ahora lo que me gustaría que hicieras es darle una oportunidad a esto. Yo quiero que lo pruebes. Esto es realmente importante si vas a estar usando mucho JSON, tal vez no todos los días como desarrollador de Python, pero ciertamente cada semana o cada dos semanas. Entonces es muy, muy común. Siéntase libre de robar incluso este código sólo porque tiene el diccionario o no el diccionario, sino los datos de cadena JSON aquí. No olvides importar JSON, JSON dot load s. y luego de nuevo cuando se importa JSON, json.dumps S, y eso significa cadena de carga, dump, string. 12. ¿Qué son la función *args?: Echemos un vistazo a los argumentos de función. Entonces en la naturaleza, en mucho, mucho Python, sobre todo en Lake el mundo de Django. Vas a ver algo como cosa sorda, auto, solicitud, args, estrella, estrella, quarks. Y así en esta lección, echemos un vistazo a lo que es args. Porque, bueno, eso va a venir con clases. No necesitamos auto solicitud es cosa de Django, pero esto realmente podría ser cualquier cosa, digamos nombre. Y luego se necesita algún tipo de argumentos y luego algún tipo de argumentos de palabra clave. Entonces, ignoremos los argumentos de palabra clave por ahora, y solo trabajemos con args. Entonces lo primero es lo primero, cuando estamos trabajando con nuestros huevos, Deshaznos de esto porque no lo estamos usando. Si sólo diseccionamos esta función aquí. ¿ A qué tipo de datatype te parece esto? Deberías estar diciendo que esto parece una tuple. Y eso es como vuelve args. Args siempre vuelve como tuple. Entonces vamos a crear una función aquí donde en lugar de cosa Sorda, vamos a decir agregar números. Y simplemente vamos a imprimir los args y vamos a deshacernos del nombre porque eso va a ser un argumento posicional requerido. No queremos eso y sólo queremos lanzar cualquier número de argumentos. Y lo bonito de los args aquí es que puedes pasar en un número ilimitado de argumentos y solo funcionará. Por lo que ahora digamos sumar números 13579. Y vamos, sí, ahí vamos. Ahora esto en realidad no va a sumar los números, pero esto va a imprimir 13713579. Entonces función args dot py, y vuelve como 13579. Echemos un vistazo a esto. Vamos a diseccionar un poco esto. Veamos qué es esto en realidad. ¿ Esto en realidad es una tuple o solo estaba tirando de tu pierna? Mira eso. No te mentiría. Yo no te haría eso. Es una tuple. Y así cualquier argumento, no argumentos posicionales. Por ejemplo, si tenemos un argumento posicional llamado nombre, usaré un Caleb como ejemplo. Este nombre aquí Caleb se le asigna a los primeros argumentos posicionales. Todo después de este argumento posicional es un, es un arg estrella, o simplemente un argumento regular. Y entonces lo que esto está haciendo es decir, oh, emparejemos ese primero. Y luego si no fingimos, donde, si pretendíamos que eso no existía, el resto de ellos serían argumentos. Y así ahora podemos trabajar con todos estos. Lo que es genial de esto es que podemos decir que el total es igual a 0. Y si quisiéramos sumar todos estos números, podemos decir para num en args, total es igual al total más lo que sea ese número va a ser. Por lo que va a sumar 13579 juntos. Total de retorno. Y entonces aquí afuera podemos decir que el total es, es sumar números. Caleb, 13579. Imprimir el total. Y realmente nos deshagamos de estos argumentos posicionales requeridos porque no lo estamos usando. Entonces, ¿por qué está ahí? Y vamos a ejecutar esto y obtenemos 25. Vamos a sumar esto juntos en nuestras cabezas para asegurarnos de que esto funcione. Uno más tres es cuatro más cinco es nueve, más 716 más nueve es 25. Y así ahora podemos tomar argumentos ilimitados usando la palabra clave args. Ahora no tiene que ser un RGS. Simplemente tiene que ser delimitado por esa estrella. Y así es como Python sabe que este va a ser el resto de los argumentos. En JavaScript. Creo que usamos una cosa llamada operador de descanso. Entonces un punto-punto-punto. En Python usamos una estrella o un asterisco. Y eso simplemente le dice a Python que el resto de estas funciones o el resto de estos argumentos en esta función va a ser un conjunto de argumentos. Y así sabe empaquetarlos, tirarlos en una tupla llamada args, y luego podemos trabajar con todos esos argumentos. Ahora lo que me gustaría que hicieras es darle una oportunidad a esto. Quiero que crees una función donde tal vez sumes todos los números juntos o multiplicas todos los números juntos, haz algún tipo de suma básica o multiplicación o algo así. Y hasta puedes tomar nombres. Si querías tomar una serie de nombres, no lo hacen no tiene que ser números. Nosotros solo usamos números porque era sencillo. Pero podrías usar una serie de nombres e imprimir todos los nombres independientemente de lo que termines intentando. Yo quiero que pruebes esto porque vas a ver args estelares por todas partes. A nivel profesional, Python, es muy, muy importante que entiendas cómo funciona esto. Cuando termines eso. En la siguiente lección, hablemos de esta cosa llamada quarks, argumentos de palabras clave, y eso está delimitado con dos estrellas. Es un poco diferente, tipo de lo mismo. 13. ¿Qué es la función **kwargs?: De acuerdo, echemos un vistazo a los argumentos de palabras clave en una función. Tan a menudo verás cosa def, un argumento posicional, argumento posicional requerido. Cómo podrías tener algo así como un argumentos opcionales posicionales. Entonces nombre aij es igual a 31 por defecto, entonces puedes tener alguna forma de argumentos ahí, cualquier tipo de argumentos. Estos no tienen nombre. Estos son simplemente como 1357 o nueve como hicimos en la última lección. Y entonces tenemos args de palabras clave. Y esto es si la función completa, esto es prácticamente todo lo que podemos hacer dentro de una función. En cuanto a los parámetros. Por lo que sabemos que el nombre se va a requerir, absolutamente necesario. Edades, opcionales, ya sea que esté ahí o no, realmente no importa. La edad siempre va a ser 31. Entonces tenemos args. Y esto podría ser cualquier número de argumentos, puede ser literalmente un número ilimitado de argumentos. Vuelve como tupla y podemos recorrer los datos en esa tupla. Palabras clave args, quarks está delimitado con dos estrellas, dos asteriscos. Y lo que esto significa es, en lugar de volver como tupla, vuelve como diccionario porque los args de palabras clave se ven así. Cosa es igual a algo. O si hacemos esto en términos pitónicos cosa algo. Entonces es un poco más Diccionario como. Entonces sigamos adelante y eliminemos esto y vamos a crear un ejemplo donde usamos quarks. Tan sordo. Digamos que una persona tiene algún tipo de atributos. no sabemos cuáles son esos atributos, pero podemos recorrer por ellos. Entonces, en primer lugar, imprimamos quarks e imprimamos tipo de quarks. Y ejecutemos persona y digamos nombre es igual a Jacob. Aij es igual a 27. El cerebro es igual a enorme. Y lo que es genial de esto es que en realidad conozco a una persona llamada Jacob. Creo que tiene unos 27 años. Y probablemente sea la persona más inteligente que he conocido. Python función quarks dot py. Y vamos a ver que obtenemos un diccionario con nombre Jacob, 27 años, cerebro enorme. Y todo esto hizo fue literalmente empaquetar esto y lanzar estos argumentos de palabras clave en un diccionario para nosotros. Entonces ahora podemos trabajar con esto. Tenemos algo con lo que trabajar. Entonces ahora podemos decir en nuestra función, si, vamos a comprobar si la edad está en quarks. Imprimir tu edad es. Y entonces podemos hacer quarks dot-dot-dot porque es sólo un diccionario. Y ya sabemos usar el punto getMethod. Quarks dot obtener nombre. Y es ahora estamos usando el operador in, estamos usando Get, estamos usando diccionarios estábamos usando un condicional, estamos usando argumentos de palabra clave, estamos usando una función y estamos usando sentencias de impresión y nombre. ¿ Por qué puse nombre? Debí haber puesto edad. Si estás gritando a tu pantalla yendo app. Bueno, podrías atrapar. Dice que lo son. Justo uno tras otro aquí, sólo matándolo hoy. Tienes 27 años. Cuco, cuco, cuco. Solo finjamos que lo conseguí en el primer intento. Entonces ahora podrías estar pensando, ¿dónde está realmente usado Lake. Y esto parece un poco descabellado. Y si estás pensando que no te equivocas, pero probablemente tampoco tengas razón del todo. Un buen ejemplo de esto sería como, digamos que quieres pedir pizza desde un sitio web. Pedido sordo pizza. Necesitamos un nombre de argumento posicional. Necesitamos una dirección para entregarla. Y digamos toppings. Ahora toppings va a ser un argumento de palabra clave. Y así podemos decir que el orden de impresión es por nombre. Voy a usar una cadena F aquí. Y la dirección es enviarlo a la dirección. Ahora tenemos que llegar a algún tipo de precios. Entonces el precio ahora mismo va a ser, digamos, un impago de 18 dólares. Y por cada tema que tenemos, queremos agregarle otros $2. Por lo que ahora podemos recorrer toppings. Podemos decir por valor clave en artículos de coberturas. Porque sabemos que esto es un diccionario y simplemente podemos recorrer todos los toppings para que realmente no nos importa cuáles son los temas. Podría ser, pepperoni, podría ser Jamón, puede ser Piña, podría ser queso extra, podría estar ayudándote como no sé, realmente no importa. Simplemente queremos averiguar el precio aquí. Y así vamos a recorrer todos los ítems del diccionario que nos da un par de valor clave. Y francamente, ni siquiera necesitamos usar la clave o el valor. Por lo que el hecho de que estemos usando artículos de punto es completamente inútil. Es sólo bueno, por ejemplo, código en este video. Entonces sigamos adelante y digamos por cada artículo del año, precios iguales al precio más $2. Imprimamos eso. Cuando terminemos. El precio total es precio, y volvamos precio. Entonces sigamos adelante y ahora ordenamos esta pizza. ¿ Cómo instanciamos esta función en particular? Nosotros sí pedimos pizza porque ese es el nombre. Digamos que va a ir a Amanda. Vive en Canadá. ¿ Y qué tipo de coberturas quiere? Y decir cómo Pena tos es igual a verdadero a argumento de palabra clave. El queso extra es igual a verdadero, y el jamón es igual a verdadero. Entonces tenemos un tornillo posicional que hasta un poquito aquí. Argumento posicional requerido llamado nombre y otro llamado dirección. Todo lo demás se considera un argumento de palabra clave. Entonces si pedimos esta pizza, es decir, ahora podemos decir que el precio total es igual a esto. Adelante y en realidad ejecutemos esta función Python, quarks. Y dice órdenes para enviar Amanda a Canadá. El precio total es de $24.024. Y eso es porque tenemos 246 dólares extra. Porque cada tema vale $2 y el precio base es de 18. Y este es un ejemplo del mundo real de cómo podrías posiblemente, si quisieras usar argumentos de palabras clave. También podría comprobar para ver si las direcciones en los argumentos de palabra clave. Porque si address estaba en los argumentos de palabra clave, puedes ignorarlo o si no era un argumento posicional requerido como este. Si estaba ahí dentro, entonces genial, ya sabes, o para enviar la comida o entregar la comida a, ya sabes, ¿enviamos comida? ¿ Entregamos comida? ¿Para entregar la comida a? De lo contrario, si direcciones no en coberturas. Y simplemente estamos revisando para ver si hay una clave dentro de un diccionario ahí. Si las direcciones no están en toppings, vas a necesitar pedirle al usuario una dirección. Y esta es una situación del mundo real. Es así como pedirías pizza usando Python. Ahora me gustaría que le diera una oportunidad a esto. Voy a deshacer que a este código realmente funciona. Adelante y crea una función que tome un par de argumentos posicionales requeridos y luego déjalo excepto argumentos de palabra clave con estrella, estrella. Y de nuevo, no tiene que llamarse kw args y palabras clave args. Lo más probable es que lo veas de esa manera. Se puede llamar cualquier cosa. Pero la mayoría de las veces lo vas a ver como quarks. Adelante, pruébalo. Vas a necesitar saber cómo funciona esto cuando nos movemos a cosas como Django porque usamos argumentos de palabras clave en todas partes en Django. En la siguiente lección, hablemos de cómo podemos instalar PIP. 14. Cómo instalar la pip: Echemos un vistazo a cómo puedes instalar pip. Entonces, en primer lugar, ¿qué es Pip? Pip es un paquete. Supongo que se considera un paquete, pero la gente básicamente te permite instalar paquetes de terceros usando Python. Por lo que si alguna vez has usado JavaScript, es posible que hayas usado NPM. En PHP, se llama Posner, creo componer compositor. Creo que es compositor y ha pasado un poco tiempo. Y en Python lo llamamos PIP. Y así cómo funciona es que podemos decir pip install package name, y esto lo pone a disposición en nuestra computadora para nosotros por lo que ahora podemos usar el código de otras personas en nuestro equipo. Ahora bien, si no tienes, por ejemplo, solicitudes instaladas, simplemente puedes hacer solicitudes de instalación de pip. Ahora vamos a comprobar si realmente tienes pip instalado primero, vamos a hacer Pip dash v terminal interior. Y tengo pip instalado. Si no tienes esto, si esto te da algún tipo de error, como comando no encontrado tipo de error, vamos a necesitar instalar PIP. Ahora si ya tienes pip instalado y es posible que ya tengas pip instalado, solo porque Python podría venir con él. Si Python viene con tu versión de Python viene con Pip, puedes ignorar el resto de este video. Si no tienes PIP, sigamos adelante e instalamos PIP ahora. Entonces para instalar pip, lo que vamos a querer hacer es querer, primer lugar, curled se baja a nuestra computadora. Por lo que queremos descargar este archivo a nuestro equipo. Y así podemos hacer eso con curl en nuestra terminal, HTTPS colon slash slash, bootstrap dot p, y p. paquetes de Python dot io slash get dash, Pip dot py que lo hacemos dash o y lo vamos a llamar get pip dot py. Ahora y ver si tengo algún error tipográfico en año debido a, debido a la descarga del archivo. Y si hago ls dash LA o si estás en Windows, puedes escribir DIR. ¿ Y tenemos que conseguir pip? Tenemos una función aquí llamada get pip. Genial, eso es lo que queremos. Entonces ahora una vez que tengas ese archivo, todo lo que tienes que hacer es escribir Python, obtener pip dot py. Y eso seguirá adelante y obtendrá un PIP de instalación en su computadora para usted. Ahora ese comando de nuevo es justo esto. Curl HTTPS colon slash slash bootstrapped dot pi, pi a PIPA dot io slash getDish, Pip, dot PY, get dash, Pip dot pi. Así que siéntete libre de pausar el video aquí si es necesario. Si esto no está disponible para ti en esta plataforma, para básicamente copiar y pegar, solo puedes pausar el video y escribirlo. Y luego necesitas ejecutar Python, obtener pip dot pi. Y una vez que eso haya terminado funcionando, deberías poder hacer Pip dot dash v. Y Pip dash v te va a mostrar tu versión de Pip donde se está utilizando. Entonces por la razón que sea, mi versión de Pip está usando 3.8, Python 3.8. Y me dice python 3.8 aquí. Ahora instalar un paquete es tan fácil como decir algo como pip install, color Emma. Y esto se va a apagar y descargar un montón de cosas. Dice que ya está satisfecho para mí. Supongo que ya lo tengo de alguna manera. Y puedo desinstalar haciendo Pip desinstalar ColorRAMP. Sí, vamos a deshacernos de eso. No necesita estar en mi computadora, así que me deshice de ella. Otra que podrías, posiblemente quieras si no viene con tu versión de Python es entrar en tu shell y simplemente escribir solicitudes de importación. De acuerdo, eso funcionó para mí. Pero si ves un error que se parece mucho a este módulo, error Not Found, vas a necesitar instalar solicitudes. Entonces sigamos adelante y dejemos de fumar. Y puedes hacer solicitudes de instalación de pip. Y esto nos permite entonces en nuestro código, lo que vimos antes era como solicitudes de importación o importar JSON. Y eso sólo nos permite importar código de otras personas. Ahora Python viene con algo de su propio código, como si no necesitara la biblioteca JSON. Simplemente viene con Python. Simplemente no es parte de la parte central de Python. Por lo que sí importa JSON, mientras que las solicitudes pueden o no venir con su versión de Python. Si no lo hace, tienes que hacer solicitudes de instalación de pip y luego podemos en nuestro código, solicitudes de importación. 15. Mutable vs inmutable: Muy bien, bienvenido de nuevo. Echemos un vistazo a esta idea de algo que puede ser mutable vs. inmutable. Y estas son palabras de fantasía para ¿es algo cambiable frente a un cambiable? Eso es todo lo que es. Desarrolladores, programadores, nos gustan mucho nuestras palabras de fantasía y fantasía. Por lo que usamos inmutable y mutable, realidad sólo significa cambiable e inmutable. Eso es todo. Pero hay algo que notar aquí es cuando estás trabajando con ciertas variables, ciertas cosas son mutables o cambiables y algunas cosas son inmutables, inmutables. Y así por ejemplo, podría estar pensando que una cadena es mutable, en realidad no es, no tiene cambiable. Entonces si tenemos algún tipo de cuerda aquí y nos dicen, el zorro saltó sobre la vaca. Y entonces dijimos cadena es igual a otra cosa. Podríamos estar pensando que esto en realidad es mutable, pero lo que realmente está sucediendo detrás de bambalinas aquí es algo muy, muy diferente, algo que no necesariamente esperarías. Entonces string aquí está tomando esta cadena en particular y la está atascando en una pequeña pieza de memoria en su computadora. Y lo apodamos cadena. Ese es el nombre de la variable. Ahora detrás de bambalinas, no podemos cambiar esto en absoluto. Y así si hicimos string dot upper, y vamos a imprimir esto, imprimamos string dot upper, e imprimamos también sólo la cuerda regular. Y hagamos Python mutable vs. inmutable. Vamos a ver que uno es mayúscula y uno no mayúscula. Y lo que realmente ves aquí es string es tomar todo esto, convirtiéndolo en mayúsculas, pero no está restaurándolo de nuevo en esta variable en particular. Lo que en realidad está haciendo es solo sostener eso en la memoria y luego dejarlo usarlo. Ahora si quisiéramos, podríamos intentar sobrescribir esto. Podemos decir que la cadena es igual a sobre escrito. Y absolutamente esto va a funcionar para nosotros. Pero detrás de bambalinas está haciendo algo que no esperas. Detrás de las escenas dice, Vale, cuerda es igual a esta frase en particular aquí. Y entonces esa cadena se está sobrescribiendo. Esto tiene un pedazo de memoria. Esto tiene una pieza de memoria diferente. Entonces no vamos a poner esta pieza en esta cuerda y luego poner esta pieza en esa misma cuerda, realidad la estamos anulando por completo. Entonces estamos diciendo que esto tiene un pedazo de memoria. Esto no se puede cambiar una vez que está ahí y ahí para siempre, o hasta que termine tu guión, al menos. Entonces estamos diciendo, de acuerdo, bueno sabemos que hay un trozo de memoria llamado string. Vamos a sobrescribir eso con una nueva pieza de memoria y llamarlo sobrescrito. Entonces detrás de bambalinas, en realidad no se puede cambiar una cuerda. Ahora sobre salvaje, porque pensarías que podrías ser capaz de cambiar una cuerda, pero simplemente no funciona de esa manera en la informática. Entonces otro ejemplo de esto sería como una lista. Por lo que podríamos tener nombres es igual a Caleb, Jacob, piadoso, y Amanda. Lo que es diferente en esto es porque estamos usando una lista. Y aunque estas cadenas aquí, estos elementos individuales son inmutables, la lista en estos elementos individuales son inmutables, sí es mutable, significa que podemos cambiarla, podemos agregarla, podemos anexarla. Por lo que podemos hacer nombres punto anexar. Y vamos a añadir el gato llamado ruibarbo, imprimir nombres. Y te das cuenta de cómo no hicimos nombres es igual a dos nombres punto anexar. No hicimos eso. Simplemente asignamos a variable aquí. Y luego dijimos con esa variable, agregarle algo, y luego imprimirlo. Adelante y ejecutemos esto y vemos el ejemplo sobrescrito. Dos primeras líneas. Entonces vemos a Caleb, Jacob, portero, Amanda, y ruibarbo. Y curiosamente, a diferencia de esto, donde hicimos string dot-dot-dot, no lo guardó como mayúsculas en absoluto. Eso lo podemos ver aquí. Fue mayúscula una vez, pero en realidad no lo guardó como mayúsculas. tanto que nombres con lista, sí. Establecemos esa variable, cualquiera que sea esa variable va a ser como lista. Entonces dijimos que el punto de lista anexa un nuevo elemento, agregando nuevo elemento a esa lista, y automáticamente lo guardó para nosotros. Eso significa que las listas son mutables, pero las cadenas no son mutables. Ahora bien, ¿esto es importante en tu vida cotidiana de pitón? No, no a menos que vayas a meterte en la ciencia de datos probablemente y tengas cantidades gigantes de datos y necesitas ser muy performante en el desarrollo web. Realmente no necesitamos saber esto, pero es algo bueno saber sin embargo. Ahora, como tu tarea, lo que me gustaría que hicieras es que te vayas y Google es una tupla, mutable o inmutable. Sabemos, uh, la lista es mutable. Sabemos que una cadena es inmutable, pero una tupla es como una lista a la que no se puede agregar nada. ¿ Se considera mutable o inmutable? Vas a tener que ir a hacer un poco de investigación para este. Cuando termines eso pasemos a la siguiente lección donde hablamos esta palabra de fantasía llamada numeración E. 16. ¿Qué es la enumeración de la lista?: Kelley Dhaka Lee, hablemos de esta cosa llamada numeración E. Y realmente todo esto va a hacer es que vamos a recorrer algún tipo de lista y vamos a sacar el número de índice de ella. Entonces podríamos crear una lista, digamos que los animales es igual a una lista de barranco, ruibarbo, Zafar, y Henry. Y entonces podemos decir para animal, en animales, imprimir el animal, pero ¿cómo sabemos exactamente qué orden no es este? ¿ Cómo sabemos que el ruibarbo va a ser el número dos? ¿ O cómo sabíamos que Henry va a ser el último? Actualmente no lo hacemos. Y así si ejecutamos este código, vamos a ver que este es un estándar for loop. Aprendimos de esto en Python uno a uno, nada de fantasía, nada nuevo, nada emocionante. Entonces si quisiéramos conseguir la numeración aquí, usamos esta función llamada enumerar y envolveremos nuestra lista en ella. Y lo que esto va a hacer es si tratamos de ejecutar esto, echa un vistazo a esto. Nos da una tupla. Y en realidad es cada elemento de aquí es una tupla. Se trata de una tupla de tuplas, una lista de tuplas más bien. Y así 0 y caray, un ruibarbo a HHS esfuerzo tres, Henry. Entonces ahora tenemos esos valores de índice. Y como hay dos de ellos aquí, podemos hacer esta cosa llamada desempacar. Entonces podemos hacer índice y luego animal. Y luego si imprimimos sólo el animal que va a aparecer igual que la primera vez. Podríamos imprimir índice entonces ese animal. Y podemos ver aquí 0 barranco, uno, ruibarbo a Zafar, tres Henry. Entonces ahora estamos empezando a conseguir ese número de índice. Ahora en realidad podemos hacer algo con esto. Podemos decir si el módulo de índice dos es igual a 0, por lo que cada segundo continúa. Y luego si no continuamos, si el índice con un módulo de dos tiene un resto de 0 o no tiene un resto de 0, imprime ese animal. Y así no sólo va a mostrar cada segundo uno. Esto muestra el ruibarbo y Henry. O como ejemplo alternativo aquí, lo que podemos hacer es imprimir con un índice F String más un número. Hagamos una pestaña que no es hacer tabuladores espaciales, solo hacer tabulador. Y luego el animal. Y esto va a parecer una lista numerada adecuada para nosotros. 1234, Kelly ruibarbo es EFR y Henry. Entonces ahora estamos llegando a algún lugar con esto. Ahora, enumerar viene bastante útil. Utilizo como probablemente una o dos veces a la semana en código de nivel profesional. Y así vas a necesitar saber qué hace enumerate. Y realmente todo lo que hace es decir, oye, vamos a darle algunos valores de índice aquí. Entonces esto va a ser 0, esto va a ser uno, esto va a ser dos, y esto va a ser tres simple add Es que todo lo que hace es agregar valores de índice porque a veces se necesitan esos valores de índice. Adelante y prueba esto. En la siguiente lección, vamos a hablar de las comprensiones de listas. 17. List de lista: De acuerdo, echemos un vistazo a una lista de comprensión. Entonces una comprensión de lista es realmente solo un método abreviado para escribir un for-loop y poner todos esos datos en una lista. Ahora, veríamos un viejo ejemplo, como ítems es igual a algo así. En realidad no es debido artículos. Hagámoslo. Números es igual a una lista de números. Por num en 13579. Números punto anexan lo que sea que ese número va a ser al poder de dos números de impresión. Y así vemos 19, 25-40, 981. Y así todo lo que hicimos fue exponente el número contra el número dos. Entonces dijimos uno al poder del 23, al poder del 25 al poder dos es tener una prioridad de nueve al poder dos y lo consigues. Hay una forma más rápida de hacer esto en Python. Esto es algo muy pitónico de hacer, y al principio se ve muy extraño. Pero en lugar de hacerlo a lo largo, podríamos decir que los números son iguales a algún tipo de valor para un valor en una lista de algún tipo. Y entonces lo que estamos diciendo aquí es mirar esto for loop. Y esto se parece mucho a num en una lista de 13579. Y echa un vistazo a esto incluso cuando un resaltado, es exactamente lo mismo. Y todo lo que estamos haciendo es devolver ese valor a la izquierda. Entonces ahora tenemos entumecidos. Podemos usar entumecido en lugar de x num a la potencia de dos. Y vamos a imprimir números una vez más. Y vamos a ejecutar esto. Vamos a ver que esto es exactamente lo mismo. Entonces ahora en lugar de escribir 123 líneas de código, ya sabes, otorgadas son sólo tres líneas de código. Lo escribimos todo en una sola línea de código. Y así de nuevo, acabamos de decir la respuesta para algún tipo de iteración o iterable en una lista de cosas o una lista de iteraciones. Y tenemos corchetes a su alrededor. Y los corchetes a su alrededor significan que esto va a ser una lista de comprensión. Podemos hacer algo muy parecido con los diccionarios llamados comprensión de diccionario, que aprenderemos en la siguiente lección. Pero por ahora, sólo necesitamos saber que tenemos un soporte duro aquí, se parece a una lista y tenemos algún tipo de cosas raras aquí. Ahora lo que quiero que hagas es quiero que pruebes esto porque las comprensiones de lista son muy, muy populares en Python. Son significativamente más populares que una comprensión de diccionario. Y vas a necesitar saber cómo funcionan estos. Entonces cuando lo ves, no solo lo miras y te vas, oh, no sé qué significa esto. No sé qué es esto. Ni siquiera sé cómo se llama esto. Ahora sabes que esta sintaxis extraña aquí es tu respuesta para tu iteración en un iterable envuelto en una lista. Y eso es idéntico a lo que escribimos aquí. Es sólo un poco más corto. Así que adelante, pruébalo. Diviértete con él. Trata de romperlo, trató de entenderlo. Probablemente pase como cinco minutos en él en solo lío y vea lo que puede y no puede hacer. Si quieres dar este paso más allá, definitivamente te sugeriría salir e investigar cómo puedes agregar una declaración if aquí. Porque puedes tener afirmaciones if y else dentro de las comprensiones de lista también. Por lo que tienes una línea grande con un bucle for. Y puedes tener una declaración if dentro de eso for loop y solo generar algo si hay una respuesta en particular. Adelante, pruébalo cuando estés listo. Pasemos a la siguiente lección donde aprendimos sobre las comprensiones de diccionario. 18. Comprensión de diccionario: Bienvenido a las comprensiones de diccionario. Entonces, al igual que una comprensión de lista, una comprensión de diccionario se puede escribir en una sola línea también. Entonces sigamos adelante y creamos un ejemplo largo y luego lo recrearemos con un ejemplo más corto. Entonces hagamos un ejemplo donde queremos crear un diccionario a partir de una lista de tuplas. Y así podemos decir algo como esto. Nombres es igual a, tenemos una lista y luego una tupla aquí llamada Caleb, ocupación, codificador. Ahora para convertir esto en un diccionario, tendríamos algo así como d es igual a y luego cuatro. Y debido a que se trata de una tupla con dos artículos en ella, podemos desempacar. Por lo que podemos decir para el valor clave en los nombres, D0, C0 es igual al valor. Y entonces podemos imprimir lo que sea D para diccionario. Entonces diccionario Python. Y se puede ver que hay un diccionario ahora nombre Caleb codificador de ocupación. Podríamos incluso volver a comprobar que es de hecho un diccionario, aunque, quiero decir, podemos verlo por su sintaxis. Pero veamos cómo se ve esto. De hecho es un diccionario. Y así todo lo que hicimos aquí fue crear un diccionario a partir de una lista. El largo camino, hay una forma más corta de hacer esto. Entonces sigamos adelante y deshacernos de eso. Y voy a hacer esto sólo un poco más corto. Para que podamos ver el código. Entonces ahora podemos decir que D es igual a una comprensión de diccionario. que usualmente ponemos algún tipo de clave, algún tipo de valor para el valor clave en, digamos nombres, que es un iterable. Entonces, en realidad escribamos esto por el largo camino. Por lo que este es un valor de colon clave para cada valor clave en los nombres. Adelante e imprimamos d de nuevo, y vamos a ver que es exactamente lo mismo, va a lucir exactamente igual arriba y abajo, así como esto. Y así todo lo que hicimos aquí fue abrirnos y cerrar con tirantes rizados. Dijimos el colon clave, igual que un diccionario regular cuando estamos creando un diccionario desde cero. Entonces tiene un valor. Y entonces estamos diciendo que la clave y el valor vienen de artículos desempaquetados. En un iterable. Qi fue el primer artículo desempaquetado, el valor fue un segundo artículo desempaquetado. Y los nombres es lo iterable aquí arriba. Ahora, Eso es mucho más fácil de escribir que tener que escribir estas tres líneas. Y también puedes agregar si las declaraciones aquí también para asegurarte de que solo agregues cierta información, cual voy a dejar que investigues por tu cuenta porque esa es una parte importante de aprender a codificar. Pero también hay una forma más. También podríamos decir simplemente que D es igual a los nombres DECT. Echa un vistazo a esto. Simple mecanografiado en su mejor momento. Entonces vamos a aparecer, vamos a imprimir D3 veces y echar un vistazo a esto. Pudimos convertir nombres a un diccionario automáticamente con una sola línea de código. Y usamos como para seis caracteres más un nombre variable. Por lo que hay algunas formas diferentes de hacer esto. Ahora bien, una comprensión de diccionario no es tan común como una comprensión de lista. Las comprensiones de lista son salvajemente populares. En Python. Comprensiones de diccionario populares, no tan populares, pero todavía vas a ver estas y vas a necesitar saber cómo funcionan estas. Así que adelante y dale una prueba a esto. Siéntase libre de simplemente ejecutar este ejemplo líneas de uno a tres. Simplemente, vas a recorrer un iterable llamado lista. Y esa lista se nombra nombres. Cada elemento de esa lista es un conjunto de tuplas o un conjunto de tuplas que no puede recordar cómo se llama ahí, pero tiene un primer valor. Segundo valor, coma, otra tupla, primer valor, segundo valor. Y puedes desempaquetar eso usando valor clave en ese iterable. Y luego puedes crear una comprensión de diccionario. Entonces imprime eso, asegúrate de que en realidad es lo que esperas que sea. Voy a deshacer este código para que veas el largo camino. Adelante y pruébalo. Si te quedas atascado, definitivamente ven a revisar el grupo de aprendizaje para codificar Facebook. Estamos aquí para ayudarte a aprender Python. 19. Cómo conseguir los valores de diccionario: Echemos un vistazo a cómo podemos obtener los valores del diccionario. Ahora toqué esto un poco en algún momento, hace unas lecciones. Pero si tenemos un diccionario, podemos comprobar si existe un valor y obtener ese valor por su nombre de propiedad. Entonces vamos a crear un diccionario aquí llamado cursos. Y digamos que tenemos un curso de JavaScript, un curso de JS, y se llama java script 101. Y tenemos otro curso para Python llamado Python 101. También tenemos otro llamado Python 201. Es decir, vamos a tal vez hagamos de éste una lista, Python. Y también hay como HTML 101 y todas esas cosas buenas, CSS 101. Este se va a llamar HTML 101. Y así digamos que queríamos conseguir JavaScript. Queríamos sacar esto de aquí. Ahora bien, no necesariamente conocemos todo el tiempo, todos los valores que vienen en un diccionario. Normalmente hacemos alguna depuración de impresión donde hacemos cursos de impresión. Y luego si lo vemos ahí dentro, podemos hacer imprimir curso JS. Podríamos hacer algo así, pero no siempre sabremos y a veces imprimiremos la depuración. Se. Está bien hacerlo, pero es, es algo doloroso hacerlo al mismo tiempo. Entonces hay una mejor manera de que podamos hacer esto. Por lo que en realidad podemos decir Courses dot get JS y a menudo vas a ver esto. Cursos dot get JS, ninguno. Y esto es lo que vas a ver. Dot obtener algún nombre de propiedad que coincida con nuestro león en la línea dos o propiedad en la línea dos. O un nombre clave a veces llama a la propiedad a veces como una clave. Son términos intercambiables. O si no hay un conjunto algún tipo de defecto. Y el default aquí va a ser N O N E va a ser Ninguno. Y así si imprimimos esto, vamos a ver que nos da JavaScript 101. Ahora, eso está bien. Eso es exactamente lo que queremos. Pero, ¿y si quisiéramos conseguir CSS? Bueno, no hay nada ahí dentro, así que esto va a imprimir absolutamente nada, solo ninguno. Ahí dentro no hay nada porque ahí no hay nada. Y también podemos darle un texto por defecto, por defecto aquí. Y eso nos va a dar el texto por defecto aquí, o mejor aún, porque vamos por el tipo de patrón de JavaScript, HTML uno a uno, uno a uno, Python, uno a uno, etcétera, etcétera. Podríamos hacer CSS 101. Y así si puede sacar CSS 101 de este diccionario, genial, se va a, lo contrario va a por defecto a CS101 para, cuando imprimamos esto, vamos a ver que dice CSS 101. Y eso se debe a que CSS como clave, como propiedad dentro de este diccionario simplemente no existe. Por lo que cae de nuevo a CSS uno a uno o lo que decidamos darle. Ahora donde esto es útil es si comento eso fuera, podemos decir si Courses dot obtienen CSS y no vamos a darle ninguno porque eso es lo que es el valor predeterminado. Simplemente podemos decir imprimir. Estás inscrito en beisbol ese derecho, inscrito en CSS 101. Ahora, mira esto. Esto no va a imprimir nada, no hace absolutamente nada. ¿ Y si decimos, si los Cursos punto obtienen y le dieron algún tipo de valor en su CSS, uno a uno. ¿ Esto se va a ejecutar? Y esta es una buena pregunta estar haciéndose. Dice que estás inscrito en CSS uno a uno, y eso se debe a que no pudo obtener ese valor CSS. Entonces se fue y estableció uno por defecto. Y esto se parece mucho a decir si una cadena es igual a CSS 101, razón por la que a menudo vas a ver esto. Y esto está sólo un poco más explícitamente escrito. Entonces esto va a decir si Courses dot obtienen CSS, si hay uno, cool, ejecuta esta sentencia if. De lo contrario ninguno. Y sabemos en declaraciones condicionales con Python que si dices si ninguno, esto va a ser lo mismo que decir si es falso, no se va a ejecutar. Entonces cuando volvamos a probar esto, no va a imprimir nada. Puedo hacer esto una y otra vez. Literalmente sólo imprime nada. Ahora vas a ver esto todo el tiempo, sin parar probablemente todos los días como desarrollador profesional de Python, lo que quieres hacer como tu tarea es lo que me gustaría que hicieras ya que tu tarea es conseguir un poco de experiencia práctica con esto . Adelante y crea un diccionario. Y en ese diccionario quiero que vayas y luego uses dot get y luego uno de los valores clave y le des un valor predeterminado. Y simplemente juega con una declaración if. Básicamente solo haz exactamente lo que hice en este video, aunque solo te lleve treinta segundos, podrías pensar, oh, bueno esto no tiene sentido. Pero realmente estás construyendo mucha memoria muscular aquí. Y lo que es bueno de la memoria muscular es tan pronto como la veas, tan pronto como empieces a escribirla, eventualmente en algún momento simplemente se convierte en segunda naturaleza. No tienes que pensar en ello. Simplemente pasa. Simplemente conoces a Python. Adelante y prueba eso. En la siguiente lección, vamos a hablar de algo un poco más complicado llamado entorno virtual. 20. Crear un entorno virtual: De acuerdo, hablemos de entornos virtuales. Un entorno virtual es una forma de compartimentalizar paquetes. Entonces, por ejemplo, puedo usar pip para mostrar mis paquetes. Puedo decir Pip show Django. Y tengo django instalado aquí. Estoy usando Django 2.2.1 tres, y eso está en mi computadora. Ahora y si tengo un proyecto que esté usando una versión diferente de Django, dicen Django 3.1. Y luego hagamos un paso más complicado. ¿ Y si tengo cinco sitios web diferentes usando Django, pero todos están usando diferentes Paquetes Django. Actualmente lo que tiene que hacer es Pip desinstalar Django y pip install Django es igual a 3.1, lo que sea, tendría que hacer eso una y otra vez. Y en realidad puedes ver cuando estoy usando Pip show jangle aquí que te muestra exactamente dónde está Django, y esto está justo en mi computadora. Está en marcos de biblioteca, versiones de marco de Python 3.8 lib Python 3.8 paquetes de guión del sitio. Eso fue un bocado. Pero y si tienes, ya sabes, un proyecto, digamos otra vez una página web de Django, donde quieras compartir esto con todos los demás de tu empresa. Y tú quieres que usen Django también. Bueno, en lugar de empaquetar Django y enviarlo con tu página web y enviarlo a todo el mundo golpea como cerrar un archivo y enviarlo a todos. Simplemente puedes decirles que instalen Django usando una versión determinada. Y lo hacemos y separamos estas diferentes versiones donde separamos estos diferentes entornos son estos proyectos usando un entorno virtual? Y esto es algo muy, muy común en el mundo de Python. Y así para entrar en un entorno virtual requiere una de dos cosas, una de dos pasos más bien, o bien vas a estar en un sistema basado en Unix como Mac OS o Linux. Son muy, muy similares. O vas a estar en Windows, te voy a mostrar cómo hacerlo en ambos. Entonces para crear un nuevo entorno virtual, en primer lugar, hagamos ls dash l a, o si estás en Windows, puedes escribir DIR. Y si me desplazo hasta aquí, por lo general vas a ver una carpeta llamada proveedor de puntos o simplemente vend o n Estos son los tres más comunes que he visto por ahí. Entonces aún no tenemos ninguno de esos. Vamos a seguir adelante y crear eso para que podamos hacer Python, dash m, v y v dot v y v Y esa es la carpeta en la que vamos a ponerla. Y va a tomar un segundo y hacer un montón de pensar. Vs Code son lo suficientemente inteligentes. Dijo que notamos que se ha creado un nuevo entorno virtual. ¿ Desea seleccionar para esta carpeta de espacio de trabajo? Sí, OK. Podría también. Se puede ver por aquí tengo una carpeta. Si hago ls dash LA o en Windows DIR, desplácese hacia arriba. Ahora tengo una carpeta aquí llamada proveedor de puntos. También tengo un Código VS, uno que es solo código VS siendo código VS. No tenemos que preocuparnos por eso. Pero tengo que VS, V0 y Vi carpeta aquí, y tiene bin lib include pi n, v dot CFG. Si estás usando pi n, que soy yo, puede que no tengas eso. Pero así es como creamos un entorno virtual. manera muy simple, es solo Python dash m, v dot v NV o como quieras llamar a esa carpeta, usualmente lo llamo dot v, n v, Así que está oculto. Y tratamos de no comprometer estos a nuestros repositorios de Git. Ahora, eso está todo bien y bien. Pero si hago Pip show Django. Sigue usando exactamente la misma ubicación. Sigue usando exactamente la misma versión que antes. En realidad no estamos usando nuestro entorno virtual. Tenemos que meternos en ello, así que lo creamos. Pero ahora tenemos que meternos en ese entorno virtual. Entonces si estás en Mac o si estás en Linux, puedes escribir source dot VN been activate. Y se puede ver que dice dot VN por aquí. Ahora estoy en un entorno virtual. Ahora mira esto. Si hago Pip, muéstrale a Django, no aparece nada. No está instalado en su entorno virtual. Y lo que es genial de esto es que puedo hacer pip instalar Django. Y te voy a dar instrucciones de Windows para que te metas en tus entornos virtuales tan pronto como esto se haga. Entonces esto sólo se va a apagar. Descargar Django, Pip, mostrar Django. Y esto ahora está usando Django 3.2.4. Está en mi carpeta Python 201, punto Ven en su biblioteca, Python 3.8 paquetes de sitio. Enfriar. Entonces salgamos de esto. Nosotros salimos de esto con desactivar. Y eso me acaba de sacar de mis entornos virtuales ahora para volver al entorno virtual, si estás usando Windows, este es un poco más difícil. Normalmente hacemos algo como la contralga, el punto, los guiones de puntos, la activación de puntos, el bate de punto. Ahora, esto depende en gran medida de tu sistema operativo. Si creas un entorno virtual inventivo, va a ser en dot v Drayton aquí. De lo contrario, lo que a menudo vas a ver un punto o no punto sino inclinar guiones ENV con una S mayúscula activan bat de ocho puntos activo. Y así es como entras a tu entorno virtual usando Windows, va a ser una de esas dos opciones. Entonces volvamos adentro aquí, lo voy a hacer y la manera Mac, así fuente dot VN se activó. Y ahora estoy dentro de ella. Pip show Django. Y esto me va a mostrar jangle con 3.1.4 ahí mismo. Desactivar para salir de ella. Pip, vuelve a mostrar a Django. Y mi computadora está usando la versión 2.2.1 tres. Entonces mi computadora tiene acceso a un Django, pero es una versión más antigua de Django. Mi entorno virtual, que es totalmente nuevo, tiene en él una versión totalmente nueva de Django. Y así ahora puedo usar dos versiones diferentes de Django o cualquier paquete de Python y asegurarme de que no vayan a entrar en conflicto. Puedo tener otro entorno virtual en otro proyecto usando una versión diferente de Django. Y así toda la idea aquí es que si tienes múltiples proyectos sobre la marcha, es realmente, realmente fácil simplemente actualizar un proyecto y no tener que preocuparte por actualizar otro proyecto. Porque si actualizas un proyecto y tienes que actualizar todos tus otros, eso va a chupar. Tengo más de 200 webs en mi computadora desde mi trabajo en este momento. Y no me podía imaginar tener que actualizar Django y 200 sitios cada vez que quería hacer un poco de un bache de versión. Y así esto sólo lo mantiene agradable y simple y separado para nosotros. Por lo que normalmente siempre que estés trabajando en algún tipo de proyecto Python, vas a crear un entorno virtual. Siempre es una buena idea, aunque solo tengas un proyecto en tu computadora, asegúrate de crear un entorno virtual. Y de nuevo, eso es sólo Python dash m, v dot v y v. Y entonces va a ser source dot VN, been activate. O si estás en Windows, va a ser guiones slash, debate, dot bat. Y eso te va a meter. Y luego una vez que estás dentro, simplemente teclea desactivar para salir de él. Adelante y crea un entorno virtual y luego entra dentro de él. Haz algo como pip instalar Django y luego desactivado. Una vez que tienes ese entorno virtual en funcionamiento, has podido entrar en él y salir de él. Perfecto. Pasemos a la siguiente lección donde hablamos una mejor manera de aprender Python usando un nuevo tipo de Python Shell. 21. Cómo aprender Python explorando y utilizando iPython: Echemos un vistazo a cómo podemos aprender Python de una manera más interactiva. Por lo que siempre podemos ir a Python. Y podemos crear algún tipo de objeto y luego golpear punto y luego tabular. Y nos va a mostrar todo tipo de métodos en él. Entonces, por ejemplo, podemos tener una cadena llamada nombre. Vamos a llamar a esto Python 201. Y entonces podríamos hacer nombre punto, golpear tab un par de veces y podemos ver todas las cosas diferentes aquí dentro. Por ejemplo, podríamos capitalizar esto. Ya está capitalizado. Eso no va a hacer nada. Llamado tiro. Termina con podríamos hacer 201 y esto va a volver cierto para mí. Y así podemos ver todas estas cosas diferentes y tampoco tenemos que hacerlo con solo una cuerda. Acabamos de pasar que estamos haciendo con esta cuerda. Podemos hacerlo con una tupla, un diccionario, una lista, prácticamente cualquier tipo de datos que tenga algún tipo de transformación en tus datos, puedes hacerlo con. Entonces, por ejemplo, si quisiera poner esto en palabras, Podríamos hacer nombre punto y entonces ¿dónde estás? Se llama split, ahí mismo. Dividir, nombre dot split y queremos dividirlo en cada espacio. Ahora parece que no hizo nada pero las palabras son ahora una lista. Podemos hacer words.py reversa. Y echemos un vistazo a estas palabras DOD hit tab un par de veces, invierte al final mismo. Revertir. Es al revés. Y ahora podemos unirnos a esto de nuevo juntos. Y entonces podemos volver a armar esto diciendo cursos iguales a un punto de cuerda. Y teníamos aquí arriba en cuerda unir. ¿ Cómo queremos unirnos a estos juntos son qué queremos unir? Más bien, las palabras, ya que estamos diciendo, usan un espacio para unir todas las palabras juntas. Curso. Y ahora acabo de revertir toda la redacción en un curso. Ahora en lugar de decir 201 o en lugar de decir Python 21, dice 201, Python. Y esta es una forma realmente, realmente, realmente poderosa de aprender a codificar. Entonces si aclaro eso otra vez, lo que podemos hacer son palabras. Tengo 201 y Python en sus palabras punto. Vamos a pop que devolvió la palabra Python. Y si hago palabras, sólo tengo esa palabra ahí dentro puedo volver a hacer pop. Me da esa última palabra a uno. Las palabras ahora es una matriz vacía o una lista vacía. Si tienes algún tipo de diccionario, siempre puedes hacer un punto de diccionario. Y luego pulsa tab un par de veces, asegúrate de que sea un diccionario real, así que ten un valor adecuado ahí dentro. Pero entonces podrías hacer tu tabulador de puntos de diccionario o tabulador un par de veces a veces. Y te mostrará todo lo que puedes hacer. Entonces lo que quiero que hagas es que te crees una tupla, hit dot, luego hit tab. Y luego quiero que veas qué tipo de cosas puedes hacer con una tupla. Y luego quiero que hagas lo mismo con una lista, porque las listas y tuplas son casi lo mismo, pero las tuplas no son realmente mutables. Realmente no se puede hacer mucho con una tupla. Y quiero que compares las diferencias. Y luego solo explora, siéntete libre de explorarte, tú. Lo peor que vas a hacer es un poco de daño a tu variable, no a tu computadora, no a tus entornos virtuales. Todo lo demás estará totalmente bien. Simplemente vas a transformar tu variable. Eso es todo lo que vas a hacer. Y esta es una forma muy, muy, muy poderosa de aprender pitón. Django, frasco, realmente cualquier cosa relacionada con Python como wag till CMS, cualquier cosa realmente. Vas a poder hacerlo. Vas a poder aprenderlo mucho más rápido de esta manera. Y eso se debe a que simplemente un curso no debe repasar cada uno de los ítems de aquí. Por ejemplo, nombre punto. No te voy a enseñar el formato de mapa o es numérico, o es imprimible o partición o nada por el estilo porque solo hay demasiadas opciones. Lo mismo con una lista. Hay muchas opciones y ahora eres esto no suena a muchas opciones, pero imagina lo que puedes hacer con un mapeo de diccionario, lo que puedes hacer como clase, imagina lo que puedes hacer con una tupla o un set, y tener que pasar por todos esos uno por uno es honestamente es doloroso que veas. También es doloroso para mí enseñar. Y francamente, no vas a usar la mayoría de ellos. Entonces, cada vez que veas algún código en la naturaleza, tú, digamos que estás trabajando con el desarrollador senior y un desarrollador senior tiene algún código realmente elegante y estás como, whoa, ¿qué hace Words dot extender? Bueno, ahora sabes que puedes ir a experimentar con words.txt o list.append más bien. Ahora esta es una forma de usar tu shell y eso es simplemente escribir Python que te mete en su Otra forma es que puedes usar IPython y yo realmente, realmente me gusta IPython, Así que hago pip instalar IPython clear, y en lugar de escribir Python, Simplemente escribo IPython. Y puedes ver que es un poco más agradable en Tu nombre es igual a k lóbulo, alto, magra. Nombre punto, hit tab un par de veces. Y ahora realmente podemos movernos a través de estos y me lo escribe. Puedes copiar y pegar mucho más fácilmente aquí también. Podrías hacer múltiples líneas, puedes hacer todo tipo de cosas. Y esta es una forma aún mejor de explorar porque es un poco más interactiva. Es más fácil ser como, oh, lo que es zed fill toma exactamente un argumento, 0 nos dan, vamos a llenarlo con uno. Veamos qué pasa. String no se puede interpretar como un entero. ¿De acuerdo? Enfriar, no tengo idea de lo que hace zed fill. Voy a explorar eso después de que este video esté envuelto. Tan divertido, divertido. Así aprendemos. Y así es como puedes aprender por tu cuenta para que no necesites tomar otro curso de Python u otro curso de desarrollo web de pila completa o ver otro tutorial de una hora de duración en zed fill. Puedes explorarlo tú mismo y luego averiguar de qué necesitas aprender de ahí. Por lo que estás maximizando tu tiempo haciendo tu propia exploración y obteniendo tu propia experiencia. En la siguiente lección, sigamos adelante y hablemos de paquetes. 22. Introducción a los paquetes de Python: Hablemos ahora de paquetes. De acuerdo, entonces tenemos esta idea de un paquete y hemos lidiado un poco con esto. Hicimos pip instalar IPython. No es así como se deletrea python, IPython. Hicimos pip instalar Django. Hemos estado en un puntiagudo proxenetismo pip instalar ColorRamp, y vamos a hacer instalación de pip llamada Rama de nuevo. Pero primero vamos a meternos en nuestro entorno virtual. Entonces si no tienes un Python dash M, ven van Gogh, Coca-Cola, fuente, bin activar. Ahora estoy dentro de mi entorno virtual. Ahora puedo hacer pip instalar ColorRAMP. Y sé que el color Rama es un paquete que podemos usar y se va a ir a instalarlo. Enfriar, fresco, fresco. Dice instalado con éxito color Emma, 0.4. punto. Por ahora, vamos a echar un vistazo a alguna de la documentación, su color Rama on pi pi. Y aquí es donde puedes encontrar cualquier tipo de paquete pi, pi.org. Se puede buscar cualquier cosa. Entonces, por ejemplo, si quisiera paquetes wag tail, podría encontrar diferentes maneras de contar paquetes aquí. Si querías encontrar Paquetes Django, literalmente solo escribes Django y encontrarás todo tipo de paquetes de Django para ti. Y tú eres, el que voy a usar es color Rama, color M0, 0.4.4. Y nos dice cómo instalarlo. Eso es genial. Ahora, ¿cómo lo usamos realmente? Y nos dice en sus aplicaciones debe inicializar color Emma usando color Rama import init y luego, y luego realmente instanciar ese init. De acuerdo, así que sigamos adelante y hagamos eso. Así que vamos a entrar en una tuerca de cáscara de Python normal, una cáscara de IPython, solo un shell de Python normal. Y en realidad lo que voy a hacer es que voy a cambiar de opinión en eso. En lugar de usar shell Python regular, lo que voy a hacer es usar IPython porque lo instalamos, bien podría usarlo desde ColorRamp, llamar a RAM baja, importar init. Y entonces queríamos correr init. Está bien, genial. Parece que no hizo nada pero estaban siguiendo las instrucciones hasta ahora. ¿ Cómo se obtiene la salida coloreada? Entonces sigamos adelante y hagamos, honestamente solo copiemos y peguemos esto. Copiar todo eso. Pega todo el asunto ahí dentro, y mira eso. Tenemos algo de texto rojo. Tenemos texto con lo que presumiblemente fuera de IPython habría sido un fondo verde, algunos textos atenuantes y texto normal aquí. Entonces todo lo que hicimos aquí fue decir importación. Para estilo backend. Dijimos que en primer plano se va a leer. El fondo aquí va a ser verde con algún texto verde. Entonces estilo Dim, Dim ese texto. Estilo, restablece todo y vuelve a la normalidad. Eso es todo lo que hicimos. Y así para usar un paquete, realmente solo hacemos pip instalar el nombre del paquete a partir de ese nombre del paquete, importar algo. Ahora no sabemos qué exactamente podemos importar. Y por eso es tan importante leer la documentación. Y nos dice todo tipo de cosas que podemos hacer aquí. Ahora bien, este es un ejemplo feo. Entonces sigamos adelante y ejecutemos esto en nuestro Python Shell normal. Hagamos Python dash v. Estoy usando Python 3.8. También puedes probarlo solo en tu shell normal de Python. Probablemente va a salir mejor en tu shell de Python. Pero lo que podemos hacer en su lugar aquí es que podemos hacer para hacer, para hacer, vamos a importar esto. Hagamos de color Emma, colo Rama, importación init. Entonces necesitamos instanciar mentiras en ella. Y sigamos adelante y guardemos esto como paquetes dot py. Y lo haré un poco más corto aquí. Y lo que voy a hacer es mover todas mis importaciones al principio del guión aquí. Y en realidad podemos incluso fusionar esos juntos. Y podemos decir desde ColorRamp se importa init para el estilo backend. Vamos a seguir adelante y ejecutar esto ahora para que guarde, y vamos a ejecutar esto en Python. Y ahí vamos. Dice algo de texto rojo. Y con un fondo verde, eso en realidad es un fondo verde súper claro. A lo mejor IPython tenía razón y simplemente no puedo ver del todo que es súper tenue. Estamos guardando el texto rojo tenue con un fondo verde. Entonces lo estamos restableciendo a la normalidad. Y estamos ejecutando todo esto dentro de nuestros paquetes dot py script. Y entonces eso es realmente todo lo que hay a un paquete. Recuerda todo lo que tienes que hacer es pip instalar el nombre del paquete. Y luego lo hacemos desde nombre del paquete, importación, cosa uno, cosa, dos cosas. Y nos limitamos a seguir la documentación. Y la clave aquí es realmente seguir la documentación. Incluso en pi-pi aquí, típicamente ni siquiera sigo la documentación de pi pi. Normalmente voy directo a github, github, github, git hub. Y esto me va a decir, creo que esto es exactamente lo mismo, tan genial. Pero también me dice otras cosas como las constantes de formato disponibles son para el primer plano. Negro, rojo, verde, amarillo, azul, magenta, peso cian, reset, fondo, misma cosa. Estilo. Podemos atenuar, normal brillante o podemos restablecer todo. Entonces lo que me gustaría que hicieras es pip install ColorRAMP. Ir a esta página de ColorRamp GitHub. Lee la documentación, asegúrate de importar color Emma e importar init del color Emma. Ejecuta init y luego básicamente solo copia y pega esto. Eso es lo que hice. Y solo diviértete un poco con él. Porque ahora puedes hacer que tu terminal luzca siguiente n colorido, Lo cual es increíble porque los terminales son notoriamente aburridos. Ahora vas a estar usando paquetes todo el tiempo, sin parar. Todos los días. Vas a estar importando cosas todos los días. Por lo que es importante que sepas usar paquetes. Adelante y prueba eso y cuando estés listo, pasemos a la siguiente lección donde hacemos un poco de API solicita refresco antes de nuestro proyecto final. 23. Una breve API de petición de: Muy bien, bienvenido a la API solicita lección de actualización. Lo que vamos a hacer aquí es solo un rápido refresco en las solicitudes de API. Entonces si abro haciendo JSON API request dot pi, sigamos adelante y echemos un vistazo a lo que originalmente escribimos. Y así no vamos a hacer ninguna codificación en este video. Simplemente vamos a repasar cómo funciona esto. Por lo que solicita como paquete, lo importamos y al igual que en el último video donde importamos ColorRamp, importamos solicitudes. Y con eso vino un objeto o un método llamado get hasta que hagamos nuestro EQ, esto podría ser cualquier cosa Es igual a solicitar dot get, y luego algún tipo de URL. Y eso sólo va a buscar esos datos para nosotros. Entonces si esos datos son JSON, simplemente vamos a decir que la solicitud objeto dot lee el JSON. Y lo que eso hace es convertir ese JSON en un diccionario de Python, que podemos usar más adelante. Entonces en este ejemplo que estábamos usando, creo que esto era C3PO, y esto ahora es un diccionario y podemos imprimir nombre de persona porque nombre es una propiedad o una clave en el diccionario de persona, año de nacimiento también estaba disponible. Entonces ponemos año de nacimiento de persona al igual termina un diccionario estándar porque esto viene como JSON, que técnicamente es solo una cadena, pero está formateada de cierta manera y Python reconoció eso y lo convierte en un diccionario. También dijimos por cada película en la que estaba esta persona, por cada película C3PO fue él hacer una nueva petición a esa película. Entonces esta fue una lista de películas. Y así esto va a pasar por cada uno de ellos. Creo que había como siete de ellos o algo así. Por lo que los datos aún no se llenaron del todo. Pero entonces dijimos, por cada película, adelante y conseguir ese relleno. Entonces dijimos sobrescribir eso en cada iteración, por lo que sobrescribir película. Y porque sabemos que va a ser JSON, transformar ese JSON en un diccionario llamado película. Y luego dijimos que la película es y luego el título. Y conseguimos todo eso de intercambio de dot dev. Ahora en nuestro proyecto final, no vamos a estar usando swapping dot. Vamos a estar usando pokey api dot co. Entonces es muy, muy similar, pero en cambio vamos a usar algo con un poco más de información. Y así se puede ver que esto como un montón de diccionarios diferentes aquí. Entonces la habilidad es un diccionario, pero esto tiene una lista de habilidades aquí. Entonces esta es una lista y esto es solo un par de valor clave estándar. Entonces vamos a estar trabajando con un poco de un más, supongo una API avanzada. Pero vamos a estar usando las cosas de una manera simple, sencilla porque Python mantiene las cosas simples. Entonces para este video, en lugar de hacer cualquier codificación, lo que me gustaría que hicieras es ir a pokey api dot SEO y simplemente leer a través de él, experimentar con él, dar click alrededor. Trató de romper las cosas aunque no estés familiarizado con Pokemon, está totalmente bien. Simplemente podemos usar algunos ejemplos de base de lo que nos proporcionan. Porque en su proyecto final, lo que vamos a estar haciendo es usar esta API y vamos a estar buscando un montón de información diferente. Así que adelante y familiarízate un poco con la API pokey. No sientas que tengas que escribir ningún código. Vamos a hacer esto como nuestro proyecto final. El código parte va a ser nuestro proyecto final. Cuando estés listo para ese proyecto final y tal vez aparta como media hora para ver el video y trabajar en el proyecto. Pero una vez que tengas ese tiempo a un lado, pasemos a la siguiente lección, la lección final, donde creamos una aplicación de personajes Pokemon. 24. TU PROYECTO: Echemos un vistazo a nuestro proyecto final, o el proyecto final va a estar creando una aplicación de personajes Pokemon. Entonces en esto, lo que me gustaría que hicieras es, vamos a escribir aquí algunas instrucciones. De lo que quiero que pidas la entrada del usuario. Entonces, por ejemplo, pide un Pokemon, que Pokemon o vamos a hablar eso podría ser como ditto, por ejemplo. Entonces vas a necesitar crear una cadena API en ABI URL. Mucho como esto donde dice, podemos ir directamente aquí y nos da toda la información. Simplemente vamos a tomar esa URL, pero vamos a cambiar ditto por lo que sea que el usuario ingrese. Por lo que el paso dos se va a crear una URL dinámica basada en el paso uno. Número tres es que necesitamos entonces recuperar esos datos usando solicitudes. Por lo que el paso tres es buscar los datos de la URL. En el paso dos, el paso cuatro se va a imprimir el JSON y los datos. Pero como es JSON, realidad no podemos imprimirlo. Tenemos que convertirlo. Por lo que el paso cuatro va a ser convertir JSON a un diccionario. paso cinco entonces se va a imprimir algunos datos de Pokemon. Por lo que imprime datos de Pokemon. Y ese dato Va a venir de, por ejemplo aquí. Por lo que tiene habilidades, tiene formas como base de índices de juego experimentados, una altura sostenida artículos, mueve ID tiene todo tipo de cosas aquí. Entonces les voy a dejar eso a ustedes a lo que quieran exhibir. Por lo que ahora te he recorrido básicamente los pasos exactos que necesitas para crear alguna forma de programa Python que pueda aceptar un Pokemon como cadena. Y luego puedes ir a buscar esos datos de una API y mostrarlos en tu terminal. Lo que voy a hacer aquí es que voy a guardar esto como proyecto dot py. Comente esto fuera. Y luego te voy a mostrar cómo voy a hacer este proyecto exacto. Pero quiero que le den a esto una toma, justa, así que por favor háganme un sólido aquí y solo paren el video y prueben esto por su cuenta. Siéntete libre de volver a referir estas instrucciones, pero prueba esto por tu cuenta. Trata de hacer sudar tu cerebro. Intentó aprovechar lo que ya aprendiste en este curso sin tener que ver el resto de este video. Ahora, nuestras soluciones garantizadas van a ser muy diferentes. Y eso está bien. Hay un millón de maneras diferentes de hacer lo mismo en la programación. Si escribo esto versus mi mentor escribiendo esto, vamos a conseguir código diferente de todos modos. Y tu código va a verse diferente al mío, pero ese no es el punto. El punto es, le das una oportunidad a esto para probar esto a lo mejor de tus habilidades. Ahora si te atascas, está bien. Si te quedas atascado, simplemente puedes reanudar el video y puedes ver exactamente cómo lo hago. Entonces voy a desvanecerme y a desvanecerme y a desvanecerme. Quiero que pausas el video y pruebes esto. Buena suerte. No olvides divertirte un poco con esto. Este es un caso de uso realmente bueno de Python y API. Vas a necesitar esto en desarrollo web y todo tipo de cosas pitónicas por el camino. De acuerdo, sigamos adelante y terminemos este proyecto, o supongo que empecemos el proyecto y luego lo terminaremos. Entonces lo primero es lo primero, paso número uno, tenemos que pedirle entrada al usuario. Entonces vamos a decir el Pokemon, Pokemon es igual a entrada. ¿ Qué Pokemon quieres encontrar? Y entonces vamos a decir que Pokemon es igual a Pokemon punto más bajo. Y sabemos que tenemos que hacer punto más bajo y reasignar esto porque las cuerdas no son mutables. Tenemos que básicamente tomar ese valor de Pokemon, cualquiera que sea el precio del usuario, bajarlo, y luego meterlo de nuevo en otra pieza de memoria llamada Pokemon simplemente pasa a ser el mismo nombre aquí. Entonces ahí es donde entra la mutabilidad versus la inmutabilidad. Entonces necesitamos crear una URL dinámica basada en el paso uno para que URL vaya a ser esta URL aquí mismo. Copiar, tirar eso en una cadena, pero no siempre van a ser datos. Tenemos que cambiar eso. Entonces cambiemos eso a pokemon. Y hagamos de eso una cuerda f. Entonces ese es el paso dos. paso tres es buscar los datos de la URL en el paso dos. Por lo que podemos decir que REQ es igual a solicitar punto obtener la URL. Y de qué utilizamos solicitud, tenemos que luego importar solicitudes, solicitar. Y eso en realidad es plural. Se supone que son solicitudes, así que usamos solicitudes dot get, luego la URL. Y ese es el paso tres. paso cuatro es convertir los datos a un diccionario. Entonces podemos bajar aquí y podemos decir que los datos van a ser lo que sea esa solicitud. Json, sabemos que viene en forma JSON para que podamos usar dot JSON en él. Ese es el paso cuatro. paso cinco es imprimir datos de Pokemon. Entonces, ¿qué queremos imprimir? Imprimamos el nombre que encontramos. Por lo que podemos decir nombre de impresión es tab, tab. Y luego cualquiera que sea ese nombre va a ser nombre de datos. Y si te preguntas de dónde saqué nombre, los datos ahora son un diccionario. O al menos en teoría, es un diccionario. Y el nombre viene de este pequeño hombrecito de ahí. Hagamos esto más grande ahí mismo. Y veamos quizá qué tipo de habilidades tiene. Entonces esta es una lista. Podemos ver que es una lista y tiene una lista de diccionarios en ella. Entonces sigamos adelante y veamos las habilidades. Entonces podemos decir que las habilidades de impresión van a ser algo que aún no conocemos. Y sólo pasemos por esas cuatro habilidades en los datos. Habilidades, podemos recorrer esto porque sabemos que esta es una lista. Y así esta primera habilidad va a ser más ligera y la segunda habilidad va a ser impostor. Entonces podemos decir capacidad de impresión. Y este también es un diccionario. Por lo que para cada elemento de esta lista va a ser un diccionario. Y luego tenemos una llamada habilidad, que también es una habilidad de diccionario. Y entonces queremos ese nombre. Y vamos a seguir adelante y darle una oportunidad a esto. Veamos qué sucede cuando ejecutamos proyecto python. Ni siquiera sé si tengo tipografía. Ni siquiera he buscado tipografía. ¿ Qué Pokemon quiero encontrar? Busquemos ditto. Tiene cuerpo e impostor en ellos. Fresco, tranquilo, fresco. Está bien. ¿Qué otro Pokemon saber realmente? Y char es ARD. Sus habilidades son, y vamos a mover esto hacia arriba. Encontré chars art, sus capacidades son blase y energía solar. Enfriar. Si quisiéramos obtener más información, en realidad podríamos conseguir esa URL y hacer una solicitud allí también. Y podemos ver qué tipo de habilidad tiene. Y tiene diferentes configuraciones de idioma. ¿ Qué tan guay es eso? Hemos tenido un idioma inglés. El primero es un idioma alemán entradas de texto sabor. Ni siquiera sé qué es eso. Eso está más allá de mi conocimiento de Pokemon. Pero de todos modos, podemos, si quisiéramos agarrar esa URL para más detalles sobre lo que realmente va a hacer esa habilidad en particular. Entonces en este punto estamos prácticamente hechos. Eso es todo lo que tenemos que hacer. Pero, ¿qué pasa si escribes un Pokemon que no existe? Como, como, como, como, como, como, como. Oh, no, tenemos un problema. Y esto es interesante porque ¿dónde estamos aquí? Decodificador Json, decodificación JSON o error línea de valor esperado una columna uno llevar. Básicamente está diciendo que el JSON no está formateado correctamente. Entonces lo que podemos hacer aquí es que podemos envolver todo esto en una declaración if. Si el código de estado req dot es igual a 200, eso significa que estamos obteniendo un código de estado saludable. Podemos tomar todas estas cosas, hacer que sólo un diminuto estén ahí y fuera abollar eso. De lo contrario. No pudimos imprimir Pokemon no encontrado. Y así ahora estamos lidiando con códigos de estado adecuados aquí. Adelante e intentemos esto otra vez. Envía un montón de chatarra ahí dentro. Dice Pokemon no encontrado. Y así se apagó y se fue a donde sea que esté. Eso no es un Pokemon al parecer. Y así no se encontró Pokemon. Vamos a asegurarnos de que el código de estado en realidad se supone que sea 200 porque a veces es para, a uno. ¿ Quién sabe qué Pokemon quiero encontrar? ¿ Dolor de bullosa? Y mira eso, eso volvió muy rápido. Nombre es bulboso o habilidades sobrecrecimiento y clorofila. Genial, genial. Ahora eso es realmente todo lo que hay a este proyecto. Ahora si quieres dar este paso más allá, lo que puedes hacer es que esto siempre pida más entrada de usuario. Entonces, de hecho, hagamos eso. Siempre vamos a pedir más UserInput. Entonces lo que vamos a hacer aquí es que vamos a envolver esto en un bucle. Vamos a decir mientras algo es cierto, pon todo eso dentro de este bucle salvaje. Y siempre va a pedir un Pokemon. Siempre va a hacer una petición. Y luego cuando esté hecho, va a pedir otro Pokemon. Y eso es literalmente todo lo que tenemos que hacer para que esto sea una herramienta permanente o adecuada de búsqueda de Pokemon. Entonces sigamos adelante y tecleemos proyecto python en pi. Miremos hacia arriba ditto. De acuerdo, encontrado ditto. ¿ Qué pasa con Char? ¿Melian? Enfriar. ¿ Qué pasa con uno que no existe, no existe para hablar mi no encontrado. Y simplemente sigue preguntando una y otra vez. Y si alguna vez quiero renunciar, siempre puedo simplemente hacer el control C. Y eso me saca de ese bucle while. Entonces ahora tenemos un programa que va a preguntar constantemente qué Pokemon ¿Quieres encontrar? Esta es una gran manera si alguna vez quisieras construir una aplicación por el camino como una aplicación de búsqueda de Pokemon o una aplicación de información de Pokemon. Esto es exactamente lo que harías usando Python. Entonces esa fue mi solución a este proyecto en particular. Tu solución podría ser un poco diferente. Tu solución podría ser un poco más simple o podría ser un poco más compleja. Eso depende completamente de ti. Lo que quiero que hagas si no has hecho esto es que quiero que ahora pruebes esto por tu cuenta. No hagas referencia a mi código para probarlo por tu cuenta y solo mira hasta dónde puedes llegar. Hacer sudar tus cerebros es importante para hacer sudar tu cerebro. Se supone que se siente como un poco de lucha. Y si te quedas realmente, realmente atascado en años, como yo simplemente no sé qué hacer tampoco consulta Google porque honestamente la mitad de la programación en estos días es solo cosas en Google. Y si tu propia investigación no te lleva a ninguna parte, entonces haz referencia a este código. Y eso es como que te va a alejar de ser tutorial dependiente del Lago. Este video es, este video es de estilo muy tutorial y va a una especie de moverte al reino de averiguar cómo resolver tus propios problemas. Lo cual es realmente, realmente, muy importante porque la codificación se trata de resolver problemas por tu cuenta. Y no siempre vas a tener un maestro, así que necesitas poder hacer esto por tu cuenta. Espero que esto haya sido agradable para ti. Espero que este fuera un pequeño proyecto divertido usando API y, y todas estas cosas buenas usamos mucho aquí. Utilizamos un bucle while, usamos un paquete. Utilizamos la entrada más baja por lo que la mutabilidad versus la inmutabilidad. Y F String, utilizamos una solicitud API. Verificamos el código de estado, por lo que condicionado. Convertimos el código en un diccionario de JSON. Después imprimimos con pestañas usando más Cuerdas F. Después recorremos cada habilidad y obtuvimos el nombre de habilidad. Un poco cool. Entonces eso fue bonito y corto. Ese fue en realidad un proyecto pequeño bastante divertido. Adelante y prueba eso si no lo has hecho. último, pero no menos importante, quiero decir gracias por tomar este curso conmigo, su maestro, Caleb peaje. Esto ha sido muy divertido. Estoy muy orgulloso de lo lejos que has llegado. No lo olvides. Escribir código es todo acerca de la práctica. Simplemente practicar, practicar, practicar, simplemente escribir código, resolver más problemas, escribir código resolviendo más problemas. Eso es todo lo que es. y otra vez. Una vez más, sé que hay muchos cursos diferentes de Python por ahí, pero elegiste los míos. Y de verdad, de verdad aprecio eso. Entonces gracias por darme de todas las personas un poco de tiempo de tu vida. Realmente aprecio eso y espero que llegues a construir algunas cosas realmente geniales en Python en el futuro. 25. Python 201: resumen: De acuerdo, ya terminaste todo este curso. Eso es increíble. En primer lugar, acariciate en la espalda. Hiciste un gran trabajo. Estoy súper, súper orgulloso de ti. Yo he sido Caleb italiano. Puedes encontrarme en Twitter en Caleb Tolkien, o si quieres pequeños consejos de codificación y trucos o actualizaciones todos mis cursos, siempre puedes ir a Instagram.com slash coding dot for dot all. Muchos consejos de codificación ahí, montones de actualizaciones de curso, si quieres, la forma en que enseño, por lo general es donde ahora sus nuevos cursos y cosas así. Si en cualquier momento estás como, oh, ya lo sabes una comunidad de codificación, estaría bien porque francamente, codificación puede ser un poco solitaria. Siempre puedes entrar en ti aprendiendo a codificar en Facebook. Ahí hay 62 o 65 mil integrantes al momento de esta grabación. Y está creciendo por cientos de miembros cada día. Y puedes hacer literalmente cualquier tipo de pregunta de desarrollo web. Es un grupo bien arreglado. Nos aseguramos de que no haya spam ahí en absoluto. Nosotros tomamos mucho cuidado en ese grupo. Yo y un moderador. Pasamos varias horas todos los días asegurándonos de que ese grupo esté bien cuidado y tenga el mayor valor para ti. Por lo que siempre puedes unirte a aprender a codificar en facebook.com de forma gratuita. Gracias de nuevo por tomar este curso. Una última vez mi nombre ha sido Caleb diciéndole que estoy súper orgullosa de ti por cierto. Y espero verte en el grupo aprendiendo a codificar en otro curso mío, o tal vez algún día llego a trabajar contigo. Feliz codificación.