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