Transcripciones
1. INTRODUCCIÓN: Hola y bienvenidos.
Mi nombre es Andreas, y seré tu instructor
para este curso de Python. Soy ingeniero en computación y he sido profesor por
más de 20 años. Tengo mi escuela de
aprendizaje de computación, y enseño
programación Python a decenas de miles de
estudiantes felices como tú. Y estoy muy emocionada de ser tu
instructor en este curso. Python es absolutamente el lenguaje de
programación de
más rápido crecimiento en la escalada a los tres
mejores idiomas para aprender para el futuro. Python es uno de
los lenguajes de
programación más versátiles. Puedes usarlo para cualquier cosa como aprendizaje
automático, desarrollo
web, aplicaciones, automatización, desarrollo de
juegos y mucho más. En este curso, recibirás una
explicación detallada y exhaustiva de los conceptos
fundamentales de programación Python. Y voy a hacer que
el proceso de aprendizaje sea
tan fácil y memorable, ni siquiera
necesitarás
tomar notas. Vas a aprender haciendo y construyendo muchos proyectos. En el camino, también tienes proyectos
hitos que
te ayudan a crear programas
y juegos en pleno
funcionamiento que podrás
presumir ante tus compañeros. Contamos con más de 100
conferencias de diez ADP, videos
explicativos de
alta calidad y diapositivas
completamente detalladas que
acompañan a cada conferencia Entonces, si eres completamente nuevo programación o nuevo
en el lenguaje Python, has venido
al lugar perfecto. Entonces, con todo eso en mente,
¿a qué esperas? Adelante y haz clic en
ese botón de firma, y te
veré del otro lado.
2. ¿Por qué aprender Python?: Hola, y bienvenidos al
apasionante mundo de la programación. En esta conferencia, haremos un breve resumen
de qué es Python, por qué elegir Python para programación y qué
puedes hacer con Python. Python fue creada en
1990 por Guido Van Rosam. Fue diseñado específicamente como un lenguaje de
programación fácil de usar. El
lenguaje de programación Python lleva
el nombre del grupo de comedia llamado Monty
Python, no el reptil Cuando decimos programación, queremos decir que
ingresamos instrucciones para que la computadora realice. Python es un lenguaje de programación de alto
nivel ampliamente utilizado. Por supuesto, muchos lenguajes de
programación de alto nivel están disponibles, como C, C
plus y Java. Pero si eres nuevo en
la programación, Python es un gran
lugar para comenzar. Veamos algunas
razones por las que aprender Python. Número uno, Python es
más sencillo que otros lenguajes de programación
e ideal para principiantes. La mayoría de los programas requieren
considerablemente menos líneas de código para realizar la misma tarea en comparación con otros idiomas. Dos, Python es un lenguaje
eficiente. La sintaxis de Python
le ayuda a escribir código limpio, fácil de leer, fácil de depurar y fácil de extender
y construir sobre. Tres, Python tiene una
amplia gama de uso. Puedes hacer juegos,
crear aplicaciones web y resolver problemas de negocio. Python también se usa mucho en los campos científicos
para la investigación académica. Cuatro, Python tiene
una gran cantidad de herramientas de terceros como
Pinstaller que nos permite empaquetar nuestro código Python en programas ejecutables
independientes para sistemas
operativos como
Windows y macOS Cinco, Python tiene una
gran comunidad. Tener una comunidad solidaria es fundamental para resolver problemas, especialmente en tus primeros pasos de
programación. Estas son las cinco
razones
más importantes por las que elegimos y aprendemos Python. Si te convencí, es momento de empezar.
Gracias por mirar.
3. Cinco (5) consejos para principiantes para aprender la programación de python: Bienvenidos de vuelta a todos. En este video, te daré cinco consejos para principiantes para
aprender programación Python. Vas a ver
cómo codificar todos los días, cómo escribirlo puede
ayudar a ir descansos interactivos, hablar, y
hacer buenas preguntas. Empecemos por
mirar la codificación todos los días. Poco adentro a menudo es
mejor que un trozo grande a la semana. Si solo tuvieras una
hora a la semana, desesperación estarías mucho mejor
gastando diez minutos en seis días de la semana
y teniendo un día libre que hacer
una hora un día de la semana y
tener seis días libres. Dejar mucho tiempo antes practicar cualquier nueva habilidad
puede significar que se
perderá para ti y
terminarás teniendo que
recuperar el mismo terreno
una y otra vez. Mientras que cubrirlo todos los días durante una semana te
ayudará a mantenerlo mucho mejor y luego brechas más largas después no serán
tanto de un problema. También siendo realista
sobre el tiempo que
tienes para esto,
Todos son diferentes. Algunas personas pueden pasar mucho tiempo y podremos
avanzar
más que alguien que solo tiene una hora o dos para ahorrar una semana. Así que ser realista al respecto, recuerda, no se trata compararte con otras personas. Se trata de compararte
con donde empezaste. Empieza por resolver pequeños problemas cuando empieces a programar, luego adquirirás
habilidades y aprenderás nuevas áreas de Python que
no conocías antes. Y te puede dar una gran
confianza en poder
abordar problemas más difíciles más abajo de la línea. Escríbalo. Escribir notas te
ayuda a conservar la información
mejor que cualquier otro método. Sí, las notas manuscritas
realmente ayudan cuando la información pasa
a través de ti como la has leído y luego la reescribes
con tus propias palabras, tu cerebro lo toma en un
método que entiendes, y esto es la parte más
importante del aprendizaje. Habrá diferentes áreas en las que debes
concentrarte, hacer notas en comparación con alguien
a tu lado. También planear programas con notas
escritas puede ayudar a
que la solución sea más clara. Nuevamente, aquí, descubrí que
escribir las cosas a mano es mucho más útil
y mucho más inmediato que
hacerlo en una computadora. Para los problemas complicados,
más grandes, que necesitarían
mucha documentación. Te gustaría
hacer esto en línea en un método que se pueda
actualizar más adelante. Cuando inicialmente estás
planeando esto, escribir el tipo de datos y variables que vas
a necesitar puede ser realmente, realmente importante
e instructivo. A menudo es más fácil crear representaciones
visuales
cuando se trabaja con papel y lápiz. Y para muchos problemas, esta es una forma útil de
abordarlos. Ir interactivo. El shell de Python
es una gran manera de
examinar y crear
código al instante. Es rápido y fácil
desarrollar código en el shell de Python, pero también puedes
usarlo para descubrir y explorar los métodos que
están disponibles para ti. Abre el shell de Python, y ahora puedes usar
esto en acción. Toma descansos. Tomar descansos como una parte increíblemente importante del aprendizaje. Una de las técnicas más
estudiadas
utilizadas por las
personas que están aprendiendo en Internet es la Técnica Pomodoro. Ahora esto en realidad
sólo lleva
el nombre del temporizador de forma de tomate que usó
la persona que lo inventó. Pero consiste simplemente en
establecer un temporizador de 25 minutos para que funcione y luego tomar un descanso de cinco minutos
y luego repetir. Hay mucha evidencia para ilustrar que nuestro cerebro solo tiene un
tiempo finito de Lauren y necesita descansos. Tu cerebro necesita tiempo para tomar información y
también necesita un descanso. Yo sugeriría encarecidamente
que sí tomes un verdadero descanso. Le dará a tu cerebro la oportunidad
de reiniciarte. Y a menudo encontrarás
que las ideas vendrán a ti cuando estés
en estado de reposo. El sueño también es realmente importante
para la formación de la memoria. Mucha investigación
ha demostrado que
una buena noche de sueño
después de un día de aprendizaje realmente ayuda a cementar
esa información y encerrarla en la memoria
a largo plazo. Tu cerebro
trabajará en ello y se
refrescará
durante ese descanso. Cuando vuelvas a ella, muchos serán el
momento en que
verás algo que simplemente no habías pensado
y lejos te vas. Haz buenas preguntas. En muchos puntos de tu carrera de
programación, vas
a necesitar pedir ayuda. Y a menudo eso puede venir
en forma de hacer preguntas en sitios
como Stack Overflow. Al hacerlo, es realmente importante que
hagas preguntas de
la manera correcta para que la gente
pueda ayudarte sin duplicar el tipo de pruebas
que ya has hecho, eso les puede dar una buena
idea de lo que ya has hecho y lo que
pretendes hacer el programa. En primer lugar, la g del bien, dan contexto a lo
que estás tratando de hacer. Describiendo claramente el problema. Aquí a la izquierda,
podemos ver un mal ejemplo. Simplemente dice que no se puede
imprimir correctamente. En tanto que a la derecha
tenemos un buen ejemplo. Estoy tratando de usar una cadena f con formato y combinada con variable para dar seis
dígitos totales y un decimal. Pero no encuentro
la sintaxis correcta. El de la izquierda puede
ser cualquier cosa, desde imprimir en una impresora hasta usar
la declaración de impresión. Considerando que el de la
derecha es realmente claro. Sabemos exactamente dónde estamos
y cuál es el problema. Esboza las cosas que ya
has hecho para tratar de solucionar el problema. De nuevo, se ve esto con bastante frecuencia. Probé todo a la izquierda. Eso no es realmente útil. Es poco probable que en realidad hayas
intentado todas las posibilidades. la derecha, se puede ver
que el usuario se prueba las diferentes
variaciones incluyendo un formato de punto de estilo extraño, pero nada ha funcionado para ellas. A continuación, ofreciendo la mejor conjetura cuanto a cuál podría ser el problema. Esto ayuda a la
persona que te está ayudando no solo a saber lo que
estás pensando, sino también a saber que has hecho algún pensamiento por tu cuenta. No solo te has caído
al primer obstáculo y arrojando el problema
para que alguien más lo haga. A la izquierda,
tenemos un mal ejemplo. No tengo idea de lo que está mal. Y a la derecha, puedo hacer que el formateo funcione usando el formato de estilo
antiguo, pero no puedo ver dónde insertar la nueva variable en un nuevo estilo. Esto es claro y
conciso y
ojalá apunte a cualquiera
que esté tratando de
responder a la pregunta en la
dirección correcta para encontrar a
alguien que sepa realmente bien
cómo usar cadenas f. D significa demo. Demo es lo que está pasando. Incluya el mensaje de
error de rastreo de código o una explicación de
los buenos pasos que has intentado ejecutar
que resultaron en el error. De esta manera, la
persona que ayuda
no tiene que intentar
recrear el tema, incluyendo todo el código que es relevante es realmente importante. Se ve muy a menudo donde la gente puede ayudar porque no
quieren pasar media hora
tratando de resolver lo que
alguien ha hecho. Quieren poder
copiar el código, intentar ejecutarlo ellos mismos, o tal vez simplemente intentar
mirar el código. Allí podrá decirle a la persona
correcta lo que está mal. Aquí a la izquierda,
el mal ejemplo, no hay código en absoluto. A la derecha. Un buen ejemplo. Se ha establecido la variable. Están usando el formato de
estilo antiguo y dice que esto funciona, pero no es una cadena f. Esto debería dar una buena
respuesta con bastante rapidez. Muy a menudo cuando
juntas toda la información para hacerle la
pregunta a alguien más, la respuesta se hará evidente
para ti porque pones toda la información de una manera
que no has visto antes, nuevas ideas pueden venir a ti. Como resultado de eso, es
posible que te des cuenta de que hay
algo que no has probado o puede haber algo que
no intentaste de inmediato. Gracias por ver, y te
veré en la
siguiente conferencia.
4. INTRODUCCIÓN: descarga e instala Python 3 (2024): Hola a todos, y bienvenidos a configurar la sección Python. Mi nombre es Andreas, y
voy a ser tu guía. En esta sección,
aprenderás a descargar e instalar Python en tres de los sistemas
operativos más populares Windows, macOS y Ubuntu Linux. También
aprenderás a operar inactivo, entorno integrado de desarrollo
y aprendizaje de
Python. Establecer un Python es el primer paso para convertirse en
programador de Python. Muchos sistemas operativos,
incluidos macOS y Linux, vienen con
Python preinstalado. La versión de Python
que viene con tu sistema operativo se
llama System Python. El sistema Python es utilizado por su sistema operativo y
suele estar desactualizado. Es esencial que tengas la versión más reciente de
Python para que puedas seguir con
éxito junto con todos los ejemplos de
este curso. Importante. No intente desinstalar
el sistema Python. Los tres sistemas operativos cubiertos en este
curso son algunos de los sistemas
operativos más populares para computadoras personales. Pero si solo tienes acceso
a algo así como un Android. Así que comencemos configurando Python
en tu computadora. Te veré en la siguiente lección.
5. Descarga e instala Python 3 (Windows): En este video,
aprenderás a configurar Python en Windows. Aprenderás dónde
descargar Python, cómo instalar Python y cómo abrir el entorno integrado de
desarrollo y
aprendizaje también conocido como Idle. Hay dos formas de
descargar Python en Windows. Uno es a través de la distribución oficial de
Python publicada en el sitio web python.org El segundo es a través de
la Appstore de Windows. La
versión de Python para Windows App Store es excelente para estudiantes
y fines educativos, pero tiene algunas limitaciones que la
distribución python.org En este curso, descargarás la
distribución oficial de Python de python.org Todo bien. Empecemos abriendo tu navegador de
Internet preferido. Después navega a python.org. En la parte superior del sitio web, en la barra de navegación principal, se encuentra el botón Descargas. Si pasas el cursor sobre él,
verás un botón para descargar la última versión
de Python para Windows Al momento de esta grabación, esa versión es Python 3.12 0.5 Da click en el botón
para descargar Python. Cuando Python termine de
descargarse, puede hacer clic en el archivo EXE en la parte inferior de
su navegador o usar Explorador de
archivos
para navegar a la carpeta Descargas para
abrirlo desde allí. En la primera pantalla
del instalador, puedes ver que estás
instalando Python 3.12 0.5 o cualquier versión que lo
descargues Hay un botón Instalar ahora que instalará
Python así como Idle PIP y la
documentación de Python Hay un botón de
instalación personalizado. Puede elegir la ubicación de
la instalación y seleccionar o anular la
selección de diferentes características Hay una opción para instalar el lanzador para todos los usuarios,
lo cual es recomendable. Y nos mantendremos
registrados en esta sección, así
como una opción para agregar
Python 3.12 0.5 a Path Hablemos un poco
sobre lo que eso significa. Antes de determinar si debes o no agregar
Python a Path, hablemos de qué es path. Path es una
variable de entorno en Windows que indica
a la línea de comandos dónde buscar archivos y carpetas. Ahora bien, si no sabes qué una variable de entorno o la línea de comandos,
está bien. La conclusión clave
es que Path le dice al sistema operativo
dónde
buscar las cosas cuando
emitas comandos. Agregar Python a su
ruta le permite usar el comando
Python en una terminal
para ejecutar programas Python. Otra vez, si esto no
tiene sentido para ti, está bien. Entonces deberías agregar
Python a Paths. Si solo tienes instalada una versión
de Python, entonces puedes agregar
Python a Path de manera segura en ambos casos. Si necesitas varias versiones de Python instaladas
en la misma computadora, entonces es mejor no
agregar Python a Path. En cualquier caso, puede usar
el lanzador de Python para
Windows para ejecutar programas Python en lugar del comando Python. En este curso, usaremos el entorno integrado de desarrollo
y aprendizaje o idol en lugar
del comando Python. En este curso,
se supone que estás instalando Python
por primera vez y solo tenemos una versión de Python instalada
en tu computadora. Aunque no usaremos el comando Python
en este curso, será útil
tenerlo disponible más adelante. Entonces verás Python
instalado con la opción add Python to
Path seleccionada. Volvamos a
la instalación. Si estás instalando Python
por primera vez y solo planeas tener instalada una
versión de Python, entonces sigue adelante y selecciona
Agregar Python 3.12 0.5 a PAT Luego haz clic en Instalar ahora. Si necesitas darle permiso a tu
computadora para realizar cambios en tu dispositivo, entonces sigue adelante y hazlo. A continuación, haga clic. En la mayoría de las computadoras, instalar Python solo
tomará un par de minutos. Una vez que Python termine de instalar, verá una pantalla
que dice que la configuración fue exitosa. Esta pantalla incluye enlaces
al tutorial oficial en línea y a la documentación de Python. Adelante y haz clic en el botón
Cerrar. Todo bien. Entonces ahora tienes instalado
Python, pero ¿cómo accedes a él? En este curso, usaremos entorno integrado de desarrollo
y aprendizaje de
Python o Idle para interactuar con Python. Hay dos formas de abrir Idle. Una es a través del Menú Inicio. El otro es a través de
la barra de búsqueda de Ventana. Para abrir Idle desde
el menú de inicio, haga clic en el
icono Menú Inicio y luego desplácese hacia abajo. O haz clic en todas las Apps hasta que encuentres la carpeta Python 3.12 0.5 Tengo instalada la
versión de Windows 11. Dentro de la carpeta, hay una aplicación
llamada Idle. Haga clic en eso para abrir Idle. Esto abre el shell Idle. En la parte superior de la ventana, puedes ver la versión
de Python ejecutándose así
como cierta información sobre
tu sistema operativo. Debajo de esa información hay
tres corchetes angulares rojos. A estos se les llama un prompt. Siempre que veas
esto, significa que Python está esperando que le
des algunas instrucciones. Ahora, adelante y cierra Idle. Para abrir Idle desde la barra de búsqueda de
Windows, comience escribiendo Idle
en la barra de búsqueda. Debajo de la sección app, verás una opción
para Idle que dice Python 3.12 0.5 64 bit Podría decir 32 bits
si has descargado una versión de 32 bits de
Python para tu sistema. Haga clic en eso para abrir
Idle. Entonces ahí tienes. Ahora ya sabes
dónde descargar Python, cómo instalarlo
y cómo abrir entorno integrado de desarrollo
y aprendizaje de
Python. Si quieres ver cómo
instalar Python en otros sistemas operativos
como macOS y Linux, no dudes en consultar las siguientes
dos lecciones de este curso.
6. Uso de Python Shell 2024: Hola a todos. Este es Andreas, y es un
día emocionante ya que
vamos a escribir nuestro primer
comando en Python. En esta conferencia,
aprenderemos a usar el programa Idle que viene liado con nuestro intérprete de
Python Estaremos escribiendo nuestro código
usando el programa Idle, así que primero vamos a lanzarlo. Puedes buscarlo
escribiendo Idle en el cuadro de búsqueda. Una vez que se encuentre,
haga clic en el ídolo o la GUI de Python para lanzarlo. El shell Python
aparece en nuestra pantalla. Un shell es un programa que
permite escribir instrucciones
en la computadora, igual que el terminal
o el símbolo del sistema en el OSX y Windows
respectivamente. Podemos ingresar un
comando a la vez. El shell espera un
comando y del usuario para
ejecutarlo y luego devuelve
el resultado de la ejecución Después de esto, el shell espera
el siguiente comando. Las líneas comienzan con
tres símbolos mayores que. Hagamos algunos ejemplos. Escriba cinco más diez, Enter. El caparazón vuelve
a la respuesta 15. Ahora escriba cinco mayor que uno. Usted está preguntando al caparazón si
cinco es mayor que uno. El caparazón responde verdadero. Entonces el shell es adecuado para ejecutar un
comando a la vez. Es una herramienta muy conveniente
para enviar mensajes de texto a los comandos de Python, sobre todo cuando estamos empezando a empezar
con el lenguaje. Sin embargo, si sales
del shell de Python
y lo ingresas de nuevo, todos los comandos que
escribas desaparecerán. Además, no puedes usar el shell Python para
crear un programa real, pero si quieres escribir
un programa completo, la respuesta es el editor de archivos. Para codificar un programa sencillo, es
necesario escribir el
código en un archivo de texto y guardarlo con una extensión de punto PY. Este archivo se conoce
como script Python. Puede ingresar al editor de
archivos desde Archivo y luego nuevo archivo. Es similar a un editor de texto, y te permite escribir instrucciones
manuales, guardar el archivo y
ejecutar el programa. Tenga en cuenta que la ventana de shell
interactiva
siempre será la que tenga los tres
símbolos mayores que. En su lugar, la ventana del editor de archivos no
tendrá este mensaje. En la próxima conferencia,
vamos a conocer más sobre su entorno de
codificación.
7. Configuración de Python (resumen) 2024: Enhorabuena. Ahora tienes Python instalado
en tu computadora. Hagamos una rápida recomp de
todo lo que aprendiste. En esta sección,
aprendiste dónde
descargar Python en
Windows y macOS. Cómo instalar Python usando los instaladores oficiales
en Windows y macOS o el
administrador AppedPackage bajo el También
aprendiste a abrir Idle, entorno integrado de desarrollo
y aprendizaje de
Python. Entonces, ¿a dónde vas
a ir desde aquí? Bueno, ya estás listo para
comenzar a codificar en Python. Usarás Idle para
interactuar con Python y para escribir y ejecutar programas
Python. Pero Idle no es tu única opción. Es posible que desee estudiar la configuración de un editor diferente. Para ayudarte con eso,
en la siguiente lección, te
voy a mostrar un editor
alternativo de Python, código
VS o código de Visual Studio. Entonces es una gran alternativa
al Python Idol original. Quiero desearte todo lo mejor en tu viaje a
Python, y te veré por ahí.
8. Editores de código 2024: A la hora de
escribir código Python, tienes dos opciones. Se puede utilizar un
editor de código o un IDE, que es la abreviatura de entorno de
desarrollo integrado. Un IDE es básicamente
un editor de código con algunas características elegantes
como la finalización automática, lo que significa que a medida que escribas código. Esta función te ayuda a
completar tu código, para que no tengas que escribir
todos los caracteres a mano. Es una función de aumento de
la productividad. También te brinda
características adicionales como la depuración, lo que significa encontrar y
arreglar errores en tus programas, probar, etc. Tanto para los editores de código como para los IDE, hay tantas
opciones por ahí. Los editores de
código más populares son VS code, Adam y Sublime. Puedes usar el
editor de código que prefieras. En cuanto a los IDE, nuevo, hay
tantas opciones por ahí. El más popular es Pi harm. En este curso, voy a usar la
distribución oficial de Python o Idol como comentamos en
las lecciones anteriores. Pero en algunos ejercicios, también
voy a
usar el código VS o el código Visual Studio porque ese es mi editor de código favorito. Más adelante en el curso, te
mostraré cómo instalar un plugin o una extensión que convertirá el código
VS en un potente IDE. Entonces, antes de ir más lejos, dirígete a
code.visualstudio.com y descarga la última versión
9. Escribir tu primer programa de Python: introducción 2024: Hola a todos, y bienvenidos
a esta nueva sección. La primera sección
fue sobre cómo instalar
Python
en tu computadora. Y ahora que lo
tienes instalado, es momento de comenzar a codificar. En esta sección, escribirás
tu primer script Python. Aprenderás lo que
sucede cuando ejecutas scripts con un error y aprenderás a declarar variables e
inspeccionar su valor. También aprenderás mucho
sobre cómo escribir comentarios. En el camino, también vas a aprender las diferencias
entre lo que se llama el interactivo y las ventanas de guión
dentro de idol. Aprenderás sobre el lazo de impresión Red
evaluate, REPL. Y no sólo vas a
estar creando scripts, sino que también
aprenderás a ejecutarlos. Aprenderás sobre un operador
muy importante
llamado operador de asignación. ¿Cuáles son las reglas para
crear nombres de variables y qué se considera
válido o inválido? Junto con eso,
aprenderás algunos de los estándares que se
describen dentro de PEP eight Así que es hora de
que empieces
a escribir tu
primer script Python.
10. Escribir nuestro primer programa de Python 2024: Bien, es hora de
empezar a escribir
tu script Python. Vas a estar
usando un programa que viene con tu
instalación de Python. Se llama Idle,
que significa desarrollo
integrado
en Entorno de Aprendizaje. Cuenta con dos ventanas principales, y pasarás algún
tiempo en las dos. El primero se llama la ventana
Interactiva, y voy a compartirlo
en sólo un segundo. Después la ventana del editor, que es donde
realmente escribes scripts y programas que
guardarás y ejecutarás más tarde. Puede escribir código
tanto en la ventana interactiva como en
la ventana del editor. La diferencia entre
las dos ventanas está en cómo ejecutan código. Todo bien. Echemos un
vistazo a la ventana interactiva. Si aún no
tienes Idle abierto, entonces sigue adelante y ábrelo. puedes encontrar en
la carpeta en
la que se instaló la aplicación. En mi caso, voy
a elegir Python 3.12 y dar clic en la aplicación Idle La ventana interactiva de Idls
contiene el Shell de Python. Puedes ver este nombre aquí
arriba, Idle Shell. Es una interfaz de usuario textural utilizada para interactuar con el lenguaje
Python Puedes escribir un poco
de código Python en la ventana interactiva y presionar Enter para
ver inmediatamente el resultado. De ahí el nombre interactivo. Cuando se abra la ventana
, mostrará el mismo
texto al principio. El texto muestra la versión de Python que está
ejecutando Idle y algunos de los comandos que puedes usar para ayudar o ver información
sobre Python. Este lugar de aquí, esto
se llama el prompt, y es donde vas
a poder escribir código. Así que justo delante de
este indicador del cursor, sigue
adelante y escribe uno
más uno y luego presiona Enter. Y se puede ver que
da salida a dos. Python evalúa la expresión de uno más uno
y muestra dos, y luego muestra
otro prompt justo debajo de eso Cada vez que ejecutes código
en una ventana interactiva, un nuevo prompt aparecerá
un nuevo prompt directamente
debajo del resultado. Al usar la ventana
interactiva, funciona como un bucle e incluye estos tres pasos
diferentes. Uno, Python lee el código que ingresaste
en el prompt. Eso es otra vez, la cosa con los tres diferentes poco
mayores que los símbolos. Dos, evalúa el código. Tres, Python imprimirá el resultado y
esperará más entrada. Esto se conoce como
Red evalúan bucle de impresión. Por lo general, abreviamos como REPL. REPL, los programadores de Python
suelen referirse a esto como el Python Shell como
el Python REPL o
simplemente repelen Bien, probemos
algo un poco más interesante que
solo sumar números. Rito de paso para
cada programador es escribir el programa
que imprime la frase, hola, mundo en la pantalla. En el prompt, continúe
y escriba la impresión, y luego puede crear un
conjunto de paréntesis aquí Entonces estoy abriendo paréntesis, y pueden ver que me está
dando un poco de instrucción
adicional aquí,
lo cual es un poco agradable Y aprenderemos todo sobre estas cosas a medida que avanzamos
por el curso. En este caso, vamos
a imprimir algún texto. Entonces queremos hola mundo. Y si le pego a Enter, se
puede ver que
da salida Hola mundo. Este pedacito de código que
has escrito aquí, print es una función Una función es código que realiza algunas tareas y puede ser
invocada por su nombre El código anterior invoca o
llama a la función print con el texto hello world
dentro de él y lo emite Los paréntesis le dicen
a Python que llame a la función print. Si solo escribo print por sí mismo, no sabrá cómo lo
quiero llamar. Sólo me lo va a decir. Me dice que es una función
incorporada llamada print. Para llamar a esa función, necesito poner los paréntesis y luego decirle
algo de valor Como ve,
me está incitando aquí a ponerlo ahí. Y la última vez escribimos lo
mismo, así que lo
volveré a hacer. Y Genial. Esos paréntesis también encierran todo lo que se
envía a la función, entra en ella como entrada Y las comillas
indican que Hello world es realmente texto y no
otra cosa que podamos
querer imprimir. Dentro de Idol, puedes ver algunos
resaltados intrigantes que
suceden con diferentes colores. Con la
configuración actual que tengo, se
puede ver que una función
es diferente a la salida, y se puede ver que
algo que está dentro de comillas
se ve diferente a, digamos, estos números de aquí arriba. Por defecto, las funciones
se resaltan en morado y el texto se
resalta en verde. Esta ventana interactiva es
realmente útil para probar pequeños ejemplos de código y
explorar el lenguaje Python, pero tiene una gran limitación. Hay que introducir el
código una línea a la vez. Entonces, alternativamente, puedes guardar el código Python en
el archivo de texto y ejecutar todo ese código
para ejecutar un programa completo. Eso es a lo que
vamos
a cambiar usando la ventana del editor. Escribirás tus
propios archivos Python usando Idols Editor Window Puede abrir la ventana
Editor
seleccionando archivo y nuevo archivo el
menú en la parte superior de la ventana interactiva.
Déjame mostrarte eso. La
ventana interactiva permanecerá abierta cuando abras la ventana
del editor. Muestra la salida generada por el código
en la ventana del editor. Entonces querrás arreglar las dos ventanas para que puedas verlas a la vez. Dentro de la ventana del editor, escribe el mismo
código que usas para imprimir Hello World en la ventana
Interactiva. Tenga en cuenta que Idle resalta el
código escrito en la ventana Editor tal como lo hizo en la ventana
interactiva No es necesario agregar el prompt como estaba en la ventana
interactiva. No se requiere. Antes de poder ejecutar el
programa, es necesario guardarlo. Así que selecciona Archivo y
Guardar en el menú y guarda el archivo como helloworld dot En algunos sistemas, usará un directorio predeterminado donde
Python está instalado. El mismo lugar que es Idle. Asegúrate de no guardar tus archivos en ese directorio. lugar,
guárdelos en su escritorio o en una carpeta en el directorio de inicio de su
usuario. He creado una carpeta llamada
Python en mi escritorio, y ahí voy a
guardar el archivo. La extensión punto PY indica que el archivo
contiene código Python. De hecho, guardar tu archivo con cualquier otra extensión
va a eliminar el resaltado del
código. IDL solo resaltará código
Python cuando esté
almacenado en un archivo PY de puntos Para ejecutar el programa,
puede seleccionar Ejecutar en el
menú desplegable y ejecutar el módulo. También puede notar que algunos de
los comandos de teclas están
resaltados aquí. En este caso, es la tecla de
función cinco. Entonces el programa va a dar salida a la ventana
interactiva. Verás reiniciar y
luego el directorio y el mismo nombre del archivo que se está ejecutando
y es de salida. Idle reinicia el
intérprete de Python cada vez, que es el
programa de computadora que realmente ejecuta tu
código cuando ejecutas un archivo Esto asegura que los programas se ejecuten de la misma manera cada vez. Si quieres abrir un archivo, puedes ir a Archivo y Abrir. Y en mi caso, estoy reabriendo
el archivo que acabamos de guardar debajo de mi carpeta Python
y helloworld También puedes abrir un archivo
desde el administrador de archivos, como el Explorador de Windows o el Buscador de Mac OS haciendo clic
derecho sobre ellos
y decir abrir con. Todo bien. Has hecho
tu primer programa. A continuación, es hora de
cometer algunos errores.
11. Cometamos algunos errores 2024: Bien, es hora de
cometer algunos errores. Es realmente difícil no
cometer ningún error
mientras se programa. Y por si no lo has
logrado hasta ahora, voy a seguir adelante y hacer
que practiques haciendo algunos de ellos solo para hacerte una
idea de lo que está pasando. El primer tipo que vas a
experimentar se llama error
de sintaxis. Y el error de sintaxis
se produce cuando escribes código que no está permitido
en el lenguaje Python. El lenguaje no entiende
lo que intentas hacer. Voy a hacer que sigas
adelante y crees un error en el código que ya
has escrito. Es práctica crear
ese error de sintaxis. Quiero que reabras
tu archivo hello underscorworld
dot py Y al final de la
misma, sigue adelante y quita la segunda
comilla. Entonces comienza con
comillas y luego hola mundo, pero no hay ninguna que
cierre ahí la cita. Si guardas eso y luego
ejecutas o presionas la tecla F five, obtienes algo nuevo
aquí donde dice literal de cadena
indeterminado
detectado en la línea uno Dependiendo de la versión
de Python que tengas, este mensaje puede cambiar. Python 3.12 ha agregado muchas
explicaciones más explícitas de errores, lo cual es realmente un poco agradable Y verás más de ellos lo largo del curso a
medida que continuemos. Pero lo que podrías ver
en una versión anterior de esto es una declaración
que dice EOL, y EOL significa fin de línea En este caso, se ha reformateado y dice
algo un poco más agradable Entonces, ¿qué es un literal de cadena? Bueno, un literal de cadena es
lo que has creado aquí. Pero en este caso, no lo
has cerrado o terminado con las comillas
adicionales. Para crear un literal de cadena, hay
que encerrar
el texto que desee entre ambas comillas Puede ser la cita
doble o una sola cotización, y dedicarás mucho
tiempo a esto en un próximo curso
todo sobre cadenas. Para corregir este error de sintaxis, necesitaría agregar esa
otra pieza y guardar. Y luego se puede
ejecutar e imprimir. Entonces eso se considera
un error de sintaxis. El otro tipo de error
que experimentarás en programación se llama error
de tiempo de ejecución. Idle detecta errores de sintaxis incluso
antes de que el programa comience a ejecutarse. Pero en contraste, los errores de tiempo de ejecución solo ocurren mientras un
programa se está ejecutando. Cuando ocurre un error, Python deja de ejecutar
el programa, y luego va a
mostrar varias líneas de texto que se conoce
como un trace back, y va a mostrar un montón de información útil
sobre el error. Lo que es muy
interesante al respecto,
lo mejor es leerlos
de abajo hacia arriba. Voy a hacer que
vuelvas a tu archivo,
y esta vez, vas a crear
un error de tiempo de ejecución, y luego podrás ver la
diferencia entre los dos. Para crear un
error de tiempo de ejecución, pruebe esto en su lugar. Quite ambas comillas. ¿Se dio cuenta de cómo cambia el color del
texto a negro al eliminar
las comillas? Idle ya no reconoce
hola mundo como texto. Entonces lo que va a pasar
aquí es que este es un código válido. Entiende que es sintaxis, pero algo diferente
va a suceder. Adelante y guarda eso, y cuando lo ejecutes,
verás que esto sucede. Entonces esto se llama error
de tiempo de ejecución. Y nuevamente, para volver a leer
el rastro, esta cosa está pasando aquí. Lo mejor es leerlo
de abajo hacia arriba. Entonces dice enseguida, esto es un error de nombre. Hay un nombre
o algo que estás pidiendo que
se imprima. Se llama Hola,
y no está definido. No sabe, ya sabes, qué es hola o a qué
hace referencia Es válido en cuanto a
la sintaxis del mismo, la forma en que está escrito,
pero hola no existe. Entonces aún no se ha definido. Y eso es algo que
vas a hacer en la siguiente lección es
aprender a definir variables. Y si continuara, en
realidad tendría el
mismo problema con el mundo. De nuevo, se puede leer
de abajo hacia arriba. Entonces es un error de nombre. Nombre hola no está definido, y luego te muestra esa
declaración donde eso sucede. Y entonces en realidad va un poco
más allá arriba. Este es el archivo del
que está leyendo. A veces los proyectos Python
tienen varios archivos, y el rastreo puede
conducir a otro archivo. Entonces en este caso, dice, Bien, donde tienes esto guardado
a nombre del archivo, y eso realmente
te dice qué línea es. Nuevamente, no vas a tener
programas tan simples que se acercan. Este es solo uno de una
sola línea. Entonces es bastante sencillo
dónde está el problema. Pero así es como funciona el traceback, y puedes practicarlos
mucho más a medida que continúas Entonces, ¿obtiene la
diferencia entre un error de tiempo de ejecución y
un error de sintaxis? Genial. En el caso
de un error de sintaxis, no te permitirá ni siquiera ejecutarlo porque no
parece un código Python normal. No sigue
la sintaxis correcta. En este caso, este es un error completamente diferente donde
leía todo, pero cuando fue a
ejecutarlo, no pudo encontrar hola definido
en ningún lado. Bien, es hora de hacer un
poco de práctica por tu cuenta. Como un poco de revisión, intenta escribir un programa que Idle no ejecutará porque
tiene un error de sintaxis. Entonces escribe un
programa diferente que se bloquea solo cuando se está ejecutando
porque tiene un error de tiempo de ejecución. Puede encontrar el archivo de
soluciones en esta lección dentro de
sus recursos. Bien. A continuación, vas a estar aprendiendo todo sobre la
creación de variables.
12. Creación de una variable 2024: Ahora que has visto variables brevemente en la última lección, es hora de
profundizar mucho más en hablar de ellas. En las variables o nombres de Python, se le puede asignar un
valor y luego usarlo
para referirse a ellos más
adelante a lo largo de su código. Y esa es la idea realmente
crucial de una variable es que puedes
asignarla y darle un valor. Pero entonces si
quieres hacer referencia a ese valor
en cualquier momento más adelante en el programa, puedes llamar al nombre
de la variable y
volver a usarla o potencialmente darle
un valor diferente. Las variables son realmente
fundamentales para la programación, y hay dos razones principales. Uno, mantiene accesibles los valores
que intentas obtener dentro de tu
programa. Por ejemplo, puedes
asignar el resultado de alguna
operación o expresión que consume mucho tiempo a una variable para que
tu programa no realice la operación cada vez que necesites usar el resultado. Simplemente puede acceder al valor
directamente de la variable. La otra razón es que
las variables pueden darte contexto. Cuando tienes el número 20,
puede significar varias cosas
diferentes. Podría significar el número
de alumnos en clase. Podría ser la cantidad de veces
que alguien ha accedido un sitio web o ha ido a
algún lugar y así sucesivamente. Darle al valor 20
un nombre como un número de estudiantes deja claro el
significado de ese valor. En esta lección, vas a
aprender a usar variables en tu código y algunas de las reglas y
pautas de estilo detrás de eso. Para llegar allí, sin embargo,
para crear una variable, que aprender
sobre algo llamado operador de asignación. Entonces comencemos con el operador de la
segunda palabra. Un operador es un símbolo
como más o menos que realiza una operación
en uno o más valores. Usaste uno antes
de dos más dos, y realiza
adición en ese caso. Si fuera dos menos dos, realizaría la resta En el caso de asignación, los valores se asignan a nombres de
variables utilizando un símbolo especial llamado
operador de asignación, que es un solo signo igual. Y esto puede ser un
poco confuso. Podrás aprender
más sobre cómo funciona
este operador de asignación y cómo
no necesariamente es comparar dos cosas y decir que son
iguales entre sí. En realidad es dar
el valor y asignarlo al nombre de esa
variable El operador toma el valor
que está en el lado derecho
del operador y
lo asigna al nombre de la izquierda Déjame echarle un vistazo a eso
en la ventana interactiva. Escriba esto. Si
vas a hacer una variable, su nombre es saludo. Para asignarle un valor, se utiliza el signo igual,
el operador de asignación. Le vas a
dar la cadena literal de Hello world. Si tuviera que escribir print, entonces como valor, elija usar el saludo de nombre
variable Obtendrías la
misma salida que si
lo tuvieras que imprimir el literal
mismo hola mundo. Ahora bien, si tuvieras que escribir
saludo por sí mismo, verías que se
asignaría a la cadena
literal hola mundo ¿Y si hicieras
un error tipográfico cuando saliste a imprimir y escogieras saludo
capitalino Este es un código válido nuevamente. Demuestra que en lo que a la sintaxis se
refiere, esto funciona. Pero cuando presiono Enter, puedes ver que obtuve un error de tiempo de
ejecución de un error de nombre. El nombre saludo no
está definido. Y entonces, de nuevo, esta es una ventaja de
Python donde
en realidad te está dando
una idea un poco mejor del contexto de
lo que está sucediendo. Y dice: ¿
Quiso decir saludo? Porque aquí hay una
variable llamada saludo , lo cual es muy agradable Esta es una actualización. Es posible que no veas esto en una versión anterior
de Python. Oh, sí. El caso que estés usando en el nombre de
una variable es importante, y son
completamente diferentes. Podrías haber aprendido en
otros contextos de programación que tal vez la capitalización no
importaba, pero en el caso de
Python, sí Ahora hay reglas de variables
válidas y
nombres dentro de Python. Nuevamente, para evitar cosas
como el error de sintaxis. Los nombres de las variables pueden contener letras mayúsculas y minúsculas Cualquiera de esos está bien. Puede incluir dígitos. Puede incluir guiones bajos. Y el único truco, sin embargo, es que no puede
comenzar con un número, no
puede comenzar con un dígito. Entonces déjame darte un
par de ejemplos. Entonces, un nombre Python válido
podría ser una cadena uno o un guión bajo A uno S cuatro, o enumerar el guión bajo de las ciudades de
subrayado Algunas de las cosas
que no
serían válidas serían
comenzar con un número. Entonces cinco cable o 65 gira. Así que solo tenlo en mente. No se puede comenzar con un número, puede comenzar con un dígito. ¿Bien? Genial. Además de los
caracteres alfabéticos de los que
acabamos de hablar y los
dígitos en el guión bajo, los nombres de las variables
Python pueden
contener caracteres Unicode Unicode, si
no estás familiarizado con él, es un estándar para
representar digitalmente caracteres, y se utilizan en la mayoría de
los sistemas de escritura del mundo Entonces déjame darte un par de ejemplos de cosas
que podrías haber visto. Letras tan decoradas en
francés o español o alemán, donde tienes como E con acento en ella
o con un umlat, ya
sabes, diferentes cosas
así que están decoradas Puedes usar esos
caracteres en símbolos chinos, japoneses o árabes, pero no todos los
sistemas en los que
ejecutes tu código pueden mostrar
estos caracteres. Entonces es algo con lo que
tener cuidado, y puede funcionar mejor usar los que especificamos
un poco antes. Vas a aprender
mucho más sobre Unicode en una sección mucho más tarde, pero también voy a incluir algunos recursos si
quieres adelantarte. Elegir un buen nombre para
una variable es difícil. Hay algunos memes por ahí que muestran a alguien
pensando muy duro, ¿cómo se me ocurre un nombre? Y hay algunas pautas que tal vez quieras seguir. El primero que
quiero compartir contigo es mantener las cosas descriptivas puede ser mucho mejor que
mantenerlas súper cortas. Una variable llamada S es algo difícil saber tu intención de lo que es esa variable, sobre todo si fue
algo así como segundos. Eso podría ser mucho más
útil o incluso más explícito y descriptivo
serían segundos por hora. Eso te puede parecer que te
gusta mucho escribir. Lo que aprenderás es
que hay muchas herramientas cuando
trabajas con un editor
que te pueden ayudar a completar los nombres de las cosas para
que no tengas que
preocuparte mucho por mantener las cosas súper ajustadas y cortas. Puede ser mucho más útil
para ti en el futuro tener un nombre descriptivo que
solo un simple nombre corto. La buena regla general
es tal vez limitar el nombre de la variable a tres
o cuatro palabras como máximo. Bien. Entonces dije que podrías usar letras minúsculas
o mayúsculas Bueno, ¿dónde deberías usarlos? El caso que debes usar puede variar dependiendo de lo
que quieras hacer, pero hay algunas pautas. Hablemos de diferentes
formas en las que se puede hacer esto. Un término que
se usa es mezclar mayúsculas y minúsculas, donde comienzas con,
digamos, letras minúsculas, y luego cada palabra
individual que
estás agregando dentro
de ese nombre de variable, pones en mayúscula para
la primera letra de la misma Entonces aquí hay algunos ejemplos. Entonces como varios
estudiantes podrían ser estudiantes num capital o una lista de
nombres mayúsculas y así sucesivamente. Entonces eso se llama caso mixto. La otra forma de hacerlo
es usar guiones bajos, manteniendo todo en
minúsculas y luego usando un guión bajo
entre cada uno de estos Esto también se conoce
como caso de serpiente. Así se
verían esas variables en minúscula serpiente o
minúscula con guiones bajos En Python, es más común
escribir nombres de variables
en ese estilo. No está prohibido
usar caso mixto, pero normalmente es
más al estilo de Python generalmente para
hacerlo ese estilo. De hecho, hay
todo un tema sobre esto, y se
le conoce como PEP ocho PEP eight es ampliamente considerado como la guía oficial de estilo
para escribir Python, cómo se nombran las cosas, cómo se
deben formatear las cosas ,
cómo deben verse las cosas Y puedes aprender mucho
más al respecto
mirando este sitio web, pepight.org Alguien ha creado
este sitio para darle un recorrido por todas las características de una
manera agradable formateada. Hay más información. Incluiré un enlace
en la descripción. Siguiendo los estándares descritos y PEP eight asegurará que su código Python sea un código legible para la mayoría de los programadores de
Python, se verá al estilo
de otros usuarios de Python En cuanto al nombre PEP, significa Python
Enhancement Protocol Un PEP es un documento de diseño. Es utilizado por la comunidad
Python para proponer nuevas características o
cambios en el lenguaje. Al trabajar con variables, es agradable poder
inspeccionar los valores, y puedes hacerlo dentro de
la ventana interactiva. Para inspeccionar el valor que tiene una
variable en este momento, puede escribir el
nombre de la variable por sí mismo en el prompt. simple hecho de escribir el nombre por sí
mismo en el indicador a menudo
mostrará algo
diferente a lo que se muestra en comparación con
el uso de impresión. También puedes
conocer cuál es el tipo de variable que es poniendo el nombre de la
variable en tipo. Déjame mostrarte cómo se ven
esos. Digamos que creaste
una variable de X y a X se le va a
asignar el valor de dos. Si escribo X e
inspecciono la variable, se
puede ver que su valor es dos. Y si tuviera que imprimir, obtengo la misma salida. Ahora bien, podría parecer un poco
diferente si tuviera que decir, asigne Y al valor
de la cadena literal dos. Entonces esto es texto en lugar de
un valor numérico real. Entonces en ese caso, si escribo Y, verás que
genera algo ligeramente diferente versus
si tuviera que imprimirlo. Entonces eso puede ser un
poco confuso. Y lo que aprenderás es que
estos son tipos diferentes, y se interpretan de
manera diferente dentro de Python. Y este es un tema grande en el
que vas a sumergirte en secciones mucho
posteriores. Una cosa que puedes verificar
es que puedes decir tipo. Puedes ver aquí que va a
pedir el objeto o nombre, y luego va a regresar. Eso es lo que la flecha
indica el tipo del objeto. Y esto es sólo un adelanto. Entonces pruébalo con X. Dice que es
una clase de entero. Ahora, versus tipo de Y. Y
es la clase de una cadena, y se representan de
manera diferente cuando
simplemente ingresas en el
nombre de la variable. Y ten esto en cuenta que la inspección
variable como esta, solo
funciona en esta ventana interactiva
dentro de un REPL Por ejemplo, intente ejecutar el siguiente programa
desde la ventana del editor. Entonces aquí, digamos que
empezamos por definir el saludo y dice que
es igual a hola mundo Y luego en la siguiente línea,
simplemente escriba saludo. ¿Qué va a producir
cuando ejecutes este programa? Como puedes ver cuando lo ejecutó, no dio salida a nada. Ese tipo de inspección de una variable sólo funciona aquí
en la ventana interactiva. Como revisión, aquí hay un par de ejercicios que puedes hacer usando
la ventana interactiva. Muestre algo de texto usando la impresión. Y luego usando la ventana
interactiva, asigne un
literal de cadena a una variable. Luego imprima el contenido de la variable usando
la función print. Repita estos dos primeros ejercicios usando la ventana Editor
ahora con un archivo. Puede encontrar el archivo de
solución en la lección dentro de sus
recursos. Todo bien. A continuación, ¿cómo
puedes dejarte notas dentro de tu código?
Gracias por mirar.
13. Adición de comentarios 2024: En esta lección,
vas a
aprender a dejarte notas
útiles. Se llaman comentarios. Los programadores a veces
leen código que
escribieron hace un tiempo y
se preguntan, ¿qué hace esto? Cuando no has
mirado un código en un tiempo, puede ser difícil recordar por qué lo escribiste de la
manera que lo hiciste. Para ayudar a evitar este problema, puedes dejar comentarios
en tu código. Los comentarios son líneas de textos que no afectan la forma en
que se ejecuta el programa. Documentan lo que hace el
código y por qué usted, el programador, tomó
ciertas decisiones. Abramos un archivo anterior, hola mundo, y
editemos el código. Todo terminó en la primera
línea del código. Saludo equivale
a hola mundo. Imprimir saludo. Para iniciar un comentario,
usas el símbolo hash, a veces llamado signo
de número. Eso es lo que me gusta referirme
a él como. También a veces se le llama
el signo de la libra en EU. El Reino Unido podría estar en desacuerdo con eso. Un nombre técnico
es un Octothorp. Quizá hayas oído hablar de eso. Comienza con ese símbolo hash, y luego cualquier cosa que
escribas después de eso va a ser ignorada
cuando se ejecute el programa. Entonces, si guardo y
luego ejecuto este código, puedes ver que simplemente se
ejecutó como lo hacía normalmente. No cambió nada sobre cómo funciona este código
en particular. Hay dos formas en las que
puedes comentar tu código. El primero comienza
con un símbolo hash en una nueva línea y se
llama comentario de bloque. El otro estilo se llama
comentario inline. Continúa en
la misma línea con un símbolo hash justo
después del código. Todavía puedes usar
ese signo de libra, el símbolo hash
dentro de una cadena. Por ejemplo, Python no
confundirá lo siguiente
con una cadena. Déjame volver a la ventana
interactiva. Si tuviera que imprimir una
cadena que
dijera el número uno, no tendría ningún
problema con eso. Todavía se va a imprimir porque es
parte de una cuerda. En general, es una buena idea que tus comentarios sean lo más
cortos posible. Pero a veces
necesitas escribir
más que razonablemente encaja
en una sola línea. En ese caso, puedes
continuar tu comentario sobre una nueva línea y también
comenzarla con un símbolo hash. También puedes comentar
líneas de tu código. Para ello, colocas ese signo de
número hash al comienzo
de una línea de un código. Es una forma no destructiva de
probar el comportamiento de tu programa sin que ejecute
líneas específicas del código. Y hay algunas
recomendaciones sobre cómo debes
formatear tus comentarios. Nuevamente, estos son
según PEP ocho, los comentarios siempre deben
escribirse en oraciones completas Deben tener un
solo espacio entre el símbolo hash y la
primera palabra del comentario. comentario en línea debe comenzar con dos espacios después de su código. PEP eight también recomienda que sus comentarios se
utilicen con moderación Los comentarios que realmente describen lo que ya es obvio son innecesarios y pueden ser un gran problema para
muchos programadores Los comentarios
se utilizan mejor para aclarar código que puede ser
difícil de entender o para explicar por qué
algo se codifica de
ciertas maneras . Gracias
por mirar.
14. Interactúa con IDLE 2024: A lo largo de este curso, te involucraremos en muchos de estos ejercicios de
codificación interactiva. La idea es que no
solo estés ahí sentada
viéndome hablar, que en realidad estás poniendo en práctica
todo lo que estás
aprendiendo. De esa manera, en realidad
se convierte en el tuyo. Estos ejercicios de codificación son
geniales porque podemos darte instrucciones y mostrarte lo debería suceder si
escribes el código correcto, qué tiene que hacer, y qué vas a poder
hacer con tu código, así
como verlo
correr en la consola. Es a través de muchos de estos ejercicios que
vas a
poder subir de nivel y
vas a convertirte en un mejor codificador Entonces, para asegurarte de que
puedas interactuar con idol, prueba los siguientes pasos
en tu computadora. Pausa el video ahora y
completa este desafío. Todo bien. ¿Cómo te llevaste? Realmente espero que
le hayas dado una buena oportunidad a esto. Porque es en estos momentos donde vas a
estar aprendiendo a codificar. Por supuesto, este es
el comienzo mismo. Ahora bien, este es un
ejercicio muy simple que está diseñado para asegurarse de que pueda ubicar el software inactivo
en su programa, comenzar inactivo y luego hacer
algo muy simple en él. Así que solo escribe una declaración
impresa. Primero, vamos a
ubicar inactivo en tu sistema. Así que voy a hacer clic aquí
para buscar Idle. Aquí está. Alternativamente,
haga clic en el botón Estrella. Localice la carpeta Python. Y luego verás un ítem
para inactivo en este grupo. Así que solo haz clic en eso. Y eso debería iniciar el ídolo
corriendo en nuestro sistema. Un ídolo se ejecuta en esta ventana shell de
Python. Aquí tenemos el intérprete de
modo interactivo funcionando, y tenemos el prompt, los tres signos mayores que. Ese es el prompt
que
nos está esperando para escribir una sentencia Python, y luego
ejecutará esa sentencia. Entonces el ejercicio te dice
que escribas una declaración print. Sigamos adelante y tecleemos eso. Imprimir. Y luego tenemos
un paréntesis de apertura, y luego escribimos los
caracteres que queremos imprimir dentro de un conjunto
de comillas Esta es una prueba de ídolo. Y luego ponemos comillas de
cierre y paréntesis de cierre Ahora voy a
presionar la tecla enter, y deberíamos ver el
resultado de esta declaración. Entonces cuando presiono la tecla enter, el intérprete de Python
ejecutó esta declaración, y aquí vemos la salida. Entonces, si escribes
todo correctamente, tu pantalla debería
verse así Es posible que hayas
cometido un error de mecanografía. Por ejemplo, un error común es dejar fuera las
comillas. Entonces, si hiciste
algo así, déjame seguir adelante y a
propósito cometer ese error Entonces ahí se puede ver que
escribí el enunciado, pero dejé fuera las
comillas Y en esta instancia, me sale un mensaje de error
diciéndome que tengo un error de sintaxis, sintaxis no válida. Entonces, si dices
algo así,
mira la forma en que aparece la declaración en tu libro de texto y asegúrate de escribirla exactamente de la manera en que aparece Ahora, otro
error común es dejar fuera el número correcto de
paréntesis, por ejemplo Entonces aquí escribo la
declaración print correctamente, excepto que no he escrito
el paréntesis de cierre Ahora bien, si presiono la tecla enter, notarás que no me
sale un mensaje de error, pero el intérprete de Python
en realidad me está esperando para
completar la declaración. El cursor simplemente
baja a la siguiente línea, y cada vez que
presiono la tecla enter, simplemente baja
a la siguiente línea, pero no
me da ninguna salida. Está esperando a que escriba
el paréntesis de cierre, y luego me da la salida Entonces, si ves ese comportamiento, probablemente
sea un indicio que has dejado
fuera un paréntesis Todas estas cosas a las que te
acostumbrarás a medida que trabajes cada vez más dentro
del entorno inactivo. Ahora cuando
termines con Idol, puedes ir al menú Archivo
y puedes seleccionar Salir, o simplemente puedes escribir Control
más Q con un teclado, y eso lo cerrará. Gracias por mirar.
15. Cómo encontrar ayuda 20224: Yo. ¿Qué pasa, todo el mundo En esta conferencia, vamos a cubrir cómo encontrar ayuda
cuando estás atascado. Además, aprenderás las
mejores páginas web y recursos para
preguntas y respuestas de Python. Entonces comencemos. Cuando estés aprendiendo
a programar en algún momento, te quedarás atascado. Esto es absolutamente
normal para principiantes y también
usuarios experimentados en programación. Cuando estás atascado y antes que puedas obtener ayuda
de alguien más, tu primer paso debe ser
evaluar tu situación. Es decir, cuestionarte a ti mismo
y qué estás tratando hacer y qué resultado
has estado obteniendo. Resolver problemas de programación
no es tan difícil como piensas. Hagamos un ejemplo.
Escriba A más B. Y luego presione Enter. Una
flecha ocurre en color rojo. Python imprime un rastreo cuando se genera una
excepción en su código Un rastreo es un
informe que contiene las llamadas a funciones realizadas en
su código en un punto específico. No se preocupe. toda
una sección explicando
los errores y cómo manejarlos. No es necesario
entender lo que significa el
mensaje de error en este momento, pero te voy a dar una
breve explicación. Este es un error de nombre, uno de los tipos más comunes
de errores de Python. Un error de nombre significa
que has intentado usar una variable que aún
no existe. Se genera un error de nombre
cuando intenta usar una variable o un
nombre de función que no es válido. En Python, el código corre
de arriba a abajo. Esto significa que no
puedes declarar una variable después de
intentar usarla en tu código. Python no sabría lo que
querías que hiciera la variable. En nuestro ejemplo,
no hemos declarado una variable llamada A y una
variable llamada B. Para resolver este problema,
necesitamos declarar A y B antes de
utilizarlas en nuestro código. Hay dos
tipos principales de errores. Un error de sintaxis básicamente significa que cometiste un error
de puntuación Estos son los errores más
comunes. Acostúmbrate a leer que
has escrito muy de cerca y compararlo con mucho cuidado con lo que deberías haber escrito Los errores de lógica ocurren cuando
has entendido mal lo que estás tratando de hacer o lo que le
has pedido a Python que haga Estos errores pueden ser difíciles detectar y más
difíciles de rastrear. La forma más fácil de
obtener ayuda es
copiando el mensaje de error
en la búsqueda de Google, y deberías ver toneladas
de enlaces explicando qué
significa el mensaje de error y qué lo causa. También puedes intentar preguntar a la
gente directamente en un formulario web como desbordamiento de
pila. Aquí está la dirección web. Stack Overflow es uno de los sitios de preguntas y
respuestas más populares para los programadores Es muy confiable
porque los usuarios pueden votar sobre las respuestas
que encuentren más útiles. Así que las mejores respuestas suelen ser las primeras que encontrarás. Otra forma de encontrar
ayuda es a través la
documentación oficial de Python. Aquí está la dirección web. Es útil y contiene
mucha documentación. Por último, una gran página web
es pythontutor.com. Cuenta con una herramienta para escribir o pegar programa
Python y visualizar lo que la computadora
está haciendo paso a paso a medida que ejecuta
esos programas
16. Escribir tu primer programa en Python: resumen: En esta lección, voy a
resumir la sección y compartir algunos recursos adicionales para que sigas aprendiendo A lo largo de esta
sección, se le presentaron varios conceptos
nuevos. Aprendes cómo las variables dan nombres a valores
en tu código. Se aprende a usar
el operador de asignación para asignar valores
a las variables. Aprende sobre los errores de sintaxis
y cómo ocurren cuando escribes código que no está permitido dentro del lenguaje
Python. Y también aprendió sobre los errores de tiempo de
ejecución y cómo ocurren mientras se ejecuta un
programa. Los errores de tiempo de ejecución también
le dan un seguimiento
que puede mostrarle información
útil
sobre el error y se leen mejor
de abajo hacia arriba. Cómo los comentarios son líneas
de código que no se ejecutan y
sirven principalmente como documentación. Para poner a prueba tus conocimientos, hay un cuestionario que puedes
consultar para esta sección. Enhorabuena por escribir
tu primer programa, y espero verte
pronto en la siguiente sección.
17. Cuerdas y métodos de cuerda: INTRODUCCIÓN 2024: Hola a todos, y bienvenidos a cadenas y métodos de cadena. Los programadores de Python
tratan el texto a diario, ya sea que se trate de mostrar texto en una página web o dentro de una interfaz
gráfica de usuario, o incluso aceptar una entrada que un usuario haya escrito
en su aplicación Incluso hay segmentos
enteros de ciencia de datos que se ocupan extraer información
del texto, como el análisis de sentimientos. colecciones de texto en
Python se llaman cadenas, y hay
funciones especiales llamadas métodos de
cadena que se utilizan para
manipular cadenas, como cambiar una cadena
de mayúsculas a minúsculas, o eliminar espacios en blanco o reemplazar partes de la
cadena con un texto diferente En esta sección,
aprenderás a hacer algunas de las manipulaciones de cadenas
usando métodos de cadena Trabajarás con la entrada del usuario. Aprenderás a
lidiar con cadenas de números y convertir
números en cadenas, cómo formatear cadenas
para imprimir. Y en el camino,
aprenderás sobre las cadenas F, las cadenas líneas
múltiples y cómo
hacer indexación y rebanado de cadenas hacer indexación y rebanado ¿Qué es la
inmutabilidad de cadenas y cómo descubrir
métodos adicionales usando Idle usted mismo Bien, es hora de indagar
en lo que es una cuerda.
18. Qué es una cadena 2024: Hola a todos.
Se trata de Andreas, y me gustaría darle la
bienvenida a esta nueva sección. En las siguientes conferencias, aprenderás sobre los
diferentes tipos de datos que puedes trabajar dentro de
tus programas Python. Tenemos mucho que hacer, así que
encienda su shell Python, y comencemos. Una cadena es una serie de
caracteres, un texto si lo prefieres. Cualquier cosa dentro de las comillas
se considera una cadena. En Python, puedes usar comillas
simples o dobles
alrededor de tus cadenas. Por ejemplo, si escribo Python con comillas dobles y
Python con comillas simples, el resultado no es el mismo. Es fundamental
entender lo que
hacemos cuando usamos
cotizaciones y cuándo no. Si escribo ventas iguales
a 1,000 en cotizaciones, las ventas son una cadena, no un número. Pero si escribo ventas iguales
a 1,000 sin cotizaciones, entonces las ventas son un entero. Pero, ¿cómo puedes usar una
cita dentro de una cadena? Escriba y pulse Intro. Esta es una sintaxis no válida, como ves, hay
soluciones para eso. Una forma es comenzar con la cadena y
comillas dobles como esta. Dado que la cadena comienza
con una comilla doble, Python sabe que la comilla
simple es parte de la cadena y no
marca el final de las cadenas. Pero si necesitas usar comillas simples y comillas
dobles en la cadena, necesitarás usar
un carácter de escape o secuencias de escape. Un carácter de escape
consiste en una diagonal inversa seguida del carácter que desea
agregar a la cadena Entonces, el carácter de escape
para una sola cita es este. Vamos a escribir la cadena
anterior usando ahora el carácter de escape y
evitando comillas dobles. I Genial. Hay otro uso
de los personajes de escape, que son los
significados especiales como las nuevas líneas, y lo veremos en acción a continuación. Entonces aquí, D se está
definiendo con un texto. Esta es la línea uno
seguida de una diagonal inversa N, lo que significa que estamos
significando una nueva Ahora sigamos
escribiendo. Esta es la línea dos. Y las citas de
terminado al final. Entonces aquí tenemos el carácter N de la
diagonal inversa, lo que significa una nueva línea Si usamos la impresión D, verá que esta es la línea uno, y en una línea separada,
esta es la línea dos. Ahora bien, esto es algo
que usamos mucho, sobre todo si trabajamos
con archivos de texto, y muchas veces
encontrarás que necesitas insertar o eliminar una nueva línea
de caracteres de los textos. También es posible
hacer tabulaciones con la diagonal inversa T. Así que aquí puedes ver variables definidas con
algunos caracteres de tabulación Y una vez más, imprimiendo esto. Esas son las tabulaciones que
se han insertado entre las palabras. Es fundamental estar al tanto de los diferentes
caracteres de escape que puedes insertar dentro del texto. Se puede ver una selección de caracteres de escape como
comillas simples, comillas
dobles, nueva línea con N, retorno de
carro con R, tabulación
con T y la capacidad de
definir caracteres
usando valores octales o
hexadecimales Todo bien.
Hablemos de cuerdas crudas. En una cadena sin procesar, los caracteres de
secuencia de escape como que viste antes,
no se interpretan. Vamos a ver cómo
definir un carácter crudo. Definamos una variable llamada A usando el nuevo carácter de línea. Para crear una cadena sin procesar, una cadena tiene el prefijo
con una R como se ve aquí De lo contrario, el contexto
es exactamente el mismo. imprimir esto, se
muestra la cadena sin procesar, lo que significa que el nuevo carácter de
línea no se interpreta mediante la impresión
a su izquierda intacta. Esto es útil en
aplicaciones donde los caracteres
de la secuencia de escape no deben
interpretarse normalmente, como las expresiones regulares. A veces es necesario
insertar una cadena multilínea. Una cadena multilínea
comienza y termina con tres comillas simples
o tres comillas dobles Cualquier cita, tabulación o línea de
noticias entre
las comillas triples se
considera parte de la cadena. Vamos a escribir lo siguiente. El resultado aparece en el caparazón. Además, a menudo
se usa una cadena de varias líneas para los comentarios. Genial. Espero que hayas entendido qué son las cadenas y cómo puedes
crearlas y usarlas. Ten en cuenta que
las cadenas son uno de los tipos de datos fundamentales en Python. Gracias por mirar.
19. Qué es una cuerda (ejercicio) 2024: Bienvenidos de nuevo, todos,
al primer ejercicio
de esta sección. Nuestras clases de ejercicio
tienen que ver con el entrenamiento. Entrenarás en el
proceso de escribir código resolviendo ejercicios cuidadosamente
seleccionados. También entrenarás leyendo código de
otras personas y comunicando tu proceso de
pensamiento. Haciendo todo eso,
practicarás los conceptos
que has
aprendido en la conferencia anterior
y ayudarás a que se adhieran. En las próximas clases de
ejercicios, te
presentaré las tareas. Te doy la
oportunidad de resolverlos tú mismo, y luego mostrarte paso a paso
cómo resolví cada uno de ellos. Sigue tres pasos para cada tarea, aprende sobre el ejercicio, codifica tu propia solución y luego compara
tu solución y el proceso que
te llevó a la mía. Cuando te enseñe a través de una tarea, te explicaré qué hago y
también por qué lo hago así. Eso te dará la
oportunidad de comparar no solo nuestras soluciones finales, sino también cómo llegamos allí. Idealmente, esto puede ayudarlo a
obtener algunos conocimientos sobre
los procesos de pasar de una descripción de tarea a una solución de
trabajo en código. Bien, basta de hablar. Aquí está tu primer
ejercicio. ¿Qué es una cuerda? Pregunta muy filosófica,
pero vamos a ir sobre ella en un poco
más de practicidad. Tu tarea va
a ser imprimir cuatro cadenas individuales que
cumplan ciertas condiciones. La primera es
que debe haber comillas
dobles
dentro de la cadena. El segundo debe tener un apóstrofo dentro de la cuerda El tercero debe tener múltiples líneas con espacios en
blanco preservados, y el cuarto debe
codificarse en múltiples líneas, pero luego se imprime
solo en una sola línea. Estas son diferentes formas
de construir cadenas, y es solo una manera de
recordarte a ti mismo cómo puedes crear cadenas que cumplan
ciertas condiciones. Adelante. Haga esto ahora, y una vez que haya terminado
con su
solución, pase a la
siguiente lección donde también
resolveré las cuatro
tareas, y luego podrá compararlas
con mi solución.
20. Qué es una solución de cadenas 2024: Aquí estoy en el shell inactivo
interactivo. Voy a seguir adelante y
tomar notas rápidas de las diferentes tareas que
tengo que hacer aquí. Había cuatro tareas. Siempre me gusta empezar con sólo tomar notas sobre lo que
se supone que debo hacer, que me ayuda a organizarme y recordar cuál es la
tarea en realidad. Entonces el primero fue
imprimir una cadena con comillas
dobles. Entonces quiero
comillas dobles en la cadena. Esa es la primera tarea. Entonces el segundo fue tener un apóstrofo en la cuerda El tercero fue
tener una cadena multilínea que también se imprima
en múltiples líneas Y la cuarta fue
escribir una cadena en multilínea, pero impresa en una sola línea. Así que solo tomé algunas notas
cortas para recordarme las tareas
y me voy a poner en marcha. El primero es imprimir comillas
dobles en la cadena, y puedo hacerlo usando comillas simples
para delimitar la cadena Y entonces puedo usar
comillas dobles en su interior. Abro una cadena poniendo
una sola comilla. Entonces puedo escribir
algo aquí. Entonces diré, hay comillas
dobles en esta cadena. Y rodeé las palabras comillas
dobles con las comillas dobles
reales. Y debería imprimir bien porque no estoy mezclando
las comillas. Estoy usando
comillas simples para delimitar mi cadena. Y luego las
comillas dobles en su interior. No son considerados
como delimitadores de cadena, sino que son solo comillas
dobles del personaje Entonces ahora presiono Enter, y mi llamada de impresión se ejecuta, y obtengo como
salida la cadena Genial. El segundo, un apóstrofe en la cuerda Haga otra llamada de impresión, y ahora usaré comillas
dobles para delimitar la cadena Entonces lo estoy abriendo con
comillas dobles. Entonces puedo escribir algo. Diré, Esta cadena
tiene un apóstrofo, y yo uso un apóstrofe
después Entonces esta cadena
tiene un apóstrofe. Esto no es una lección de inglés, y de todos modos no sería la mejor
persona para enseñar esto. Pero sí tengo una
sola comilla
o un apóstrofe en la cadena Y ahora presiono Enter, y esto se ejecutará
y funcionará bien. El tercer ejercicio consistió en escribir una cadena multilínea que también
imprima en varias líneas. Entonces puedo hacer esto usando comillas
triples. Entonces, por ejemplo, las comillas
dobles o las comillas simples
triples funcionan igual. Y ahora puedo decir que esta cadena fue escrita en múltiples líneas. Bueno, todavía no.
Déjame presionar Enter. Y luego sigo con
la cadena y digo, se muestra a través de
múltiples líneas. Y necesito cerrar la cuerda. Entonces lo cerraré de nuevo con comillas
triples dobles. Uno, dos, tres, y luego también cerrar los paréntesis
de la función print Y ahora estoy listo para presionar
Enter, y esto se ejecuta. Y como pueden ver, el
nuevo carácter de línea. Entonces el enter que
presioné aquí, este nuevo carácter de línea
también es parte de la cadena. Entonces la salida la incluye, y por eso se
muestra en dos líneas. Y luego finalmente la última tarea, escribir una cadena multilínea que
imprima en una sola línea, y puede hacerlo escapando
del nuevo carácter de línea Ahora, sólo voy a usar
una comilla doble,
y voy a decir que esta cadena de una
línea fue escrita. Y luego voy a usar el carácter de la diagonal,
que se Se trata de un
carácter especial que escapa al siguiente carácter,
que en este caso, va a ser una
nueva línea ya después de poner el carácter de la
diagonal, presionaré Enter y seguiré
escribiendo en la Pero Python considera
que esto sigue siendo parte de
la línea anterior. Así que continúo escribiendo mis cuerdas, diciendo usando múltiples líneas. Y luego cierra la cuerda. Con una cadena como
esta que se delimita con
una sola comilla Difundir una cadena sobre
varias líneas como lo hago aquí solo funciona cuando usas
el carácter de la diagonal diagonal De lo contrario, Python
generaría un error de sintaxis, y ahora presionaría Enter. Y como pueden ver,
se muestra en una
sola línea porque me escapa del nuevo
carácter de línea que usé aquí. Todo bien. Entonces ese fue un resumen rápido de las
diferentes formas en que
puedes mezclar y combinar comillas al escribir
tus literales de cadena
21. Manipulación de cadenas con métodos de cadena 2024: Las cuerdas vienen
con funciones especiales. Se llaman
métodos de cadena que
puedes usar para trabajar
y manipular cadenas. Existen numerosos métodos de
cadena disponibles, como verás. Primero, puedes concentrarte en un puñado de los de uso común. En esta lección,
aprenderá cómo convertir
una cadena a mayúsculas
o minúsculas, cómo eliminar
espacios en blanco de una cadena y cómo determinar si una cadena comienza o termina con Bien, es hora de aprender
tu primer método. El primero va a trabajar en convertir el
caso de la cadena. Ese método es punto más bajo. Convertirá la cadena
a todas las letras minúsculas, tomando cualquier letra mayúscula
y
convirtiéndolas en minúsculas y
convirtiéndolas en Se ve algo así. Si agregas la cadena
de Albert Einstein y luego agregas punto
inferior como método, devolverá todos los caracteres en
minúscula El punto le dice a Python lo que sigue es el nombre de un método, y en este caso,
el método inferior. Escucharás esto referido muy
a menudo con métodos de
cadena usando un punto al principio de sus nombres, por ejemplo, punto inferior o como aprenderás aquí en
un segundo, punto superior. Esto hace que sea un poco más fácil diferenciar funciones que son métodos de
cadena de funciones
integradas como print o type que
hayas aprendido anteriormente. Los métodos
trabajarán en una cadena por sí mismo agregando
el punto e inferior. No olvides llamar al
método con paréntesis. También funcionan si los has
asignado a una variable. Entonces, en este caso, vamos a
escribir name y
ponerlo.in y queremos devolver la versión
minúscula Bien. Ahora que has
jugado con punto inferior, el siguiente que vas
a aprender es punto superior. Entonces punto superior convierte la cadena de todas las letras
mayúsculas Entonces, si tomas el
mismo nombre de variable y aplicas el método dot upper, verás que devuelve
todas las letras mayúsculas. Entonces solo una
comparación más entre métodos y funciones
que viste anteriormente. Los métodos de cadena comenzarán con un punto al principio
de sus nombres, y así es como te referirás
a ellos con el punto inicial. Así punto inferior o punto superior. Eso hará que sea mucho
más fácil diferenciar funciones que son métodos de
cadena de funciones
integradas como
print o n. Cuando las
comparas aparte de los diferentes resultados
de estas funciones, la distinción importante
es cómo se usan. Estas funciones incorporadas
solo son llamadas por ellos mismos. Entonces, si quieres encontrar la
longitud de una cadena de nombre, llamas a Ln y pones
nombre dentro de ella. O si quieres un nombre impreso, podrías simplemente hacer lo mismo versus por otro lado
con superior e inferior, necesitan ser utilizados en
conjunto con la cadena. No existen de manera independiente. El espacio en blanco es cualquier carácter que se imprime
como un espacio en blanco. Esto incluye
cosas como espacios, tabulaciones e incluso alimentaciones de línea, que son
caracteres especiales que mueven la salida a una nueva línea. A veces es necesario eliminar espacio en
blanco desde el
principio o el final de una cuerda. Esto es especialmente
útil cuando se trabaja con cadenas que
provienen de la entrada del usuario, algo que
alguien ha escrito,
que a veces puede incluir
caracteres de espacio en que a veces puede incluir blanco
adicionales por accidente Hay tres
métodos de cadena que
puedes usar para eliminar este espacio en
blanco de una cadena. tira de punto R elimina los espacios finales del lado
derecho de la cadena. tira de puntos elimina
los espacios anteriores del lado izquierdo
de la cadena. Y la tira de puntos elimina los espacios
blancos de ambos lados
izquierdo y derecho, por lo que cualquier cosa al
principio o al final de la cuerda se
eliminaría. Curiosamente, no
quita espacios del medio. Probemos algo de esto
en la ventana interactiva. Primero, necesitamos crear
algún espacio en blanco. Entonces haré un nuevo nombre, pondré un par de
espacios y una pestaña, y volveré a poner mi
propio nombre. Puedes usar tu propio nombre. En este caso, voy a agregar un par de espacios y una pestaña,
y luego slash en el
que hay un avance de línea En realidad, voy a añadir dos de estos feeds de línea con un
par de espacios intermedios. Así que ahí hay muchos espacios en blanco
diferentes. De hecho, si intentas
imprimir con nombre, verás todos los espacios en blanco, incluyendo las alimentaciones de
líneas adicionales, las dos. ¿Bien? Entonces, ¿qué pasa
si usas tira de punto R? Eliminó todos los caracteres de
espacios en blanco
del lado derecho, incluidas las alimentaciones de línea Nuevamente, el nombre sigue siendo el mismo. Entonces, si hago nombre y tira de puntos, se deshará del
espacio en blanco en el frente Y si usamos tira de puntos, se deshace de los
espacios en ambos lados, todo el espacio en blanco. Ya sean tabuladores, espacios
o alimentaciones de líneas. Cuando trabajas con texto, a veces necesitas
determinar si una cadena dada comienza o termina
con un cierto carácter. Puedes usar dos métodos de cadena
para resolver este problema. El primero es punto comienza con, y el otro es punto termina con. Vamos a probarlo en la ventana
interactiva. Digamos que tenemos una
cadena bioeléctrica. Crearemos una
variable llamada power y capitalizaremos bioeléctrica Si usas el método empieza
con, y en este caso, necesitas hacerlo, puedes ver que empieza a solicitar cuál te
gustaría que fuera el prefijo. Y ¿y si pongo bio minúscula? ¿Funcionará eso?
Eso devuelve falso. posible que hayas descubierto por qué porque comienza con una B. El hecho de que comience con el método en realidad distingue entre mayúsculas y
minúsculas. Para que esto sea cierto, tendrías que escribir lo
mismo, pero comenzar con un Bo mayúscula, eso volvería cierto. Y de igual manera, si
quisieras probar otro termina con en este caso, digamos que dices, ¿ termina con eléctrico?
Te pondrías verdad. Esto también es sensible a mayúsculas y minúsculas. Los
valores verdadero y falso no son cadenas. Hay un tipo especial de
datos llamados valor booling. Aprenderás más sobre
los valores de Boleing en la lección posterior. Ahora, las cadenas son inmutables. La mayoría de los métodos de
cadena alteran una cadena como superior e inferior, pero en realidad devuelven copias de la cadena original
con esas modificaciones. Entonces, si no tienes cuidado, es posible que no reconozcas esto y podría introducir
errores sutiles en tu programa. Prueba este.
Así que ponle un nombre esta vez a Wells Virginia. Bien. Así que de nuevo, si escribes nombre
y pones el método punto superior, obtendrás todas las mayúsculas Pero te habrás dado cuenta que lo mostré un poco antes, también, cómo no
se modifica el original. Ahora, para que cambie
el nombre de la variable, necesitaría reasignarlo. Entonces eso se vería así. Nombre es igual a nombre superior. Ahora, se ha cambiado el nombre. Eso anulará la cadena
original que
asignaste al nombre
reasignándola. Es posible que hayas notado
que hay muchos métodos asociados con las cadenas. Los métodos que estoy mostrando en esta lección apenas
rayan la superficie. Idle puede ayudarte a encontrar
estos nuevos métodos de cadena. Déjame mostrarte cómo
puedes descubrir algunas de ellas. Volvamos a nuestro ejemplo
eléctrico. Si comienzas con un
nombre de variable y luego agregas el punto, aparecerá
una cajita y comenzará a mostrarte algunos de
los diferentes que están disponibles. Si escribe una carta,
también obtendrá algunas de ellas. Estrechará los resultados. De hecho, si empiezo
a deletrear superior, lo
verás resaltado ahí. Puedes completar esto
presionando tabulador, y luego puedes terminar
llamando al método. Esta es una buena manera de
descubrir métodos adicionales
que están disponibles. Bien. Ahora que has
practicado un poco tratando de encontrar algunos de
esos métodos adicionales, aquí tienes una revisión rápida. Usando IDL, puedes
escribir el nombre de una variable que está
asignada a una cadena, y luego agregas un punto, a menudo hablado como punto,
y luego esperas Escribir una letra
limitará algunos de los
resultados y al presionar Tab se rellenará automáticamente el nombre de
ese método si has
comenzado a nombrarlo. Y una nota, esto incluso
funciona con nombres de variables. Intenta escribir las primeras letras de eléctrico y presionar Tab. Si no has definido
ningún otro nombre que comparta esas
primeras letras, Idle completa el
nombre eléctrico por ti. Entonces tab es un buen tipo de autocompletar que
puedes usar a través de Idol Bien. Es hora de revisar
lo que has aprendido. Tiempo para la práctica. Ejercicio uno. Escribe un programa que convierta las siguientes cadenas
a minúsculas Luego imprima cada cadena en
minúscula en una línea separada. Ejercicio dos. Intente repetir el ejercicio uno, pero convierta cada cadena a mayúsculas en lugar de minúsculas Ejercicio tres, escribir un programa que elimine el espacio en
blanco de las
siguientes cadenas. Luego imprime las cuerdas con todo el espacio en
blanco eliminado. Ejercicio cuatro. Escribe un programa que imprima los
resultados de arranques con B en cada una de las siguientes
cadenas. Ejercicio cinco. Usando las mismas cuatro
cadenas que el ejercicio cuatro, escriba un programa que utilice métodos de
cadena para
alterar cada cadena manera que el starts with B
devuelva true para todas ellas. Así que de nuevo, escribir un programa que utilice otros métodos de
cadena para alterar las cadenas de manera que comienzan con B devuelve true
para todas ellas. Puedes encontrar soluciones
a estos ejercicios y al código en los
archivos de recursos de esta lección. Todo bien. A continuación, cómo hacer indexación y
rebanado de cuerdas . Gracias por mirar.
22. Cambiar el caso (ejercicio) 2024: Aquí está tu próximo ejercicio. Se trata de un cambio de caso. En este ejercicio, tu tarea es cambiar el
caso de las cadenas. Simplemente experimenta y
practica un poco con los diferentes métodos de cadena
que puedes usar,
cambiando mayúsculas y minúsculas en cadenas. Y la tarea es
escribir un programa que convierta primero las siguientes
cadenas a minúsculas. Y entonces tienes
cuatro cuerdas aquí. El primero son los animales. El segundo es tejón. El tercero es el espacio de miel B, y el cuarto es el espacio de
miel Tejón Y después
de convertirlas todas a minúsculas, entonces deberías
convertir cada una de esas a cadenas y a mayúsculas Y debes imprimir cada una de las cuerdas en
una línea separada. Entonces, el resultado de resolver esta tarea básicamente
va a ser un montón de líneas de llamadas de impresión donde aplique
algunos métodos de cadena en ella. Pruébalo y
luego pasa a la siguiente lección y compara
tu solución con la mía.
23. Cambiar el caso (solución) 2024: La tarea consiste en
crear cuatro cadenas, convertirlas todas a minúsculas y luego
convertirlas todas a mayúsculas, cada una en una línea separada Voy a comenzar
definiendo las cadenas y
asignándolas a variables La cadena uno era animales
en el caso del título. La cuerda dos era Tejón. Cadena de tres abejas melíferas. Y cadena cuatro tejón miel, el más peligroso de todos ellos. Todo bien. Y ahora voy
a escribir llamadas para imprimir. Imprimir, abrir paréntesis,
cadena un punto más bajo. Ciérrala, Enter. Y consigo animales como salida. Imprimir cadena dos puntos más abajo. Entonces esto es un poco de un
ejercicio de mecanografía, como puedes ver, porque en realidad solo estás rehaciendo lo mismo
para cada una de las cuerdas Y más adelante en el curso, también aprenderás
a hacer esto un poco más automatizado para que no
tengas que escribir tanto. Pero por ahora, no hace daño tener un poco de ejercicio de mecanografía y simplemente practicar usando estos métodos de cadena y cómo los
aplicas a una cadena, que es
escribiendo primero la cadena, luego un punto y luego
el método de cadena. Y usa estos
paréntesis aquí, en este caso, están
vacíos para llamar a este método Entonces es similar a
la función print, como puedes ver aquí donde
también necesitas los paréntesis Genial. Los convertimos todos
a minúsculas Como puede ver, la salida
está en todas las minúsculas. Y ahora queremos hacer lo mismo, pero convertirlos a mayúsculas Entonces diremos PrintString
un punto superior. Entrar. Y se puede ver que los animales se devuelven en todas mayúsculas Continuemos con el ejercicio de
mecanografía. PrintString dos puntos superior. Príncipe cuerda tres no superior. Y por último, cadena de
cuatro puntos superior. Bonito. Y este es el
final del ejercicio.
24. Eliminar el espacio en blanco (ejercicio) 2024: En este ejercicio,
tu tarea es escribir un programa que elimine espacio en
blanco de las
siguientes cadenas. Después imprime las cuerdas
con el espacio en blanco eliminado. La cuerda uno es filet mignon. Supongo que estos son un
par de alimentos, pero parece que la persona que escribió el menú tuvo algunos problemas con poner demasiado espacio en
blanco en diferentes lugares. Entonces estoy inventando
la historia en torno a la tarea de que eres
el programador del restaurante y
se supone que debes
limpiar el menú en línea,
algo así. Verás, el primer trago tiene algún
espacio en blanco a la izquierda. El segundo tiene algún espacio en
blanco a la derecha, y el tercero tiene espacios
en blanco a la izquierda y a la derecha Entonces es una hamburguesa de queso
con un poco de bollo en blanco. Sin embargo, una cosa es útil para
ti antes de comenzar esta tarea, supongamos que he escrito cinco espacios en el
extremo frontal de cada una estas palabras
porque me va a
facilitar que escribir estos espacios en blanco, aunque no
importa cuántos haya Vamos a eliminar
algo de espacio en blanco.
25. Eliminar el espacio en blanco (solución) 2024: Entonces la tarea es eliminar el espacio en blanco y
limpiar el menú. Vamos a escribir estas tres cuerdas. Ahora, tengo acceso a las
tres cadenas uno, cadena dos y cadena tres. Y se puede ver que tienen este espacio en blanco del que
deberías deshacerte. Ahora bien, el método de cadena
para hacer esto es la tira de puntos. Entonces se puede decir, por ejemplo, cadena de tres tiras de puntos, y eso eliminará
el espacio
en blanco tanto al principio
como al final. Lo que significa que podrías usar tira para cada una
de esas cuerdas, y hará lo que
te pidan que hagas. Pero Python tiene dos métodos
más específicos aquí donde puedes simplemente eliminar espacio del lado derecho
o izquierdo, que voy a aplicar para
los de aquí. Cadena dos, puedo
usar tira de punto R. Simplemente se quita
del lado derecho, pero no del izquierdo. Para la cadena uno,
puedo decir tira de puntos. Lo cual va a despojar espacio en
blanco del lado izquierdo, pero no hacer nada
en el lado derecho. Puedes usar tira para todos ellos,
y eso funcionará, o puedes usar la tira L y la tira
R más
específicas para la cuerda uno o la
cuerda dos respectivamente.
26. Indexación de cadenas 2024: A menudo, en lenguajes de programación, se puede
acceder directamente a los elementos
individuales de un conjunto
ordenado de datos utilizando un índice
numérico o un valor clave. Este proceso se
refiere a la indexación. Las cadenas son secuencias ordenadas
de datos de
caracteres y se puede acceder a los caracteres individuales de cadena directamente
usando un índice numérico. La indexación de cadenas en
Python se basa en cero. Entonces el primer carácter de la cadena
tendría un índice cero, y el siguiente
sería uno y así sucesivamente. El índice del último carácter será la longitud de
la cadena menos uno. Veamos un ejemplo. Entonces para la cadena manzana, el primer índice, índice
cero, tendrá una letra A, y la última letra,
que es el índice cuatro es E. Vamos
a probar esto interactivamente Aquí hay una cadena A
que sería manzana. Para acceder al primer
elemento de mi cadena, uso corchetes. En este caso con índice cero, y sacará
la primera letra de mi cadena, y así sucesivamente. Por lo que el índice uno será
el segundo carácter, P, y el último carácter
E será el índice cuatro. Otra forma de llegar a
eso sería usar la longitud de la
función len incorporada. Entonces la longitud de la cadena A menos uno obtendrá el
último carácter también. Si voy a un índice que está más allá de la longitud
de la cadena, obtendré un error de índice, índice de
cadena fuera de rango. indexación de cadenas también puede ser específica con números negativos También
está disponible la indexación negativa. En este caso, vas hacia atrás. negativo
vendrá al fondo, así que E será menos uno, y el cinco negativo
será A, tu primera letra. Déjame probar eso. Entonces A, uno
negativo entre
corchetes proporcionará la última
letra y así sucesivamente. Nuevamente, podrías usar la función
n así. Esa será tu primera carta. Con Index, puedes acceder a personajes
individuales, y también puedes
tomar rangos de eso. Se llama rebanado de cuerdas y viene a continuación.
Gracias por mirar.
27. Corte de cuerdas 2024: Python también permite una forma de sintaxis de indexación que extrae
subcadenas de una Se le conoce como rebanado de cuerda. La sintaxis que usas, es muy similar a la indexación. En lugar de poner solo
un valor entre
corchetes, pones dos con los dos
puntos entre los dos. Entonces en este ejemplo,
D es una cadena, y M y N son dos valores
que devuelven una porción de D, comenzando por la posición M y hasta pero sin
incluir la posición N. Definamos la
cadena D para aguacate. Si seleccionas índice uno arriba dos, pero sin incluir
cuatro, ¿qué obtienes? COV. Nuevamente, cero es A, uno es V, dos es O, tres es C y cuatro es A, también, pero sin incluir cuatro. Entonces, ¿qué pasa si omites
el primer N o el último índice? Si omite el primer índice, en este caso, A,
dos puntos y luego N, va a comenzar a cortar
al principio de
la cadena y subir al valor de índice
no calcular N. Omitir el último índice no
va a extender ese corte desde el primer índice M hasta la Omitiendo ambos
índices, va
a devolver toda la cadena
original No es una copia. Es una referencia
a la cadena original. Veamos estos en la práctica. Tipo D, colon dos, y devolverá AV. Hasta cinco, regresaremos A VOCA. Todo el camino hasta el final,
puedes hacerlo escribiendo. Otra forma de hacerlo
sería poner el valor de tu índice inicial y luego usar la función length
como tu índice final. Si intentas las cadenas
sin valores, comenzarán desde el
principio hasta el final. Es una referencia a
la cadena original. La indexación negativa también funciona. También se puede hacer una combinación de índices
positivos y negativos. Empezaré con un
índice negativo cinco y subiré al índice negativo
uno. ¿Qué obtienes? Obtienes OCAD. Cuando
haces rebanado, puedes especificar una cadena
en una cadena de corte Se trata de agregar dos puntos
adicionales y un tercer índice designa
cuál sería la zancada También se le llama el paso. Entonces en este caso, si nuestra rebanada vendría
de los inicios, luego seguida del paso dos, comenzaría con
el primer ítem, que es cero y la letra A,
y luego saltaría dando
dos pasos para agarrar la letra O y luego saltarse
adelante para agarrar el índice cuatro, y luego ir al final ¿Y si tecleamos colon
colon con el paso dos? Se agarrará esas
letras AO AO. También puedes usar una zancada
negativa. Eso es todo por hoy.
Espero que entiendas qué es el rebanado de cuerdas.
Gracias por mirar.
28. EJERCICIO: corte de cuerdas: En este ejercicio se trata de
cortar una cadena, y su tarea es imprimir
la cadena en usando notación de
corte para especificar el rango correcto de caracteres
en la cajón de cadenas Entonces comienzas con
la cajón de cuerdas, y luego cortas
esa cuerda para sacar solo la
parte que dice en Rata ta, vamos.
29. SOLUCIÓN: corte de cuerdas: Bien, he abierto
mi Python inactivo. Mi tarea es cortar
cajón para conseguir rata. Entonces comenzaré asignando la caja de cadena a una variable Entonces sólo voy a
llamarlo palabra en ese caso. Bien, aquí tenemos cajón, y luego voy a usar notación de
rebanada para
sacar la parte rata de ella Y para usar la notación de corte, se usan corchetes. Dentro de los corchetes, hay
que poner en los
índices que se quieran utilizar. La indexación de cadenas
comienza con cero. Entonces C está en el índice cero, y luego tengo R
en el índice uno. Para que pueda comenzar con uno. Y luego en este caso, quiero obtener todo lo
que empiece con uno y vaya a la letra T, que está en el índice tres. Esto también se llama
el índice de detención. Así que sólo puedo hacer eso
poniendo dos puntos ahí. Quiero poner aquí un gran descargo de responsabilidad
gordo. Tienes que especificar uno más el último personaje
que quieres obtener. Entonces quiero ir a cuatro, que es el índice de E, y eso significa que
voy a conseguir todo hasta E. Así palabra uno dos puntos cuatro
debería darme la cadena real que estoy
buscando, que es Rata. Entonces, al escribir palabra
uno dos puntos cuatro, debería sacar
solo la cadena Rata. Y vamos a confirmar
pulsando Enter. Aquí está. Corté una rata de la
caja. Ahí vas. No obstante, si tienes una
cadena más larga y quieres conseguir todo hasta tal vez
el personaje final, pero no el personaje final, entonces contar así
puede ser bastante difícil. Entonces, en cambio,
puedes ir hacia atrás. Y también se pueden contar índices
comenzando con un menos. Entonces el primero
va a ser menos uno, y luego T va a
ser menos dos, etcétera Así que en su lugar puedo
especificar palabras comenzando desde uno y luego yendo todo
el camino hasta menos uno, que va a hacer lo
mismo que decir uno hasta cuatro. Entonces esa es otra
forma de simplemente conseguir rata. Y ahora encontré dos formas de llegar sin el personaje
final E.
30. Concatenación de cuerdas: Un par de operadores se
pueden usar en operandos
numéricos que también
se pueden aplicar a cadenas En este caso, el operador que parece un
signo más se considera el operador de concatenación y
el operador de
signo de multiplicación, que en cadenas crea
múltiples copias de Entonces para comenzar, el
operador plus concatena cadenas. Devuelve una cadena
que consiste en
los operandos unidos entre sí. Primero, voy a definir algunas cadenas. A igual a manzana. El siguiente
objetivo de cadena que
crearemos es B igual a banana. Y por último, C igual a cereza. Entonces, ¿qué pasa si
uso el signo más, el operador de concatenación,
A más B e Enter Combinemos las tres cosas. Concatenar los tres. También podemos concatenar cadenas en
funciones de impresión como esta M. Entonces ese es el operador de
concatenación. Veamos el operador de
multiplicación, que es un astérix, que crea múltiples
copias de una cadena para devolver
una cadena que consiste en copias
concatenadas de una Déjame mostrarte
cómo se ve. Voy a crear un objeto, D, que es un entero
que es igual a cinco. ¿Qué pasa si
multiplicas A, multiplicas D? Entonces el operador replica el objeto string cinco veces y los concatena juntos. Entonces el multiplicador
necesita ser un entero. No se puede multiplicar por un número
flotante, por ejemplo. ¿Y si es un número negativo? Eso devolverá
una cadena vacía.
31. EJERCICIO: concatenación de cuerdas: Aquí está su segundo ejercicio
sobre concatenación Lección. Crea dos cadenas,
concatenas e imprime la cadena resultante Y luego está la
pregunta. ¿También puedes agregar un espacio entre ellos
usando solo concatenación Así que elige dos palabras
que siempre quisiste
concatenar juntas. Voy a escoger las
palabras murciélago y hombre. Ve a tu
editor de Python y haz que suceda. Después de eso, pasar a la siguiente lección y
ver cómo lo hago.
32. SOLUCIÓN: concatenación de cuerdas: La tarea era crear dos cadenas y
asignarlas a variables. Concatenar sin espacio
y concatenerlos con el espacio. Empecemos creando dos variables que
apunten a cadenas. Comenzaré con el
guión bajo de cadena a la izquierda, que apuntaré a
una cadena llamada así Y luego voy a hacer otra
cadena subrayado a la derecha. Eso voy a señalar al hombre. Y ahora puedo usar una llamada para imprimir para pegar
estos dos juntos. Entonces abriré los paréntesis después de escribir print
y luego escribiré String underscore left plus
string underscore Cierre los paréntesis.
Entonces como puedes ver aquí, estoy usando el operador plus, que si
lo usas con cadenas,
las concatena juntas. Así que literalmente unirá a murciélago y hombre sin
ningún espacio intermedio. Presiono Enter para confirmar, y obtenemos la cuerda
Batman pegada. Ahora, la última tarea fue
concatenerlos con un espacio. Por lo que sólo voy a copiar mi
llamada para imprimir y
saltar a la mitad de esto
junto al operador plus. Y aquí voy a añadir otra cadena más, un carácter de
espacio en blanco Entonces me estoy abriendo a las comillas, poniendo un carácter de espacio en blanco, y luego cerrando
las comillas nuevamente Esa es una cadena perfectamente válida. Es solo una cadena que solo
consta de un carácter, que es un espacio en ese caso. Nuevamente, estoy usando operadores plus izquierda y derecha para unir estas
tres cadenas. Entonces ahora en iBressenter, conseguiré una cuerda
Batman todo en uno, y ese es el ejercicio.
33. Formato de cadenas: Ahora, te voy a mostrar cómo formatear cadenas usando el operador de
porcentaje. Esto también se llama
formato
de cadena porcentual o estilo C. La sintaxis para usar el operador de
porcentaje
es la siguiente. Hay tres partes para la
sintaxis, la cadena entre comillas, el
operador de porcentaje y los valores o variables que se insertarán en una cadena separados por comas El primer sello es escribir la cadena a
formatear entre comillas. Después de eso, escribimos
el símbolo de porcentaje. Y finalmente, escribimos las variables o valores entre
paréntesis. El formato de porcentaje se utiliza
para representar una cadena, Andreas en este caso. Mientras que el formato D por ciento
representa un entero, 75 kilogramos en este caso. Python Prince, mi
nombre es Andreas, y mi peso es de 75 kilogramos. Puedes descargar un PDF
que he creado, que es una lista de conjuntos
completos de símbolos que se pueden usar
junto con el porcentaje. Lo puedes encontrar en
tus archivos de recursos. En lugar de usar el
operador percent para formatear cadenas, Python también nos proporciona un método de
formato para formatear cadenas. La sintaxis es el formato de punto de cadena, valores o variables
para ser
insertados en una cadena
separados por comas Cuando usamos el método format, no
usamos el porcentaje S
o el porcentaje D como marcadores En cambio, usamos
llaves como esta. Primero, escribimos los
parámetros position para usar dentro del corchetes, seguido de dos puntos,
y después de los dos puntos, escribimos el formato
sin espacios dentro de
los corchetes. Cuando escribimos cero dos puntos S, estamos pidiendo al
intérprete que reemplace cero dos puntos S con un
parámetro en posición cero que es una cadena
porque el formateador es S. Cuando escribimos un dos puntos D, nos referimos al parámetro en la posición uno, que
es el entero El símbolo de formato es D. Observe que las posiciones
siempre empiezan desde cero. El resultado es el mismo que el anterior. Si no quieres formatear la cadena, simplemente
puedes escribir. A El intérprete
reemplazará las llaves
en función del orden de
los parámetros proporcionados. Cubrimos los conceptos básicos de los métodos de formateo de
cadenas, que aprenderemos
en la siguiente lección con
más detalle. Gracias
por mirar.
34. Cadenas F: una sintaxis de formato de cadena mejorada: Bien,
hablemos de cuerdas F. Entonces, ¿por qué uso Python
tres cadenas F? Son más legibles.
Son más concisos, menos propensos al error y más rápidos. Pero voy a empezar con el formato de
cadena de la vieja escuela,
el formato de porcentaje,
el formato de punto de cadena. Déjame comenzar
con algunos ejemplos. Abra el Shell de Python. Vamos a configurar una variable
y darle un nombre. Por ejemplo, Alan. Usa esa variable en una cadena. Usando por ciento a dentro de tu
cuerda y al final de la misma. El porcentaje y luego el
nombre de la variable, Enter. Supongamos que tenemos
otra variable. Ahora tenemos dos variables. Nos gustaría agregar a nuestra cadena. Esto es lo mismo con el nombre. Y luego metemos, son la edad, por ciento y S. Así que en este caso, tenemos dos variables
que vamos a enchufar. Para ello, escribe por ciento, y luego el nombre, edad entre
paréntesis ¿Y si tienes
muchas más variables? Vamos a configurar algunas variables. Para poner todos estos en
una sola cadena, empieza a ponerse un poco desordenado Tendremos que contar
el número de porcentaje S para
asegurarnos de que
los tenemos en el orden correcto N
cuáles está reemplazando. Al final aquí, necesitamos poner todas las variables
dentro de paréntesis Todo bien. Se ve bien. Pulse Intro. Afortunadamente, hay mejores formas de hacerlo. Hablemos del formato
string dot. Podemos poner marcadores de posición en
nuestra cadena entre corchetes. Y al
final de la cadena,
diríamos formato de punto, y luego podríamos poner
argumentos en nombre y edad. También podemos hacer referencia a las
variables dentro de su índice. Digamos que este es el Índice uno
y éste es el índice cero. Y invertimos
el nombre del orden y la edad. Entonces obtenemos el mismo resultado. Ahora hablemos de una
nueva y mejorada forma de formatear cadenas en
Python, cadenas F. Las cadenas F también se conocen como literales de cadena
formateadas y se crean en la versión Python 3.6 Tienen sintaxis simple. Se evalúan en tiempo de ejecución, y se formatean
usando el protocolo de formato. Déjame mostrarte algunos ejemplos. Vamos a configurar tres variables. Nombre, edad y profesión para construir una cuerda dentro de
nuestros corchetes. Ponemos nuestras expresiones. Y si quieres, puedes usar F al principio
de tu cuerda. Agradable y sencillo. Ahora que te he mostrado la sintaxis
simple de las cadenas F, hablemos de expresiones
arbitrarias. Se puede hacer masa simple
dentro de corchetes. También puedes hacer
algo así. También puedo llamar
funciones y métodos, pero estos son conceptos
que lo harán más adelante. Ahora también podemos crear cadenas
multilínea. Este es un mensaje
de varias líneas aquí. ¿Qué
aspecto tiene este mensaje? Escriba mensaje. Solo recuerda que
necesitas poner la F en cada una para cada una de estas para ingresar cada una de estas expresiones en la
cadena. ¿Qué pasa con la velocidad? Las cadenas F son más rápidas que formato de porcentaje
y el formato de puntos STR. Entonces
te voy a llevar a través de una revisión de todo lo que has cubierto
y aprendido en esta lección. Comenzamos con el formato de cadena
más antiguo, el formato de cadena porcentual
también llamado Estilo C. Después de eso, comenzamos a hablar sobre el método string
dot format, que comenzó a partir de la versión
2.6 de Python. Y finalmente, cubrimos el método de
formateo de cadenas más reciente, la cadena F, que comenzó
desde la versión 3.6 de Python. Eso es todo por hoy. Entonces, gracias nuevo por
acompañarme en esta lección. Y espero que ahora puedan ver
lo mucho más concisas, legibles, convenientes y
rápidas que pueden ser las cadenas F.
35. EJERCICIO: optimiza tus impresiones: En este ejercicio, conseguirás
agilizar tus impresiones. Como viste antes, solo concatenarlos podría
llegar a ser un poco engorrosa Así que aquí tienes
un ejercicio donde puedes probar tres
tipos diferentes de mostrar la misma cadena usando
diferentes formas de
ensamblar la
concatenación de cadenas, formato de punto de
cadena, y
también usando una cadena F. La tarea consiste en crear un objeto flotante llamado weight
con el valor de 0.2, y luego crear un objeto de cadena llamado animal con el valor Anim y luego usar estos objetos para imprimir
la siguiente cadena Entonces primero, solo usando
concatenación, la cadena debería decir 0.2 kilogramos es el
peso de un Y entonces deberías mostrar
la misma cadena usando
el método de formato de punto y soportes
vacíos para
colocar corchetes. Y finalmente, también hago lo
mismo usando una cadena F. Adelante, resuelve ese
reto por ti mismo, y luego te veré
en la siguiente lección.
36. SOLUCIÓN: optimiza tus impresiones: Aquí estoy de nuevo en el shell
interactivo, y la tarea era comenzar
definiendo dos variables. Uno fue peso igual
a 0.2 punto flotante. Y entonces animal era la cuerda que debería apuntar
a la cuerda Nim Bien, comencemos con
la concatenación. Voy a imprimirlo
aunque aquí en la consola, obtendríamos un resultado también
si no lo imprimiera. Pero sigamos con
esto. Y aquí de nuevo, voy a tener que convertir
el primero una cadena porque este
es actualmente un flotador. Si trato de agregar un flotador y una cadena juntos usando
el operador plus, eso me daría un error
como viste antes. Entonces voy a decir peso de cadena, convertirlo en una cadena
explícitamente, y luego más. Abrir comillas dobles y escribir. Kilogramo espacial es el peso
del espacio otra vez, comillas
dobles otra vez. Y entonces voy a concatenar
eso otra vez con animal. Entonces dice, 0.2 kilogramo
es el peso de un NM. Y entonces supongo que debería haber un periodo al final para
que sea una frase propiamente dicha. Si presiono Enter aquí, se
puede ver que dice 0.2 kilogramos es el
peso del NM. Entonces esa es una solución que funciona usando solo strnkencnation
y Ahora vamos a tratar de usar el método de formato de punto
en la cadena. Así que de nuevo, abro
la función de impresión. Y ahora puedo usar las
llaves como marcador de posición. Este es un lugar donde
quiero insertar algo. En el primer lugar,
quiero insertar el peso. Entonces otra vez, viene la parte
media de la cuerda. Kilogramo es el peso de la, y ahora voy a usar
otro par de llaves
rizadas donde
voy a insertar el animal Esto debería decir Nim, y entonces puedo poner
un punto ahí Y ahora esta es mi
plantilla de cadena, algo así, donde quiero insertar
estas dos variables que tengo que encontrar antes. Y lo puedo hacer
usando el formato de punto. Entonces en esa cuerda, tirantes
rizados kilogramo es el
peso de los tirantes rizados Estoy llamando a formato punto. Y ahora voy a pasar
las dos variables que quiero insertar en
los dos marcadores de posición aquí En el primero, quiero
insertar peso, y luego animal. Y va a tomar
el primer argumento e insertarlo en el primer marcador de posición y luego el segundo argumento e insertarlo en el
segundo marcador Entonces si ahora cierro los paréntesis para la
llamada de impresión y luego presiono Enter, entonces puedes ver que obtengo la
misma salida que antes Entonces así es como puedes hacer esto usando el método de formato de punto. Puedes ver que
ya lo
hace más legible que solo usar la concatenación
pura de cadenas, y te ahorra el
esfuerzo de tener que hacer conversión de tipo
explícito en
objetos que no son Y ahora, en mi opinión, incluso un poco más legible
va a ser la cadena F. Así que de nuevo, estoy
abriendo una llamada para imprimir. Y aquí dentro, comenzaré
escribiendo F y luego
abriendo la cadena con sólo
hacer dos comillas. Y volveré a usar el marcador de posición de
llaves rizadas. Pero ahora en lugar de
mantenerlo vacío, voy a poner en el nombre de la
variable directamente. Entonces voy a decir peso, y luego la parte media
del kilogramo de cuerda
es el peso de la. Abra otro conjunto
de llaves y ingrese animal directamente
en las llaves, y luego un punto al final Y eso es todo lo que necesitas
hacer para la cuerda F. Si presiono Enter ahora, puedes volver a verlo,
obtienes la misma salida que en las otras dos variantes. Entonces estas son tres
formas diferentes de ensamblar esta cadena final que da la información que
contiene tanto una cadena, la cadena NEM, como la representación
de cadena de un número de punto flotante Bien, esta es la
forma en que puedes hacer esto. Déjame saber cuál
es tu favorito.
37. Interactúa con la entrada del usuario(): Para ser útil, el
programa generalmente necesita comunicarse
con el mundo exterior obteniendo datos de entrada
del usuario y mostrando los datos de
resultado al usuario. Este tutorial te presentará la entrada y salida de Python. entrada puede venir directamente
del usuario a través del teclado o de alguna fuente externa
como un archivo o base de datos. salida se puede mostrar directamente
a la consola o IDE a la pantalla a través de una interfaz
gráfica de usuario o nuevamente a una fuente externa. Los programas a menudo necesitan
obtener datos del usuario, generalmente a modo de entrada
desde el teclado. La forma más sencilla de
lograr esto en Python es con input. Input es una excelente
función en Python y a menudo se
usa en programación. Pausa tu programa y espera
a que el usuario ingrese algún texto Una vez que Python recibe
la entrada del usuario, almacena en una variable. Hagamos algunos ejemplos. Tipo. Una vez que el usuario presiona
la tecla enter, todos los tipos de caracteres son leídos
y devueltos como una cadena. Tenga en cuenta que la nueva línea
generada cuando el usuario presiona la tecla enter no se incluye como parte de
la cadena de retorno. Si incluye el argumento prompt
opcional, input lo muestra como un prompt para el usuario antes de
pausar la entrada roja La función de entrada
toma un argumento. Las instrucciones que
desea mostrar al usuario. Entonces el usuario ve el prompt,
cual es tu nombre y espera
mientras el usuario ingresa
su respuesta y continúa después de que el usuario presiona Enter La respuesta se almacena
en el mensaje variable. Entonces mensaje muestra
la entrada del usuario. Es mejor agregar un espacio al final de tus mensajes después
del signo de interrogación
en nuestro ejemplo para separar el mensaje de
la respuesta del usuario También, utilizo
comillas dobles porque ya la
he citado
dentro del texto. Ahora probemos
algo diferente. Queremos escribir un prompt
por más de una línea. La primera diapositiva almacena
la primera parte
del mensaje con la
variable prompt. En la segunda línea, el operador más la cadena se almacena en un prompt y agrega la
nueva cadena al final. La línea de cambio N de la diagonal invertida. Luego, el prompt se almacena
en un nombre de variable y pasa esa variable
a la función de entrada. Por último, imprimimos el texto alto, el nombre de la variable
y la frase, mi nombre es robot. Si ve cuidadosamente
la línea de código, el error de sintaxis se
debe a las comillas. Abrí con comillas dobles
y cerré con comillas simples. Déjame arreglarlo. Genial. La entrada siempre
devuelve una cadena. Si quieres un tipo numérico, entonces necesitas
convertir la cadena al
tipo apropiado con las funciones NT, float o complex
built in. Esta línea convierte N en
un entero para que la
sentencia print tenga éxito Creo que estás listo para
explorar la entrada de los usuarios un
poco más profundo por tu cuenta. Aquí tienes algunos
ejercicios de revisión para ti. Intenta escribir un programa
que tome la entrada
del usuario y luego
muestre esa entrada de nuevo, algo así como lo
que ya has hecho, pero cámbiala un poco. Intente escribir un programa
que tome la entrada
del usuario y luego muestre
esa entrada en minúsculas Intente escribir un programa
que tome entrada
del usuario y luego muestre
el número de caracteres, contando los caracteres de
la entrada que se escribió Como siempre, puedes
encontrar las soluciones a estos ejercicios y el código en los archivos
de recursos de esta lección. Todo bien. A continuación, vas a empezar a trabajar
con cuerdas y números.
38. EJERCICIO: interactúa con las aportaciones del usuario: En este ejercicio,
te estás aventurando en el mundo de interactuar
con tus usuarios Y en este caso,
debes escribir un programa que tome
entrada del usuario, luego muestre esa entrada de nuevo, pero primero
convertirla a minúscula Entonces, si el usuario escribe hola en mayúsculas o en minúsculas, siempre
deben
recuperarlo en minúsculas, lo que sea que escriba ahí Luego hay una
pequeña tarea adicional donde
también puedes mostrar el número de caracteres que ingresa el usuario. Bien. Piensa en esto. Tómese un momento, escríbelo en su editor o en el REPL, y luego pase a la siguiente lección y
compárela con mi solución
39. SOLUCIÓN: interactúa con las aportaciones del usuario: Para resolver este ejercicio, vas a necesitar usar la función de entrada en Python para recopilar la entrada del usuario y luego algunos
métodos de cadena para convertirla. Y luego también hay
una función llamada n que puede ayudarte a obtener
la longitud de las cadenas. Podría hacer esto por
aquí en Idle ahora, y probablemente voy
a experimentar un poco. Pero también abrí un archivo donde voy a
escribir el código para
poder ejecutarlo varias veces más fácil sin tener que
escribirlo cada vez. Eso me da la
oportunidad de
probar también y ver si
mi script funciona, no solo para una entrada, sino para las
diferentes entradas repetidas. Entonces voy a escribir
el código en el script, pero también puedes escribirlo
sobre REPL si quieres Estas son las tres tareas
que debería hacer mi guión. Voy a
comenzar con el número uno, donde voy a usar input con
un pequeño prompt aquí. El prompt va a
decir tipo algo. Y estoy agregando este espacio aquí
para formatearlo un poco más agradable. Entonces necesito recoger
el resultado de esto. Entonces, si solo ejecuto
entrada así, probemos
aquí en el REPL Voy a recibir el prompt que
dice escribir algo. Y puedo saludar, y se vuelve. Pero en mi guión,
actualmente no lo estoy coleccionando ningún lado ni tampoco aquí
en el caparazón de Ídolo. No lo estaba recolectando en ningún lado, así que necesito asignarlo a una variable que luego pueda
hacer algo con ella, como minúscula y
mostrarla y obtener su
longitud, etcétera Así que de vuelta en mi editor en la
línea uno, voy a decir, entradas de subrayado de
usuario
equivalen al retorno de la
entrada de llamada y lo que sea que entonces
el usuario escriba ahí Y luego quiero convertirlo a minúsculas y mostrarlo.
Entonces comencemos con esto. Voy a usar la
función de impresión escribiendo print, abriendo los paréntesis,
y luego poniendo en el usuario underscore
input dot lower Entonces este es solo el método de cadena
inferior de punto que ya
has usado un par de veces
y
mostrarlo al usuario usando
la función de impresión. Voy a probar este script
ejecutándolo en inactivo. Puedes presionar F cinco para ejecutarlo, guardarlo y ejecutarlo.
Entonces vamos a hacer eso. Podemos ver por aquí, me sale
el prompt para escribir algo. Voy a intentar de nuevo
saludar en todas las mayúsculas, se
puede ver que
mi guión funciona. Vuelvo la misma cadena, pero en todas minúsculas, otra ventaja de tener
un script aquí es que
puedo simplemente ejecutar esto de nuevo sin necesidad de
escribir nada Me sale otro prompt y
puedo probar caso mixto. Hola. Y otra vez, solo
me lo devuelvo en minúsculas Entonces esto está funcionando. Ahora voy a resolver la
tarea en la línea tres, imprimir la longitud de
la entrada también. Para esto, sólo puedo
usar la función len. La función len
funciona que toma en una
colección, por ejemplo, una cadena, y luego simplemente devuelve el número de
elementos de esa colección. Entonces si pongo una cadena
aquí y le dije, hola, me vuelven cinco, que es el número
de caracteres. Uno, dos, tres, cuatro, cinco. Entonces eso es exactamente lo que quiero. Y de vuelta en mi guión, voy a decir “print”. Abre los paréntesis, y luego diré Len porque eso es lo que
quiero imprimir. N como argumento, voy a pasar la entrada del usuario. Tenga en cuenta que la
entrada del usuario que estoy pasando aquí es en realidad
la original. Entonces no es la minúscula, pero no importa
porque punto más bajo no
va a cambiar
el número de caracteres Realmente solo va
a minúscula. Entonces tanto la versión en minúscula como lo que sea
la
versión de mayúsculas y minúsculas de usuario va a tener la misma
cantidad de caracteres Y ahora voy a probar de nuevo el
guión ejecutándolo. Guardar y correr. Escriba algo. Ya sé que
hola tiene cinco, así que usaremos eso y
tipo de caso mixto hola. Pulse Intro. Y como salida, obtengo la versión en minúscula de esa cadena y el número de
caracteres en esa Genial. Eso resuelve
las tres tareas aquí.
40. Trabajo con cadenas y números: Ahora que has trabajado un poco
con la entrada del usuario, hablemos de trabajar
con cadenas y números. Cuando obtiene la entrada del usuario usando la función de
entrada incorporada, el resultado es siempre una cadena. Hay muchas otras
situaciones en las que se da
entrada a un
programa como una cadena. A veces esas cadenas
contienen números, y necesitan ser
alimentadas en los cálculos. En esta lección,
aprenderás a lidiar con cadenas de números. Y también verás cómo funcionan las operaciones
aritméticas en cadenas y cómo a menudo
conducen a resultados sorprendentes Entonces aprenderás a convertir entre cadenas
y tipos de números. Empecemos en la ventana
interactiva. Prueba esto. Te haré
crear una variable llamada Num. Después le asignaré la cadena
con el número dos en ella. Entonces este es Num con una cadena
literal con dos en ella. ¿Y si usas la
operación plus y dices num más num? ¿Qué hace eso? Quizás ya pensaste en esto que los va a
concatenar juntos. No equivale a cuatro, sino dos y dos, que es 22. Bueno, la cuerda
22, no el número. Si tomaste NUM y
usas el astérix, que es el operador de
multiplicación, y dices: Bien,
multiplica eso Bueno, eso debería ser
igual a diez, ¿verdad? Bueno, en este caso,
va a crear una
cadena con el número dos
repitiéndose cinco veces. Entonces obtienes una cadena
de cinco dos, concatenándolos Usando las cadenas con operadores
aritméticos, ahora puedes decir
que se comporta un
poco diferente de lo que
podrías haber pensado El operador plus puede catenar dos cadenas juntas como
has practicado antes, y el astérix o el operador de
multiplicación de estrellas, crea múltiples
copias Y no importa
si el número está en el lado derecho de la
expresión o en el izquierdo. Digamos que tuviste siete veces entumecido, todavía
ve a NUM como una cadena, y siete solo va
a ser el número de veces que el número
que está dentro de Num, la cadena se
concatena juntos En realidad lo haces con
otras cosas, ¿verdad? Podrías saludar cinco veces. Una cosa que puedes hacer es, digamos que dijiste la cadena de 12 multiplicada por la
cuerda de tres. Entonces
te daremos un error de tipo. No se pueden multiplicar estos dos juntos
porque dice que no
se puede multiplicar una
secuencia de tipo string. Entonces la secuencia de la que está hablando es la
cadena uno, dos, que es una secuencia
de dos caracteres, y luego tratando de
multiplicarla por tres, que es una cadena no entera. Entonces esto no funciona. Está
levantando un error de tipo. Y de igual manera, ¿y si
tomaras la cadena de tres y trataras de agregarla
al número tres por sí misma? Da otro tipo
de error de tipo. Dice que solo se puede
concatenar cadena, no un int a una Si un objeto a ambos lados
del signo más es una cadena, entonces Python intenta realizar la concatenación de
cadenas Sólo funcionará
además si ambos
objetos son números. Tendrías que
convertir primero esa cadena tres en un número
antes de poder agregarla a tres. Veamos cómo hacer eso. Entonces, ¿qué haces con todas estas cadenas que
preferirías que fueran números? Vas a usar algunas funciones
integradas para eso. La función INT
convierte objetos en números
enteros o
también se conoce como enteros. A veces vas a
querer que los objetos se
conviertan en números que realmente
tienen decimales. En ese caso, querrás
usar la función flotante incorporada. Vamos a probar estos.
Para probar esto, regresa a Idle y
vas a crear un nuevo archivo. Puede usar el menú
desplegable de archivo y Nuevo o puede usar
el
comando de tecla de Comando más N o Control más N en Windows
para abrir una ventana de edición. Por aquí en la ventana de edición, creamos un objeto Num. Y aceptará la
entrada de un usuario. Y esta es la pronta. Estás diciendo que ingrese un
número para que se duplique. Cierra eso. Entonces la función de entrada incorporada
va a provocar esto, y luego cualquiera que sea
el valor que escriba se asignará
a la variable NUM Entonces para crear NUM duplicado
dirás que NUM se
multiplica por dos. Después la salida de impresión. Genial. Adelante y guarda eso. Yo lo llamaré doble
o doble punto pi. Y otra vez, solo
guárdala en mi escritorio. En este caso, si presionas
F cinco para atropellarlo aquí, te está pidiendo que se duplique un
número. Y voy a decir, Oh, seis, por favor. Oh, ¿ves mi error? He creado una variable con
el nombre equivocado aquí. No volví a usar el nombre
correcto, así que necesito
cambiarlo aquí o cambiarlo ahí. Entonces voy a cambiarlo aquí o cambiarlo allá y ahorrar. Entonces un pequeño
problema de error de nombre. Todo bien. Ahora que lo he guardado,
podemos ejecutarlo de nuevo. Bien. Esta vez ahora
puedo escribir seis. En lugar de conseguir seis
veces dos de 12, me dan 66. Entonces seis y seis porque está
haciendo eso para dos cuerdas. Entonces tenemos que
averiguar cómo cambiar esto. Abre una nueva ventana de concha aquí para limpiar un poco
las cosas. Puedes seguir adelante en el tuyo. Yo sólo quiero no tener
tanto mecanografía en la parte inferior. Entonces, ¿cómo se puede trabajar con esto? Bueno, antes estábamos tratando con
el número seis. Lo que puedes hacer, de nuevo, en lugar de simplemente trabajar con
el número seis por sí mismo como una cadena es que puedes convertir una cadena como seis
en un entero. Y puedes ver que INT
convertirá eso en un valor
numérico real de seis aquí. No tiene las
comillas alrededor como
un literal de cadena. INT significa entero y convierte objetos en números enteros, mientras que float lo
va a convertir un número con
un punto decimal. Entonces, si tuviera que usar flotador
para seis, verá 6.0. Bien, entonces, ¿qué tenemos que hacer? Bueno, lo que podemos
hacer es convertirlo aquí y decir INT por el número. Esta es una solución. Vamos a probarlo. Así que
solo lo volví a guardar. Si presiono F cinco para ejecutarlo, Oh, esta vez,
digamos 12. Genial. Ahí, 12 multiplicado
por dos es 24. Pero y si quisiera escribir, no
sé, 2.5. Bueno, entonces
necesitaríamos que estuviera a flote. Y no estaría mal si
esto fuera 12 punto oh. Entonces tal vez sería más seguro dependiendo de lo que
queramos escribir. Un poco más flexible
para usar flotador en su lugar. Entonces voy a hacer eso, y vamos a ejecutarlo después de ahorrar. Ahora bien, si fuera a, como
dije, tipo 2.5, Ups. Olvidé cambiar el
INT para flotar aquí. ¿Notaste mi error? Sí. Ahora,
volvamos a correr en el tipo 2.5. Diré 5.0. O incluso si volviera a
ejecutarlo y escribir 12 puntos oh o
incluso 12 por sí mismo, volverá
como punto flotante. ¿Por qué usamos float
en lugar de INT? Si le diste a la función
INT incorporada algo
que no está en la base diez, como si dijeras 2.5, se enoja un poco. Dice que es un literal
inválido para INT con este
requisito de base diez. Entonces aunque dijeras 12 punto oh, obtienes el mismo tipo de error. Así que float te da
mucha más flexibilidad, dependiendo de la cuerda que
estés poniendo en ella. A veces necesitas convertir
un número en una cadena. Para hacer eso a la inversa, también
hay una función para ello. Déjame darte un ejemplo. Digamos que vamos a volver a hacer
alguna concatenación. Digamos que tenemos una variable
llamada el número manzanas, y actualmente es cuatro. Estás súper hambriento y dices, voy a comer. Después concatenar el número de manzanas a otra cadena
con manzanas en ella Imprima eso
automáticamente e inserte el número. Bueno, sólo se puede
concatenar una cadena, no un entero a una Como la variable num
apples es un número, Python no puede
concatenarlo con la otra Necesitas convertir el número entero de
manzanas Num en una cadena, y ahí es donde usamos
la función STR incorporada. Al igual que INT y float, hay una función incorporada STR que devuelve una
versión de cadena de un objeto. Y aquí puedes
agregar la función
STR incorporada que toma un objeto y
lo pone en una cadena. Genial. A ver si eso funciona. Sí. Eso funciona muy bien. Lo que es genial es que la función STR
incorporada en
realidad puede manejar expresiones
aritméticas justo dentro de ella Entonces digamos que tenías un
total de manzanas que eran cuatro. Y estos son cuantos has comido
hasta ahora, que son dos. Así que hemos asignado dos variables, manzanas
totales al entero cuatro y manzanas consumidas
al entero dos. Y quieres crear
una cadena que diga que solo el espacio puede catenar. Y esta vez, te estás
convirtiendo a una cadena. Y vas a
decir el total de manzanas
menos las manzanas que
se han comido y concatenar eso para mostrar el número
de manzanas que quedan Yo para que pueda hacer esa resta
justo ahí dentro Veamos algunos ejercicios
adicionales para que practiques con estos. Ejercicio uno. Cree una cadena
que contenga un entero, luego convierta esa cadena en un entero real usando
la función INT incorporada. Prueba que tu nuevo
objeto como un número multiplicándolo por otro número y
mostrando el resultado. Ejercicio dos. Vuelva a probar el ejercicio
anterior, pero use un número de punto flotante y la función flotante incorporada. Ejercicio tres. Intente crear un objeto de cadena
y un objeto entero. Luego muéstralos
uno al lado del otro con una sola impresión usando
la función string. Ejercicio cuatro. Bien. En este,
vas a usar input dos veces para obtener dos
números diferentes de un usuario, luego multiplicar los números juntos y mostrar el resultado. La impresión debería verse
algo así. Puedes encontrar las soluciones
a estos ejercicios y el código en los
archivos de recursos de esta lección. A continuación,
vas a aprender a agilizar tu función de
impresión.
41. EJERCICIO: trabaja con cuerdas y números: Y continuarás con
algunos ejercicios de entrada más. Este se llama Trabajar
con cadenas y números. Escribe un programa que utilice función de
entrada dos veces para obtener
dos números del usuario, multiplica los números juntos
y muestra el resultado Si el usuario ingresa dos y cuatro, por ejemplo, la nueva entrada debe imprimir el siguiente texto. El producto de dos y
cuatro es ocho punto cero. Lo que puedes ver aquí
es que el resultado debe mostrarse como un número de punto
flotante. Y luego ten en cuenta que la función de entrada siempre
crea una cadena que puedes convertir ciertas cadenas en números
reales usando las funciones int
y float, y que puedes
convertir números cadenas usando la función
string STR. Entonces, lo que tendrás que hacer
es la recopilación de entrada del usuario, luego escribir conversión, y luego también un poco de matemáticas y
mostrársela de nuevo al usuario. Pruébalo tú mismo,
y luego si quieres, puedes ver la siguiente lección
donde resolveré la tarea.
42. SOLUCIÓN: trabaja con cadenas y números: He abierto un
nuevo archivo y
anoté un par de notas
para las instrucciones. Quiero obtener dos
números del usuario, multiplicarlos y luego
mostrar el resultado. Esas son las cosas que quiero
hacer en esta multiplicación. En realidad hay,
otro paso ahí dentro. También voy a querer
convertirlos a números. Entonces puedo hacerlo en algún momento, pero necesito hacerlo
antes de multiplicarlos. Y eso es porque en
realidad no se pueden multiplicar dos
cadenas juntas. Eso sólo va
a ser un error. Entonces salto al REPL
solo para mostrarte esto. Si tengo dos cadenas y trato
de multiplicarlas juntas, voy a obtener un error de tipo
que Python no puede multiplicar secuencias por no
int de tipo string. Este es un mensaje muy
descriptivo que solo me dice
que eso no funciona. Pero si
recolectas la entrada del usuario, siempre
va
a ser una cadena, incluso si el usuario escribe un
número. Prueba eso también. Entonces voy a asignar el valor de
retorno de entrada a A. Solo voy a dar
un prompt vacío aquí. Y así el prompt, me incita ahora
a introducir algo Si entro aquí cuatro. Entonces estoy pensando que
estoy ingresando un número. Lo que obtengo como resultado
sigue siendo una cadena. Como puedes ver,
es una clase STR. Se ve así. Entonces, si
estás recopilando la entrada del usuario, siempre
va a
llegar como una cadena. Y entonces si estás tratando de
multiplicar dos cadenas juntas, vas a
encontrarte con un error. Sin embargo, hay un poco
de diversión al lado. Si tuvieras un
programa diferente que tuviera un entero fijo con el que estás multiplicando la entrada del usuario, digamos, entonces si no
haces una conversión de tipo aquí, podrías encontrarte con una salida
que quizás no esperes Tenemos un, que
apunta a cuatro, ¿verdad? Y digamos que el
programa multiplica la entrada de un usuario por 20, ¿verdad Entonces lo que obtienes en ese caso
es una concatenación de cadenas. Python concatena la cadena de
entrada 20 veces. Entonces obtienes 20 cuatros
como salida, lo que sería un resultado de
cálculo extraño para hacer cuatro veces 20 Entonces, para evitar eso, es
necesario convertirlo explícitamente. Podrías, por ejemplo, convertir A en un entero y
luego hacer la multiplicación, y eso funciona, ¿verdad Eso funciona correctamente, y
las matemáticas vuelven a tener sentido. Eso es solo para tener
en cuenta que
necesitarás convertir
estos números. Con eso, comencemos
recopilando los dos
números del usuario. Volvamos a nuestro editor
y vayamos a la línea dos. La letra A es entrada. Ahora abra paréntesis entre comillas
dobles y escriba. Ingresa un número. Dales un prompt para que
sea un poco más legible, y luego lo mismo otra
vez para otro número. Diré que B es entrada. Luego escribe, Ingresa otro número. Entonces quiero convertirlos en
números para poder multiplicarlos. Lo haré en un solo paso. Entonces voy a convertir a flotadores
porque en la salida, quiero tener flotadores Entonces diciendo explícitamente
convertir tanto A como B a números de punto
flotante y luego asignarlo a una
variable llamada producto Aquí estoy haciendo la
conversión y la multiplicación en un solo paso Y luego finalmente, necesito
mostrar el resultado. Voy a hacer esto solo
usando la concatenación de cadenas, que, como verás,
va a ser bastante larga Probablemente
ya te hayas encontrado con una mejor manera de hacerlo. Pero por ahora,
solo sigamos con concatenación de cadenas
porque también quiero mostrarte algo parecido a multiplicación que no
funciona con No se puede hacer concatenación si no ambas son Entonces
para poder mostrar este mensaje, el producto de aquí, solo
puedes usar la
variable que he recopilado porque A
es una cadena, ¿verdad? Sólo lo estoy convirtiendo en la multiplicación a un número de
coma flotante Entonces A todavía apunta a la cadena
original ingresada. Entonces puedo decir que el
producto de A y B, es Y ahora, si solo agrego el producto
aquí sin ninguna conversión, volvería a encontrarme con un error. Probemos eso
en la consola. Entonces aquí lo que estoy tratando de hacer es concatenar una cadena y
un número de coma flotante Entonces lo marcó por aquí. Voy a decir, A, esta es mi cadena más un número de
coma flotante, 0.2. Y puedes ver
que Python vuelve a un error de tipo donde te dice
que
solo puede concatenar cadenas a
cadenas y no un
float a una Entonces, para poder poner producto en la cadena que
estás concatenando aquí, tendrás que
convertirlo explícitamente en una cadena usando la función STR y pasando
producto como argumento Con eso, saldrá bien. Y puedes seguir
añadiendo también otra cadena más, que en este caso, es solo un punto. Todo bien. Entonces este es un camino muy, muy largo de
armar este mensaje, básicamente solo usando la concatenación de
cadenas Pero vamos a darle una oportunidad
y ver si funciona. Lo guardo y lo ejecuto. Ingresa el número dos, ingresa
otro número cuatro, y el producto de
dos y cuatro es 8.0. Entonces estoy obteniendo la salida
esperada. El resultado de la entrada parece un número de
punto flotante. Pero aquí en la llamada de impresión, estás convirtiendo en una cadena antes concatenarla
con otras piezas de la cuerda que
estás ensamblando Si has usado el formato de punto o una cadena F para
el mensaje final, también es una excelente manera de hacerlo. Entonces, si estás atascado con la
concatenación de cadenas hasta ahora, tendrás la oportunidad de
probar algo nuevo
43. Métodos de formato de Print(): Hola a todos, y
bienvenidos de nuevo al curso. En esta lección, dedicaré un poco más de tiempo a
cómo formatear cadenas que
puedas crear mensajes
más complicados dentro de tu función de impresión. En primer lugar, puedes concentrar dos cuerdas para
crear una tercera. Hello plus world
resultaría en una tercera cadena
llamada Hello World. Hay que tener un poco de
cuidado en Python. Esto en realidad no
edita la cadena. Crea una tercera cadena
nueva. Esto puede hacer que la
manipulación de cuerdas sea un poco intensiva de memoria
y lenta en el rendimiento. A lo largo de los años, Python ha agregado varias formas de
manipular cadenas El primero es similar a C, apoyando el
porcentaje a notación. El segundo tiene marcadores de posición
usando corchetes, y el tercero, que es bastante
reciente, es una cadena F. Ya discutimos
estos tres métodos cuando aprendimos sobre cuerdas. Ahora te voy a mostrar cómo incrustar estos métodos de formato
en la función de impresión. Generalmente se recomienda
usar la cadena F
tanto como sea posible, pero todavía hay un
par de casos estilo
C podría ser más importante. Te voy a mostrar cómo usar estos dos en la terminal ahora mismo. Voy a empezar
creando algunas variables aquí. Nombre de pila. Edad del apellido. Y el primer
ejemplo de formato es porcentaje S. El porcentaje como en esta cadena es
un marcador de posición para donde se
va a inyectar el contenido El porcentaje al final de la
cadena dice qué inyectar. En este caso, el valor de los
apellidos se
pone en la cadena. Se puede poner múltiples
por ciento dentro de un formato. Para hacer
eso, debes pasar una turpla a la cadena
en lugar de un solo valor Observe que si quiere
usar el apellido dos veces, tiene
que usar el 2% S, uno por cada instancia del apellido y
la variable dos veces dentro de las tuplas Por ciento S dice que
vas a estar metiendo una cuerda. Por ciento D dice que
vas a estar poniendo
en un entero. ciento F es para flotadores. Escriba en. El número cortó 3.14. ¿Por qué es eso? Vamos a explicar aquí. El primer número es el número mínimo
total de dígitos que debe contener la
cadena. El número siguiente es el decimal. Se refiere a cuántos números mostrar más allá del punto decimal? Por eso el resultado es 3.14. Entonces, si tuviera que
cambiar esto a tres, mostraría 142. Si lo hago un
número grande, por ejemplo, ocho, llenará
el resto de estos
números con ceros Ahora cambiemos
el primer número. Digamos 20 y
ejecutamos el programa. Observe cómo llenamos un
montón de espacios en blanco. Ahora, recordemos cómo
convertir a una cadena. También podríamos usar un signo de
porcentaje R, que hace lo mismo
con el signo de porcentaje S. Hagamos otro ejemplo usando
múltiples signos porcentuales. Python los tomará en orden. El primer lado porcentual se
asignará
al primer ítem, y el segundo signo porcentual se
asignará
al segundo ítem. Bien, ahora hagamos el
mismo ejemplo usando el segundo tipo de método de formato. Y voy a usar
corchetes aquí y poner algunas
variables arbitrarias de nivel. Por ejemplo, X cierra
con comillas y luego un punto y llama al método
format en esa cadena. Después la variable X y
mi nombre como cadena. Bonito. Cambiemos ese código, agregando la siguiente frase
y una segunda etiqueta de variable. Por ejemplo, ¿por qué? Python tres introdujo el
concepto de una cadena F. La F delante de la cadena indica que se trata de
una cadena de formato. Ahora bien, los corchetes indican
dónde poner la inyección. Esto es lo mismo que
el primer ejemplo. Este mecanismo me parece
mucho más fácil de leer, sobre todo si
tienes múltiples variables. Las cadenas de formato
admiten el cálculo. También admiten el formateo. Vamos a abrir una nueva ventana shell, importar el primer módulo math, que proporciona acceso a funciones
matemáticas. Dentro de los corchetes, pones dos puntos, indicando
tu mecanismo de formato. Vaya, se me olvidó definir
la variable edad. El 0.2 F es similar
al 0.2 F anterior, lo que nos da la edad de Alan
Turing veces Pi a dos dígitos significativos. Genial. Asegúrate de tomarte tu tiempo y ver
la conferencia cuidadosamente. Si tiene alguna pregunta,
publíquelas en el panel de discusión de preguntas y respuestas.
Gracias por mirar.
44. Encontrar una cuerda en una cuerda: Ahora que has
averiguado cómo
optimizar tus impresiones
con cadenas F, está atado para encontrar una
cadena dentro de una cadena. Uno de los métodos de
cadena más útiles es find. Como su nombre lo indica, este método permite encontrar la ubicación de una cadena
dentro de otra cadena, comúnmente conocida
como subcadena Para usar find, lo tachas al final de una
variable o un
literal de cadena con la
cadena que quieres encontrar escrita entre El valor que
devuelve Find es un índice de la primera aparición de
la cadena que le pasas. Echemos un vistazo a eso
en la ventana interactiva. Empecemos con una frase. Entonces la frase variable
va a ser asignada
al literal de cadena. La alarma contra incendios sigue sonando. Si tuvieras que usar
el método fine en lugar de los corchetes, eliges cuál
es la subcadena que estás
buscando dentro de la cadena Entonces en este caso,
vamos a decir, busca fuego. Vamos a escribir. Frase en finden, fuego entre comillas dobles, paréntesis
cerrada Devolverá el índice de la primera aparición de la
subcadena dentro de la cadena Entonces en este caso, es
el cuarto punto índice. Entonces aquí hay cero, uno,
dos, tres, cuatro. Sé que es la quinta
posición, pero de nuevo, a
partir de cero, cero, uno, dos, tres, cuatro. Ahí es donde empieza esto. Genial. ¿Y si la subcadena no existe dentro de la cadena Vamos a escribir frase punto
encontrar en una palabra aleatoria. Obtendrás un retorno
de negativo, es
decir, que no lo encontró. Entonces como nota, no olvides que requiere que
el caso coincida. Entonces si le doy una F para fuego, devolverá una negativa. Probemos otro ejemplo. Yo lo llamaré una nueva frase. Y será igual a que ponga una cuerda
dentro de tu cuerda. En este caso particular, cuando dices nueva
frase no encuentras, ¿qué obtendrás
si escribes cadena? Entonces en este caso, es solo
la primera ocurrencia. No devolvió
el segundo. Eso devuelve el índice solo
de la primera ocurrencia, comenzando desde el
inicio de la cadena. Y tenga en cuenta, si tuvieras una cadena, digamos de un número de teléfono. Si estás tratando de
encontrar el número cuatro, como en este caso, un entero, te
da un error. Está diciendo aquí
en la retroalimentación, es un error de tipo. El valor tiene que ser una cadena, no un entero que
va a buscar. Entonces requerirías
encontrar una cadena literal de cuatro y está
ahí mismo en el índice cero
inicial. A veces es posible
que desee reemplazar todas las apariciones de una cadena en particular
dentro de una cadena. Dado que find devuelve el índice de la primera aparición
de una subcadena, no se
puede utilizar fácilmente para
realizar esta operación Pero las cadenas tienen un método
replace que reemplaza cada instancia de una subcadena con otra cadena Al igual
que este método find, tack replace al final de una variable o un literal de cadena En este caso, sin embargo, es
necesario poner
dos cadenas dentro los paréntesis y
separarlas con una coma Primero sería la subcadena
que quieres encontrar, y la segunda es una
cadena con la que
quieres reemplazar
las corrientes Ido de la subcadena Probemos eso en
la ventana interactiva. Así que al igual que find, etiquetas el método replace al final de la variable
o el literal de cadena. Probemos eso. Digamos que teníamos una
variable llamada Mi historia. Bien. Y en este caso, querías reemplazar
usando dot replace. Y puedes ver aquí
dice, poner en el viejo, es
decir, la subcadena
que estabas buscando para ser reemplazada
por la nueva cadena Entonces voy a decir, busca la verdad
y sustituirla por mentiras. Ahora bien, ¿qué tan genial es eso? Ahora bien, lo
que pasó con mi historia en sí, tal vez
recuerdes que
las cuerdas son objetos inmutables, y reemplazar no alterará
la variable my story Y usar el método replace no altera la
cadena de mi historia. Si inmediatamente
escribes mi historia en la ventana
interactiva, verás que si querías
cambiar el valor de
la cadena de mi historia, necesitas reasignarla Entonces, nuevamente, un poco de repaso
sobre esto, dirías, me gustaría
asignar mi historia a, en este caso, este reemplazo Entonces, dirías, Digamos que
queremos hacer lo mismo, intercambiando la verdad por mentiras. Entonces, ¿qué hay dentro de mi historia? Verás aquí que
ha sido modificado y reasignado. Reemplazar reemplazará
cada instancia de la subcadena con
el texto de reemplazo ¿Y si tuvieras otra
cadena que se
le asignó a algunas de las cosas? Entonces aquí está el texto, y querías una nueva
versión del texto. Y querías hacer un
par de reemplazos. Digamos que querías
reemplazar algunos de con todos Pero también
querías reemplazar
cosas por cosas. Bueno, tendrías que
hacerlas una a la vez. Entonces Nuevo texto dice
todas las cosas, y se podría decir:
Bien, bueno, nuevo texto. También quiero hacer nuevo texto no reemplace cosas cosas coma cosas. Entonces ahora has logrado ambas cosas. El método de reemplazo reemplaza cada instancia de una subcadena
particular con un texto de reemplazo Ahora, si desea reemplazar múltiples
subcadenas diferentes dentro de una cadena, entonces necesita usar
reemplazar varias veces Es momento de
desafiarte a ti mismo con algunos nuevos
ejercicios de revisión. Ejercicio uno. En una línea de código, mostrar el resultado
de intentar encontrar la subcadena minúscula A
en la cadena de tres A. Tenga en cuenta que el resultado debe
ser negativo Ejercicio dos, reemplazar
cada ocurrencia del carácter S por X. En esta cadena, alguien le
dijo algo a John. Ejercicio tres, escribir un programa que acepte la entrada del usuario con entrada y luego
muestre el resultado de intentar encontrar una
letra en particular en esa entrada. Puedes encontrar las soluciones
a estos ejercicios y el código en los
archivos de recursos de esta lección. Gracias por mirar.
45. EJERCICIO: encuentra una letra en una cadena: Tu siguiente ejercicio se llama
buscar una letra en una cadena. Aquí deberías escribir
un programa que acepte entrada
del usuario con la
función input y muestre el resultado de intentar
encontrar una letra
en particular en esa cadena de entrada
usando dot find. Qué letra no se define aquí. Entonces parece que esta
va a ser otra entrada, probablemente del usuario, o tal vez simplemente no sea una
muy buena descripción. De todas formas, así que voy a añadir esta descripción que el
usuario debería poder introducir tanto la palabra
como la frase y luego también qué letra
buscar en esta oración. Bien, pruébalo y luego
pasa a la siguiente lección.
46. SOLUCIÓN: encuentra una letra en una cadena: Entonces la tarea hablaba de
escribir un programa, que generalmente es un indicador que debes usar
un script para ello. Así que de nuevo, he
abierto un nuevo guión y luego lo puse para que me gusten notas cortas. Quiero recopilar entrada y luego mostrar los resultados de la
búsqueda de una letra. Empecemos por recopilar insumos y luego
guardarlos en algún lugar. Entonces mi texto va a
ser ingresado ingresa una letra. Entonces quiero mostrar este resultado de
buscar una letra en ese texto. Entonces quiero decir texto punto Find. Y luego una carta. ¿Cuál es
la carta? No lo sé. Podría buscar solo, como, una letra codificada, por
ejemplo, X aquí dentro y luego imprimir
el resultado de eso. Vamos a darle una vuelta a eso. Lo guardaré y lo ejecutaré. Ahora puedo ingresar un texto. Salvaré a Virginia y obtendré menos uno porque no
hay X en Virginia. Ahora bien, si vuelvo a ejecutar el
script e intento con un texto
que contenga una X, por ejemplo, Xavier,
entonces obtengo cero. Por lo que encuentra X en
la primera posición. Así que eso funciona con X, pero no creo que sea genial. Si siempre va a buscar X, tal vez
sea un poco aburrido. Entonces, en cambio, voy
a cambiar esto para permitir que el usuario también ingrese qué
carácter buscar. Entonces voy a crear otra variable que llamaré carácter. Y esa será otra
llamada a la entrada. Y luego voy a decir Enter
Character para buscar. Por último, también necesito reemplazar el argumento a texto
fino por carácter. Lo que significa entonces que será
cualquiera que sea la entrada del usuario. Técnicamente, esta entrada del usuario podría ser más de
un solo carácter. Dot find funciona con subcadenas, por lo que podría ingresar
más de un carácter como subcadena para buscar Si Python encuentra la subcadena, entonces devuelve el índice
del comienzo de donde la subcadena
aparece primero en la Pero para este ejercicio, no
tienes que
preocuparte por nada de eso. Asumirás que tus
usuarios son buenos ciudadanos y seguirás las instrucciones para ingresar
solo un solo carácter. Vamos a ejecutar eso
otra vez. Ingresa un texto. Entonces ahora puedo decir Samantha
y buscar A. Y entonces se puede ver que lo encuentra en la posición
índice uno Entonces, en la segunda posición, que es la posición índice uno. Y volvamos a hacerlo. A ver si sigue
funcionando como se esperaba. Si digo Samantha y
busco X, me sale menos uno. Y una prueba más. Si escribo Samantha
y busco T, entonces puedes ver que obtengo cinco, que es la posición del índice de la primera T que Python
encuentra en la cadena de entrada Todo bien. Así que eso funciona. Limpiemos el guión, eliminemos los comentarios, y
terminamos con este ejercicio.
47. Cuerdas y métodos de cuerdas (RESUMEN): Bienvenidos de nuevo, todo el mundo. En esta sección,
aprenderás a manipular cadenas
con métodos de cadena. Aprendes a trabajar con entrada
del usuario y a lidiar con
cadenas de números. Junto con eso,
aprendiste un puñado de formas de formatear
cadenas para imprimir. Además, cubrimos dividir, concatenar y unir
cadenas en Python Y en el camino,
también aprendiste sobre cadenas
F, cadenas de líneas múltiples, cómo indexar y rebanar cadenas, cómo las cadenas son inmutables, y también aprendes a descubrir
métodos adicionales usando inactivo En la siguiente sección,
vamos a
practicar el trabajo con
cadenas y métodos de cadena. Haciendo todo eso, practicarás
los conceptos que has aprendido en la sección
y para ayudar a que se peguen. Quiero dar las gracias y enhorabuena por
completar la sección.
48. PROYECTO: crea un programa de impresión de recibos: Bienvenido a tu primer proyecto. Estaremos creando un programa de impresión de
recibos muy básico. Para la semana, tal y como hemos
aprendido sobre las variables, los operadores en
manipulación de cadenas
estarán utilizando estas habilidades
para crear este programa. Siempre es bueno imaginar un diseño de lo que
intentas construir. Para proyectos más grandes,
querrás crear un diagrama de flujo o algún tipo de documento de diseño
que te mantenga encaminado. De esa manera, no te
alejas del resultado pretendido. Para nosotros, estaremos construyendo un pequeño programa de
impresión de recibos con los conceptos que hemos aprendido en los
que la salida se
verá como la siguiente. Entonces comencemos. Siempre
que comiences un proyecto, siempre
debes entender por
dónde empezar. No importa el tamaño
del proyecto, existen ciertas dependencias. Al igual que construir una
casa, debes tener una base antes
de poder poner un techo. Comencemos a definir las variables
con las que trabajaremos a lo largo de este programa. A es bueno
implementar buenas técnicas de codificación al escribir un programa Python. Esta técnica introducida
dentro de su bloque es la capacidad de declarar múltiples variables en una misma línea. Para ello, separamos los nombres de las variables y
sus valores asociados por. Al observar las
dos primeras variables declaradas, el valor de las naranjas se
guardará con el nombre de variable P
un nombre de guión bajo y el valor de Esto se guardará
en el
nombre de la variable P un precio de guión bajo En lugar de escribir seis líneas, ya
hemos reducido nuestro
programa a la mitad. Cuantas menos líneas usemos, mejores
la mayoría de las veces. A continuación, definamos las
variables que
usaremos para la compañía en
la parte superior del recibo. Yo como ejemplo, hemos dejado el nombre de la compañía
todo en minúscula para que puedas usar un
método de manipulación de streaming para solucionar este problema Por último, declaremos
el mensaje que
emitirá al usuario en la
parte inferior del recibo. Como podemos ver en
el diseño que hemos presentado al
inicio del proyecto, tendremos que sacar un
borde en la parte superior e inferior Empecemos con un borde superior. Todo lo que estamos tratando de hacer es
imprimir 50 estrellas seguidas para Tom Border en lugar de
hacer 50 declaraciones impresas. Simplemente podemos multiplicar la cadena por el
número que queramos. Ya hemos definido
nuestras variables en la empresa por las líneas
anteriores, así que vamos a mostrarlas. Los caracteres de escape se leen en el carácter de barras
invertida definitorias Lo que venga después de
esa diagonal invertida es lo que
interpretará la computadora En las tres primeras declaraciones de
impresión, usaremos la diagonal invertida
T para la sangría de tabulación Cuando usamos los dos
caracteres de escape en una fila para
centrar dentro de nuestra salida, ahora vamos a crear un divisor Como hemos impreso
nuestro borde superior, multiplicaremos el símbolo
igual por 50 para crear la
misma línea de ancho. Esto dará la apariencia
de secciones separadas. Ahora queremos crear
un encabezado antes enumerar el nombre y el precio de cada
producto. Esto se puede hacer simplemente usando nuestros caracteres de escape
para sangrar Debido al tamaño de
los nombres de encabezado, solo
queremos usar una sola
pestaña antes de cada encabezado. Ahora podemos seguir adelante y generar una fila para la información de cada
producto. Bien. Bien. Estamos usando estilos
similares en las declaraciones
impresas
anteriores para centrar el título de
cada producto, precio y en sus
respectivos encabezados. Trate de no confundirse todos los símbolos con
la cadena de impresión, ya que simplemente puede
dividirlos en una pestaña, seguido de que la primera variable esté formateada en la cadena, seguida de dos pestañas, seguido de un signo de $1
para que el precio parezca moneda y seguido en la segunda variable
formateando en la cadena. Esto completa la
sección para nuestros artículos, así que pongamos en otro divisor de
sección. Al igual que la
sección de productos. crear un encabezado
para nuestro total, pero también queremos
centrarlo debajo de la columna de precios, como en la sección de productos. Para ello,
necesitaremos tres pestañas. Ahora que tenemos
nuestro encabezado total alineado con la
columna de precios en los productos, podemos importar nuestro total
a la siguiente línea. Antes de poder
imprimir un total, sin embargo, primero
debemos
calcular el total, que es la suma de
todos nuestros productos. Definamos una variable llamada total, y luego la
imprimiremos. Nuevamente, hemos seguido adelante
y agregamos tres pestañas más signo de
$1 para que el
valor total aparezca como moneda. Ahora agreguemos un borde de sección. Y. Para mostrar el mensaje de
agradecimiento final, nuestro diseño está ligeramente
más
espaciado que cualquier otra sección, por lo que necesitaremos agregar un par de líneas
nuevas para
darle un espacio adicional. Nuestro mensaje ahora está centrado,
y estamos listos para seguir adelante. Para terminar el programa
de impresión simple, necesitamos tirar un
borde inferior para estética. Ejecute el programa. Observe que el precio de nuestro tercer producto, aceite de
oliva está en centrado
con los otros dos productos. Así que vamos a eliminar una pestaña. Ejecute de nuevo el programa. Y funciona muy bien.
Enhorabuena. Por simple que pueda ser,
es un hito enorme. Intenta romper el programa. Siempre animo a
los estudiantes a intentar romper programas porque te
enseñará a arreglarlo. Ahora tengo una pregunta
desafiante. En el proyecto,
terminamos creando bordes por encima y por debajo de la
información impresa. Intente agregar un borde de estrella en los lados también ahora
en los bordes laterales. La solución siempre está
dentro de los archivos de recursos. Si tiene alguna pregunta o alguna sugerencia sobre cómo
mejorar el programa, házmelo saber.
Gracias por mirar.
49. Números y matemáticas (descripción): Las computadoras usan
números para representar todo tipo de
información a partir de texto, imágenes, música e incluso videos como el que estás viendo
actualmente. Casi todo es un número desde la perspectiva de la
computadora. Por esta razón, los números y la capacidad de
manejarlos juegan un papel importante en todos los lenguajes de programación,
incluido Python. Quizás por eso también
algunos principiantes creen que
necesitan fuertes
habilidades matemáticas para convertirse en programadores Sin embargo, ese es un error
común. En realidad, tus conocimientos
de matemáticas en la
escuela primaria deberían ser más que
suficientes para comenzar a codificar. El nivel real de familiaridad
matemática dependerá de
tu rol específico en la aplicación
que estés construyendo Por ejemplo, era menos
probable que necesitara conocer álgebra
lineal o estadística como desarrollador web que
como científico de datos En este curso, obtendrá una visión general de los tipos
numéricos en Python, creando enteros, flotantes y números
complejos, realizar
operaciones aritméticas Aprende sobre el error de representación en
punto flotante, trabaja con funciones matemáticas
y métodos numéricos, formateo y muestra
números como cadenas. Bien, es hora de
que comiences teniendo una visión general de los tipos numéricos
disponibles en Python
50. Tipos numéricos en Python: En esta lección,
obtendrá una vista panorámica
de los
tipos numéricos disponibles en Python. Python tiene tres
tipos numéricos integrados en la sintaxis, lo que significa que puede comenzar usarlos de inmediato
cuando se ejecuta inactivo. Los tres tipos numéricos
de nativo de Python son enteros o
números enteros como tres
negativos, cero o 42 Python los llama It para abreviar. Luego están los números de
coma flotante, que podrían tener una parte
fraccionaria, como 2.32
o 3.14 negativos, Estos se conocen como carrozas, y aprenderás por qué
se llaman así Por último, hay números
complejos compuestos por las partes real
e imaginaria. Estos son un poco más avanzados y rara vez se utilizan en la práctica. Entonces cubrirás
números complejos en una lección posterior. El tipo de datos correspondiente
en Python se llama complejo. Vale la pena mencionar que los tres tipos numéricos
integrados en Python están firmados, lo que significa que pueden almacenar valores
tanto positivos como
negativos junto con el cero neutro. Adicionalmente,
los enteros no tienen un valor máximo o mínimo, el cual solo está limitado por la memoria disponible
en su computadora En contraste, los números de
coma flotante y sus
primos numéricos complejos tienen un rango fijo de valores así
como precisión Sin embargo, son lo suficientemente
grandes como para
acomodar la mayoría de los casos de uso de la vida
real. Estrictamente hablando, Python tiene
otro tipo numérico, que es el tipo especial
de tipo de datos enteros. Se llama booleano
o Bool para abreviar, y solo puede almacenar uno de
dos valores, true Estos valores se pueden representar como uno y cero, respectivamente. Sin embargo,
realmente no deberías pensar en los booleanos como números porque
se usan para un propósito diferente, que aprenderás en un curso de video separado
sobre la lógica condicional En la mayoría de las aplicaciones, usarás enteros y números de
coma flotante de la
manera más exclusiva porque cubren la más amplia gama de problemas a la vez que son
los más eficientes Sin embargo, una excepción notable son las operaciones financieras
en valores fraccionarios, que requieren precisión exacta, especialmente cuando se trabaja con grandes y pequeñas cantidades
al mismo tiempo Dado que los números de coma flotante
tienen una precisión limitada, su
uso para representar montos
monetarios conduciría inevitablemente a errores de redondeo
significativos Nunca debes usar flotadores para representar datos
financieros en aplicaciones del mundo
real
a menos que no te importe perder información
sobre el dinero de tu cliente Un patrón común para representar cantidades
de dinero es
almacenarlas como enteros en términos de
la unidad monetaria más pequeña, como centavos, y luego
convertirlos de nuevo a dólares Sin embargo, ese enfoque no
funcionará en múltiples monedas que
podrían usar diferentes unidades. Por ejemplo, $1 tiene
exactamente 100 centavos, mientras que un bitcoin se puede subdividir en
casi cualquier fracción Para abordar el
problema con los flotadores, Python proporciona algunos tipos numéricos
adicionales a través de estos módulos de
biblioteca estándar, que
aprenderá en otro momento No necesitarás esos tipos
numéricos extra durante este curso, pero vale la pena
conocerlos. El primero se llama
decimal porque
almacena internamente números usando el sistema de posición
decimal en lugar del binario,
como la mayoría de los otros tipos numéricos. Aparte de eso, se comporta principalmente como un número de
punto flotante A diferencia de un número de
coma flotante, sin
embargo, tiene una posición arbitraria
pero finita, que por defecto es
28 decimales Entonces debes decidir adelantado cuántos dígitos
te gustaría conservar Además, mientras que un
número decimal funciona con enteros, no
puedes mezclarlo con números de
coma flotante fácilmente Si eso es un requisito, entonces puedes usar
otro tipo numérico que viene con Python
llamado fraction. Representa un número
racional o un cociente de dos
enteros como Las fracciones tienen una precisión
infinita, lo que permite representar
números exactamente, incluso si tienen una expansión
decimal o binaria recurrente expansión
decimal o binaria sin ninguna pérdida de
información debido al redondeo Ahora que tienes una idea general sobre los
tipos numéricos en Python, es el momento de echar un vistazo
más de cerca a los enteros.
51. Enteros: En esta lección,
profundizarás en uno de los
tipos numéricos más comunes en la programación, el tipo de datos enteros, que Python llama Int. Si quieres seguir adelante en una sesión interactiva de
intérprete de Python, entonces sigue adelante y
comienza inactivo ahora. Un entero es un número entero
sin decimales. La forma más rápida de crear un entero en Python
es creando un literal entero que consiste dígitos que aparecen
literalmente en tu código Por ejemplo, escribir 42 e
inactivo crea un entero. Se puede verificar el tipo
de tal literal, que Python se refiere como It porque los enteros
son números enteros No vienen con
una parte fraccional. Entonces, tan pronto como incluyes el punto decimal
en tu literal, ya no
creas un entero. Incluso si la parte fraccionaria de tu literal es igual a cero, como en este ejemplo, el resultado será un número de coma flotante, que aprenderás sobre
ello en la siguiente lección Por otro lado,
un literal entero puede incluir el signo menos. Esto crea un
número entero negativo. Adicionalmente, puedes delimitar grupos de múltiples
dígitos colocando un solo carácter de subrayado en
cualquier parte de tu literal
para que sea un número grande, un poco más fácil No hace ninguna diferencia para Python si usas los
guiones bajos o no, pero escribir un
número con ellos es posiblemente más
legible para Hasta el momento, solo has
visto literales decimales consistentes en los familiares
diez dígitos del cero al nueve Sin embargo, ocasionalmente,
es posible que desee expresar un número usando un sistema numérico
diferente. Debido a que las computadoras usan binarios y a veces algunos
otros sistemas numéricos, Python te permite crear enteros
usando esas alternativas Al prefijar tu literal
entero con una de las pocas bases del sistema
admitidas, puedes cambiar cuántos
dígitos quieres usar Por ejemplo, el número 42 se
puede expresar como uno, cero, uno, cero, uno, cero en el sistema binario. Para decirle a Python que interprete un literal como dígitos
binarios o bits, puedes usar el prefijo B cero. Observe cómo inactivo le presenta nuevamente
el número en el sistema
decimal. Es el mismo número sólo representado de
dos maneras distintas. De igual manera, puede
expresar el número 42 en el sistema hexadecimal utilizando el prefijo cero x
seguido de los dígitos dos A. Tener hasta 16 dígitos a su disposición en el sistema
hexadecimal. Los habituales diez dígitos 0-9 más seis letras latinas A a F. Las letras pueden ser
mayúsculas o minúsculas El último
sistema numérico soportado por los literales de
Python
es el octal,
que tiene ocho dígitos Se puede habilitar un
literal octal con un prefijo 00. De nuevo, se obtiene una representación
decimal del entero creado. Es justo decir que rara vez
necesitarás usar literales
enteros distintos
del decimal predeterminado Sin embargo,
a veces pueden ser útiles. Usar literales enteros
es mejor cuando conoces tus números por adelantado y quieres
incrustarlos en tu código
con una forma literal Sin embargo, los números suelen venir como cadenas de los usuarios que los
escribieron en su teclado De una lección anterior, puede recordar que
puede convertir una cadena un entero llamando a la función
incorporada en Python. Observe las comillas alrededor de 42, que definen un literal de cadena. Lo que se obtiene es el valor entero correspondiente denotado sin las comillas De nuevo, se puede
verificar el tipo
del valor de retorno que
pasa a ser int. Por defecto, la función int
asume que
suministrará una cadena que consta de dígitos
decimales de cero a nueve. Si desea elegir una base diferente para
el sistema numérico, entonces puede pasar de manera óptima un segundo argumento a la
función después de una coma En este caso, está creando un número entero 42 a partir de una cadena de
dígitos binarios 101010 El valor máximo para la base
soportada por Python es 36. Vale la pena señalar que
TI acepta un valor de cualquier tipo de datos,
no solo cadenas. Por ejemplo, puede pasar un número de coma flotante
para truncar su parte fraccionaria Como puede ver, la
función int permite convertir valores de otros tipos de
datos a enteros, lo que podría necesitar para realizar algunos cálculos en números en
lugar de cadenas Cuando llamas a Int sin pasar ningún valor
como argumento, siempre
devuelves cero como resultado. La tercera forma de crear
enteros en Python es a través expresiones como expresiones aritméticas
o llamadas a funciones Aprenderás más sobre
esos en el futuro. Mientras tanto, los literales
enteros deberían ser completamente
suficientes. Todo bien. Ahora ya sabes cómo
crear números enteros en Python usando literales enteros, que puedes representar con
diferentes sistemas numéricos,
incluyendo los sistemas decimales, binarios, hexadecimales y octales En este caso, todas son representaciones
diferentes
del mismo valor. También conoces
la función in, que devuelve cero cuando llamas sin
ningún argumento. De lo contrario, convertirá
cualquier tipo de datos que suministre, como un literal de cadena al
número entero correspondiente Cuando llamas a la función
in con un
número de punto flotante como argumento, truncará
su parte fraccionaria y solo devolverá la
parte entera como un Finalmente, la función in puede opcionalmente tomar
otro argumento, que es la base del sistema utilizado para interpretar una
cadena de dígitos, como 10, uno, 010 en la base dada. A continuación, explorarás los números de punto
flotante, el segundo
tipo de números más importante y Python. Pero antes de eso, tengo un ejercicio en la siguiente
lección sobre enteros. Al trabajar a través de
estos ejercicios, profundizarás tus conocimientos y solidificarás tu comprensión
del lenguaje Python No solo ganarás confianza en tus habilidades de programación, sino que también mejorarás tus habilidades de resolución de
problemas.
52. EJERCICIO: define literales de enteros: Este ejercicio pondrá a prueba
tu capacidad para definir enteros en Python usando
su forma literal Ayudaría recordar
qué son los literales enteros. Como ya
sabrás, un entero es un número entero
sin decimales. Por ejemplo, uno es un
entero, pero 1.0 no lo es. Puede crear un número entero
escribiendo el número deseado. Por ejemplo,
lo siguiente asigna el entero 25 a
la variable num Cuando se crea un
entero como este, el valor 25 se llama literal
entero porque el entero se escribe
literalmente en el código Todo bien. Aquí están sus
instrucciones para el ejercicio. Es necesario escribir un
programa que cree dos variables num
uno y num dos. ambos num uno y
num dos se
les debe asignar el entero
literal 25 millones, uno escrito con guiones bajos
y otro sin Luego imprima el num uno y el num
dos en dos líneas separadas. Te dejaré pensar esto
por ti mismo antes de pasar a la siguiente lección donde resolveremos este
ejercicio juntos.
53. SOLUCIÓN: define literales de enteros: Tengo Idol ya abierto en
el modo interactivo predeterminado, que se puede decir por el prompt consiste en tres corchetes en ángulo
recto. Este es el shell de Python, que puedes usar
como patio de recreo para probar rápidamente ideas
ejecutando fragmentos de código cortos
antes de guardarlos en un archivo Voy a acoplar esta ventana en el lado izquierdo de la
pantalla para que tenga
algo de espacio a la
derecha donde pueda abrir otra ventana con un
archivo vacío listo para su edición. Me gusta tener pantalla dividida
con todo lo que necesito en un solo espacio de trabajo como este para evitar perder el foco o cambiar entre
diferentes programas. También notarás
que utilizo muchos atajos de teclado para hacer
las cosas un poco más rápidas. Si bien tus atajos pueden ser
ligeramente diferentes a los míos, siempre
puedes
encontrarlos en
el menú de la parte superior si te
interesa cuáles son. Voy a pegar las
instrucciones del ejercicio como una cadena de Python en el editor de código para
una referencia rápida. Como pueden ver, ya
he convertido cada oración en una viñeta
separada, que vamos a
abordar una por una. Vamos a
crear dos variables llamadas num uno y num dos. Es costumbre
definir cada variable en una línea separada en Python
para una mejor legibilidad, aunque
técnicamente es posible aplastarlas en una sola línea, lo que a veces puede
justificarse Un recordatorio rápido, puede definir una variable especificando
su nombre, como num uno, seguido del operador de
asignación, que es el
signo igual en Python, y finalmente, el valor. Según el
segundo punto de viñeta, se
supone que
ambas variables tienen el mismo
valor entero de 25 millones, pero se escriben usando dos formas literales
alternativas. Usemos el
literal entero con guiones bajos para la primera variable y uno sin los guiones bajos
para la segunda Puedes colocar guiones bajos en
cualquier parte de tus literales, siempre y cuando no aparezcan al
frente o al final En otras palabras, debe haber algunos dígitos en ambos
lados del guión bajo, y estos guiones bajos
son completamente opcionales porque
Python los ignora Pueden ser útiles para
agrupar visualmente dígitos
similares
como en el ejercicio. Podría decirse que el primer valor
literal es más fácil de leer
que el segundo De inmediato, dice, escribe un programa que
indique que
debes guardar tu código
como un script de Python, lo cual voy a hacer ahora, y nombrar uno
al ejercicio de archivo. Idle asume que estamos creando un archivo con código fuente Python, por lo que automáticamente agrega la extensión punto pi al nombre
del archivo a menos que se
indique lo contrario Puedes ver la ruta de acceso a tu archivo en la
barra de título de la ventana. Ahora bien, el último punto de este
ejercicio es sobre la impresión ambas variables con el fin de
revelar sus valores actuales. La impresión se reduce
a llamar a la función
de impresión incorporada con cada
variable como argumento Así que imprime el num uno
y el num dos. Ahora puede guardar
el archivo y
ejecutarlo en la
ventana interactiva de la izquierda. En mi computadora, puedo recargar el módulo golpeando
F five en mi teclado Los dos números que aparecen en la pantalla son el resultado de llamar a la función print dos veces con diferentes argumentos. Observe que a pesar de usar formas literales
alternativas que asignamos a las variables, Python las imprime de la misma manera. Puede verificar esto
llamando explícitamente a print con num uno y num dos en el
shell interactivo de Python a la izquierda. Verá, desde la perspectiva de
Python, ambas variables contienen exactamente
el mismo valor numérico. El uso de guiones bajos en literales
enteros solo marca diferencia para los programadores como tú que leen el código fuente A
54. Números de coma flotante: En esta lección,
aprenderás a representar números usando el tipo de datos de punto
flotante de Python, que es el más adecuado para números con parte
fraccional Al igual que con los enteros, puede crear números de punto
flotante
usando su forma literal La única diferencia entre un literal entero y
un 0.1 flotante es que un
literal de punto flotante debe tener un punto decimal para separar toda
la parte de
la parte fraccional Ni siquiera necesitas el cero
final para determinar un
número de punto flotante siempre y cuando
incluyas el
punto decimal en tu literal. De igual manera, puedes
saltarte el cero inicial si tu número es una
fracción como 0.42 Los números de punto flotante en Python admiten la
misma agrupación de digitales que enteros con la ayuda del carácter de
subrayado Como puedes ver, es posible
expresar el mismo valor
como 42 usando diferentes tipos de
datos en Python. La diferencia es cómo lo
representan en memoria de
tu empresa y
cuánto espacio ocupan, lo que a su vez afecta
el desempeño y precisión de
diversas operaciones. Además de esto, se pueden
definir literales de punto
flotante en Python usando notación
científica, que a veces se conoce como notación
exponencial
o notación E. La idea detrás de esto es
colapsar los ceros repetidos en un número realmente grande o
realmente pequeño y centrarse únicamente en los dígitos
significativos Por ejemplo,
se puede escribir el mismo número que 4.2 veces diez a
la potencia de siete. La letra E, que puede
ser minúscula o mayúscula, representa El propio exponente
debe ser un entero, pero tal vez negativo, así como
el número que tiene delante Tal como una notación puede parecer
extraña o inconveniente, pero a veces
puede facilitar el manejo de números
grandes o pequeños
en operaciones aritméticas Es posible que hayas visto
la notación E en las calculadoras portátiles, que la usan para representar
números que de otra manera no podrían caber en la
pantalla Si no te gusta esta notación, puedes formatear tu número de punto
flotante usando un número fijo de decimales como
ocho para revelar todos los ceros Al igual que con los enteros,
puedes crear números de punto
flotante de dos maneras Puede usar su
literal que
consiste en dígitos y el punto decimal, o puede llamar a la función flotante
incorporada. Cuando llamas a la función
sin ningún argumento, vuelve a un número de
punto flotante igual a cero. Tenga en cuenta que esto es diferente
de un número entero cero. Sin embargo, en la mayoría de los casos, la función aceptará
un solo argumento, que puede ser una cadena o un número como un
entero u otro flotante. Eso es conveniente para convertir otros tipos de datos en números de punto
flotante. También querrás usar la función
float para definir algunos valores especiales
que no tengan representaciones
literales en el tipo de datos de
número de punto flotante. En esos casos, pasarás un valor de cadena particular como argumento a la función
float. Dos de ellos son infinitos positivos
y negativos. Estos son útiles como límites superiores e
inferiores
no enlazados cuando se busca un valor máximo o
mínimo, por ejemplo Convenientemente, puede comparar infinito con los números regulares, lo que da resultados sensatos. El tercer valor especial en el tipo de datos de punto flotante se llama no un número o NAN. Se puede utilizar para
indicar explícitamente un valor faltante. Sin embargo, Python lo usa más
comúnmente para
señalar una operación
matemática indefinida, como dividir el infinito
por otro infinito. Hay una
peculiaridad interesante sobre no un número, porque Python sigue
la especificación IE 754
para la aritmética de
punto flotante Ni un número nunca es igual a ningún valor, ni siquiera a sí mismo. Otra cosa que es diferente de los números de
punto flotante cuando los
comparas con enteros es
que tienen un límite fijo Si intentas encontrar un valor mayor que el valor máximo
permitido, terminarás con infinito. ¿Cómo sabes cuál es
el valor máximo? Bueno, en la práctica, realmente no
importa
porque el rango de un
número de punto flotante es tan enorme que será más que
suficiente en la mayoría de los casos. Aunque si realmente
quieres averiguarlo, entonces puedes usar las
siguientes instrucciones. En este caso, el valor
máximo es de aproximadamente 1.8 veces diez a
la potencia de 308. Solo recuerda que este
número está escrito en piedra porque varios intérpretes de
Python pueden tener diferentes límites, dependiendo de la plataforma para la
que estén construidos En resumen, puedes crear números de punto
flotante en
Python usando sus literales. Eso debe contener
un punto decimal. Al mismo tiempo, no necesitas los
ceros finales o a la izquierda en esos literales, dejando solo el punto
decimal en Puede especificar literales de
punto flotante utilizando la notación científica
conocida como notación E, que le permite expresar realmente grandes o realmente pequeños números de punto
flotante
realmente grandes o realmente pequeños de
manera concisa La segunda forma de definir los números de punto
flotante y Python aprovecha
la función flotante incorporada. Cuando llamas a la función
sin argumentos, devolverá un número de
punto flotante igual a cero. Sin embargo, casi
siempre
lo vas a llamar con un argumento para convertir otro tipo de datos en un número de punto
flotante. Específicamente, puede
convertir una cadena compuesta por dígitos
decimales y
algunos caracteres especiales como el signo menos, o puede convertir un entero o incluso otro número de punto
flotante. También hay algunos valores especiales de punto
flotante que puede obtener con la
ayuda de la función float. Son el infinito negativo, infinito
positivo,
y no un número. Bien, ahora que sabes enteros y números de punto
flotante, es el momento de aprender cómo
puedes usarlos en expresiones
aritméticas en expresiones
aritméticas
55. Operadores de aritmética y comparación: Oigan, todos. Este es Andreas. Y en esta conferencia,
vamos a aprender sobre los operadores
aritméticos, y haremos una docena de ejemplos
para entenderlos completamente. Así que encienda Shell, y
comencemos. Los operadores nos ayudan a realizar las
operaciones matemáticas habituales sobre variables Los operadores aritméticos
en Python incluyen suma, resta,
multiplicación, división, división de
piso, también llamada división
entera, módulo,
exponenciación, negación unaria positiva y
unaria He incluido un archivo PDF con una bonita tabla
con el operador, un ejemplo, el significado
y el resultado. Puedes abrirlo desde
tus archivos de recursos. Estos son algunos ejemplos de
estos operadores en uso. A es igual a diez, B es igual a tres. Adición A más B. El resultado es 13. Resta, A menos B. El resultado es siete,
multiplicación,
A, multiplicar por B.
El resultado es 30 División, A, dividir por B. Entrar. El resultado es
3.333, etcétera. El operador de la división
es un carácter de barra diagonal. El resultado de una
división estándar es siempre un flotador, incluso si el dividendo es uniformemente
divisible por el divisor División de piso. A,
división de piso B equivale a tres. El operador de la
división de piso es el doble slash. El resultado de la
división de piso es el cociente que A se divide por B, redondeado en el siguiente número entero
más pequeño Cuando el resultado de la
división del piso es positivo, es como si la
porción de fracción estuviera truncada,
dejando solo la porción
entera Cuando el resultado es negativo, el resultado se redondea hacia abajo
al siguiente entero negativo menor o
mayor. Módulo, A, módulo B es igual a uno. El operador de módulo es
el carácter porcentual. El resultado del módulo es
el resto cuando A se divide por B. Exponenciación. A, el exponente B equivale a 1,000. El operador de la explicación
es el doble astérix. El resultado de la exponenciación es A elevado al poder de B.
En la programación, el signo igual
se conoce como el signo de asignación Significa que asignamos
el valor basado en el lado derecho del signo igual a la variable de la izquierda. Además, las declaraciones
A es igual a B y B es igual a A tienen
significados muy diferentes en la programación. Por ejemplo, abra
el editor inactivo y escriba el siguiente código. Ejecutemos el programa
con F five o para menú. Tenemos que guardarlo primero. Y mira los resultados. A es igual a 20 y B es igual a 20. Si bien A tiene un valor inicial de diez declarado en
la primera línea, la tercera línea A es igual a B
asigna el valor de B a A, ahí que cambie el
valor de A a 20, mientras que el valor de B
permanece sin cambios Crucial es la precedencia
de los operadores matemáticos. El orden de operaciones de los operadores matemáticos
Python es
similar al de las matemáticas. Primero se evalúa el operador
exponente. se
evalúan los operadores de multiplicación, división, división de piso y módulo continuación se
evalúan los operadores de multiplicación, división, división de piso
y módulo,
de izquierda a derecha Los operadores de suma y
resta se evalúan en último lugar, también de izquierda a derecha. Puede usar paréntesis para anular la
precedencia habitual si es necesario Saltemos al
shell interactivo para hacer algunos ejemplos. El resultado es 13 porque la multiplicación
se evalúa primero Ahora pongamos
entre paréntesis cinco y dos . El resultado es 28. Debido a que el paréntesis tiene
los precedentes más altos, exploremos otro ejemplo El resultado es tres porque el paréntesis tiene
la máxima prioridad Entonces esto equivale a tres,
y esto equivale a cinco, y el resultado final es tres. No te preocupes por la
precedencia de los operadores matemáticos. El trabajo de Python es evaluar
partes de expresión. Si tiene alguna duda sobre los operadores básicos,
por favor, pregúntelo. Estaré más que feliz de
ayudarte. Gracias por mirar.
56. Operadores de comparación lógicos (booleanos) y en cadena: Hola, chicos, ¿Whatsap?
En este video, aprenderás
a usar los tres operadores lógicos
más críticos en comparaciones de múltiples cadenas. Entonces saltemos a la lección. Si desea comparar valores
booleanos, hay tres
operadores booleanos y o y nada Los operadores lógicos no
o y y modifican y
unen expresiones
evaluadas en contexto
booleano para crear condiciones
más complejas Aquí está la tabla que
también puede encontrar como archivo PDF. Vamos a explicar estos
operadores uno por uno. El operador y devuelve true
si se cumplen todas las condiciones. De lo contrario, devolverá falso. Por ejemplo, el enunciado, tres mayores que uno
y cinco mayores que cuatro volverán verdadero ya que
ambas condiciones son verdaderas, pero tres mayores que
uno y cinco menos cuatro devolverán falso ya que una de dos
condiciones es falsa. El operador o devuelve true si se cumple al menos una
condición. De lo contrario devolverá falso. El enunciado tres
mayor que uno o cinco menos de cuatro volverá verdadero ya que la primera condición tres
mayor que uno es verdadera. El operador non devuelve true si las condiciones después de
la t son falsas, lo
contrario devolverá false. El enunciado no cuatro mayores que cinco
volverá verdadero, ya que cuatro no es
mayor que cinco. Entonces el operador no simplemente evalúa al valor de Bolein
opuesto Una característica interesante de Python
es la capacidad de encadenar múltiples comparaciones para
realizar una prueba más compleja. Los operadores de comparación se pueden encadenar para que sean arbitrarios Por ejemplo, escriba cinco
mayor que tres, mayor que uno e ingrese. Es cierto porque Python
comprueba primero si cinco es mayor que tres y luego
si tres es mayor que uno. Hagamos otro ejemplo
con expresiones booleanas que utilizan operadores de comparación
en el shell interactivo Uno menos de tres y
tres menos de cinco. Y Entra. Esto es
un error de sintaxis. ¿Por qué? Porque mecanografié y en
capital, lo cual está mal. Cambiémoslo y volvamos a entrar. Es cierto porque
ambas condiciones dentro de los paréntesis son verdaderas Espero que entiendas a
los operadores booleanos. Haz tus ejemplos en casa
para jadear completamente estos. Gracias por ver,
y
te veré en la próxima conferencia. Adiós.
57. Error de representación de punto flotante: Oigan, todos. En esta lección, aprenderemos sobre el error de
representación, que afecta la precisión
de los números de punto flotante en prácticamente todos los
lenguajes de programación, incluido Python. Antes de explorar los números de punto
flotante, ayuda dar un paso atrás y pensar en los números de punto
fijo, lo que proporciona una de las formas más sencillas de representar
números reales en computadoras. La idea detrás de
los números de punto fijo es asignar un número específico de dígitos para toda
la parte y
la parte fraccionaria Por lo tanto,
la ubicación del punto decimal así como el número total de dígitos se conocen por adelantado y nunca cambian El mayor problema con
tal representación es su ineficiencia de almacenamiento, lo que limita el rango
de valores disponibles que puede usar Observe cuánto espacio
queda vacío al llenarse de
ceros en estos ejemplos Los números de punto flotante,
por otro lado pueden adaptarse al tamaño del
número que representan. En la
representación de punto flotante, el punto decimal puede
flotar alrededor de la izquierda o la derecha para acomodar
varios tamaños de números. De esa manera podrás usar
el espacio disponible manera
más efectiva
sin desperdiciar memoria. Los números realmente grandes,
como la velocidad de la luz, no suelen necesitar
mucha precisión. Entonces probablemente esté bien
asignar más memoria para los dígitos significativos mientras se negocia la parte fraccional Por el contrario, números más pequeños como el tamaño de un átomo
se beneficiarán al
aumentar el número de dígitos
fraccionarios al flotar el punto decimal hacia la izquierda Siempre y cuando esté de acuerdo
con el comercio de precisión por la magnitud de un número
y al revés, entonces podrá almacenar una enorme gama de números en una
cantidad relativamente pequeña de memoria. Cuanto mayor sea el número de punto
flotante, menor es la precisión. Al mismo tiempo, los números
más pequeños tienden a tener una
mayor precisión. Ahora bien, ya sabes que los números de punto
flotante deben su nombre a
la forma en que están representados en la memoria de una
computadora. Son esencialmente notación
científica en el sistema binario con
algunos volantes adicionales, lo que los hace exponencialmente eficientes en términos
de uso de memoria Desafortunadamente, el precio de tal representación está perdiendo la capacidad de expresar
algunos números exactamente, lo que puede llevar a resultados muy
sorprendentes, como el que se puede ver
en la diapositiva actual. Echa un vistazo a algunos
ejemplos en IDL. Cuando tecleas 0.1
más 0.2 en Python, obtienes un resultado que está bastante cerca de lo que esperarías, pero no exactamente correcto. La razón de
un resultado tan extraño es porque los dos números
que intentas
sumar no tienen una representación
exacta en el tipo de datos
puntiagudos flotantes, que es solo una aproximación
de los números reales Por defecto, Python solo muestra los
dígitos más significativos de un número. Para revelar los restantes, puedes formatear tu
número solicitando,
digamos, 100 dígitos decimales. Sin embargo, el tipo de
datos de flujo mantiene hasta apenas unos 55 dígitos. Si solicita más dígitos, entonces Python rellenará el
número con ceros a
la derecha ya que
no hay suficiente información Ahora bien, ¿de dónde vienen todos estos
dígitos aparentemente aleatorios? Sin llegar a ser demasiado técnico, hay
que recordar que las computadoras mantienen todos los números en el sistema
binario usando solo unos y ceros en lugar del sistema decimal
con diez dígitos 0-9 Cuando conviertes una
décima o dos décimas al sistema binario, entonces terminarás con una cadena binaria
repetida que se repite Es un problema familiar al que también
te enfrentarás en el sistema
decimal. Cuando intentas representar
un tercio, por ejemplo, el resultado es 0.3 que ocurre porque
las computadoras no tienen una
cantidad infinita de memoria En algún momento
solo tienen que recortar la cadena binaria y redondear los resultados al valor
representable más cercano Por otro lado,
mientras permanezcas dentro del ámbito
del sistema binario, podrás
representar un número
exactamente usando un tipo de datos
puntiagudos flotantes. Por ejemplo, un cuarto
es una potencia de dos, por lo que tiene una expansión
binaria finita Lo mismo con la mitad. Cuando los agregues, obtendrás un resultado exacto
sin errores de redondeo Para reiterar, un número de
punto flotante
suele ser solo una aproximación
del número real, algo así como la compresión
con pérdidas en imágenes JPEG, por ejemplo No te preocupes si esto te está
haciendo girar la cabeza. En la mayoría de
las aplicaciones de ingeniería, el error de
representación en punto flotante permanece dentro de límites
aceptables y los resultados
son satisfactorios Sin embargo, en los cálculos científicos o
financieros, se nota
el error de redondeo En esos casos, debe
buscar otros tipos numéricos, como el tipo decimal mencionado
anteriormente en este curso. Bien. Con eso fuera del camino, es hora de echar
un vistazo más de cerca a las funciones matemáticas y los métodos
numéricos en Python.
58. Funciones matemáticas y métodos numéricos: En esta lección,
aprenderás sobre las funciones más comunes que te
permiten trabajar con
números en Python. También descubrirás
algunos comportamientos útiles exhibidos por enteros y números de punto
flotante Sin más preámbulos,
vamos a sumergirnos directamente en él. La primera función con la que
te puedes encontrar al procesar números en Python
es la función round Por defecto, toma un número de punto flotante y
devuelve el entero más cercano. Por ejemplo, pasar 2.3 como argumento redondeará el
número hacia abajo y devolverá dos. Por otro lado, se redondeará hacia arriba un número
como 2.7. Las cosas se vuelven más inesperadas
cuando tu dígito termina en cinco. Esto se conoce como empate
porque la distancia al número entero más cercano es exactamente la misma ya sea
que redondees hacia arriba o hacia abajo. Python sigue una
estrategia que los lazos como este se resuelven redondeando
al número par más cercano En este caso, ese
número es dos. No obstante, en el caso de 3.5, el número par más cercano es cuatro. Esta es una opción por diseño
para minimizar el impacto que tiene el
redondeo en las operaciones que involucran muchos números de punto
flotante Otro dato interesante sobre la función
round en Python es que opcionalmente puedes
pasarle un segundo argumento, especificando cuántos
dígitos decimales quieres redondear dos. Por ejemplo, si tienes
una aproximación de Pi, entonces puedes decir redondearlo
dos, tres decimales Observe que esta
vez está obteniendo un número de
punto flotante como resultado porque cinco fue el
último dígito en este ejemplo. Significa que hay una corbata. Sin embargo, en lugar de redondear al entero par
más cercano, Python mirará el último pero un dígito para decidir sobre
la dirección del redondeo En este caso, dos es el número par
más cercano. Sin embargo, esto no
siempre funciona bien. Cuando intentas redondear
un número como 2.675 a dos decimales, esperarías obtener 2.68 como resultado porque ocho
es el número par más cercano Pero cuando realmente
ejecutas este código, notarás que Python
redondea hacia abajo en lugar de hacia arriba. No es un error en la función
round en sí, sino el resultado de
ese error de representación en punto flotante que aprendiste en
la lección anterior. Bien. La siguiente
función relacionada con los números en Python que quizás
quieras usar se llama abs, que es la abreviatura de valor
absoluto. Toma un número y devuelve
su tamaño sin el signo. Por ejemplo, el
valor absoluto de 42 es 42. Al mismo tiempo, el
valor absoluto de -42 también es 42. Puede llamar a la función de
aplicaciones tanto en números enteros como en números de punto
flotante De cualquier manera, siempre obtendrás el valor positivo de un número. Sin embargo, cuando llamas a la función ABS en
un número complejo, entonces obtendrás la
llamada magnitud de un número complejo, que se calcula usando
la fórmula correspondiente. Echarás un vistazo más de cerca a los números
complejos en una
de las próximas lecciones. Estos son los casos de uso más
importantes para la función ABS en Python. Por último, la tercera y
última función que aprenderás en esta
lección es la función de poder. Proporciona una forma más
explícita de elevar un número a
la potencia dada cuando compara con el
doble astérix u operador
exponencial del que
aprendiste antes La función power
toma dos argumentos. El primero es la base o el número a
elevar a una potencia. Y el segundo argumento
es el exponente o la potencia a la que se va a elevar el
número Al igual que con el operador
exponencial, puedes usar exponentes y bases negativos o
fraccionarios Si bien ambos métodos
para calcular la potencia de un número en Python
funcionan principalmente de la misma
manera, la función power acepta
un tercer argumento opcional siempre que los tres
argumentos estén en números enteros Es una notación taquigráfica para el operador de módulo sobre el resultado de una
potencia como esta Se puede escribir esto de manera
más compacta, pasando el tercer valor
como argumento opcional Antes de cerrar la elation, vale la
pena mencionar
que los números en Python exponen algunos métodos
útiles, igual que lo hacen las cadenas, que quizás
recuerdes de
una sección anterior Por ejemplo, puede verificar si un número de punto flotante
contiene un valor entero sin ninguna parte fraccionaria
llamándolo es método integer Observe, sin embargo, que
para llamar a un método en Python, necesita usar
el operador punto, que también pasa a ser el punto decimal en literales de punto
flotante Para evitar esta ambigüedad, puedes envolver tu
literal numérico entre paréntesis Recuerde que un literal numérico sin punto decimal
representa un entero. Alternativamente, si
quieres ser más explícito, entonces puedes asignar tu
número a una variable. Y llamar al método en la variable
más que al literal. En este caso, 3.14 no
es un entero, sino tres puntos oh es Otro
método útil disponible en flotadores es como relación de números enteros Que devuelve un par de enteros cuya relación es exactamente igual
al flotante original En este caso, los
números son bastante grandes, pero puedes probar algo
más como tres cuartos para obtener una proporción
compuesta por números más pequeños. Los enteros también tienen un
par de métodos útiles. Qué de ellos te puede decir cuántos bits necesitas para representar un número en
el sistema binario. Por ejemplo, una cadena
que consta de dígitos binarios 10, uno, cero, 10 representa
el número decimal 42. Entonces necesitas al menos seis bits para expresar
fielmente el mismo
número en el sistema binario Puede confirmar esto llamando al método
de longitud de bits
en el número 42. También hay un método de conteo de bits con
nombre similar, que te dirá cuántos de estos bits están
realmente encendidos. La cadena de bits original
tiene tres unos y 30, por lo que el valor de retorno es tres. Para recapitular lo que
acabas de aprender, Python viene con algunas funciones
matemáticas integradas para trabajar
con estos números Tiene la función round, que redondea un número de
punto flotante al entero entero más cercano o hasta los
decimales dados, que no se puede especificar como el segundo argumento
de la función. Los lazos se resuelven redondeando
al número par más cercano, pero los errores de
representación en punto flotante a veces interfieren con la dirección de
redondeo esperada La función AB devuelve
un valor absoluto de un número o la magnitud
de un número complejo. La función power realiza en gran medida la misma operación
matemática que el
operador de exponenciación en Python, pero también proporciona una notación
taquigrafía para calcular el módulo
de la También aprenderá que
los números de punto flotante en Python exponen algunos métodos, como el método I integer, que verifica si el valor
es un número entero o no. El ratio as entero,
por otro lado, devuelve un par de enteros cuya relación es igual al número
de punto flotante Los enteros también tienen
sus métodos. Por ejemplo, puedes decir cuántos bits necesitas
para representarlos en el sistema binario o cuántos de esos
bits están iluminados. A continuación, vas a
aprender a dar formato a los números como cadenas cuando quieras
mostrarlos junto con
otro texto al usuario.
59. Números formateados como cadenas: En esta lección, aprenderás a imprimir números con estilo. A menudo, querrás
combinar tus números con algún texto adicional antes de
presentarlo al usuario. Por ejemplo, es posible que desee insertar el precio
de un producto en
un marcador de posición pretfied
en un Tradicionalmente, ha habido muchas formas de formatear
números en Python. Por ejemplo, puedes llamar a
la función format, que ya has visto
antes en este curso, para revelar los dígitos decimales
de un número de coma flotante. Sin embargo, la mayoría de
los programadores hoy en día utilizan los literales de cadena formateados de
Python o cadenas F, que parecen más simples y ofrecen
aún más funcionalidad Puedes crear una cadena
formateada prefijando tu literal de cadena
normal con una letra minúscula
o mayúscula F. En su mayor parte, funcionará como una cadena
normal, por lo que puedes escribir Por ejemplo, este
producto cuesta $3.90. Sin embargo, a diferencia de una cadena
regular, una cadena F le permite especificar
adicionalmente uno o más marcadores de posición de valor para ser rellenados en un momento posterior Digamos que querías
reducir tu mensaje través de muchos productos
con diferentes precios. Puede declarar una variable
auxiliar con precio de
un producto y luego
reemplazar el valor concreto en su cadena F con un
marcador de posición usando los corchetes e insertando el nombre
de su variable Funcionó muy bien.
Observe, sin embargo, que el cero final en el precio del producto se
consumió. Afortunadamente, esas llaves admiten un
lenguaje de formato simple que
puede usar para alterar
la apariencia del valor en
la cadena
formateada final Por ejemplo, para mostrar el precio usando exactamente dos
decimales, puede agregar un
especificador de formato opcional en su marcador Los dos puntos separan
una expresión para evaluar como una variable
del especificador de formato En este caso, el
especificador es 0.2 F, que redondea los números
a dos decimales La letra F le dice a Python que muestre el precio como
un número de punto fijo. Si un precio aumenta, entonces
puede insertar
comas para agrupar la parte entera del
número mayor por miles Otra característica útil de
las cadenas formateadas en Python es la capacidad de
formatear números como porcentajes. Por ejemplo, si tienes un número fraccional
como 0.91 23, entonces puedes hacer que Python lo muestre
automáticamente como un porcentaje redondeado
al número solicitado
de decimales Y El formato mini lenguaje es potente y extenso. Si bien hasta ahora solo has visto
lo básico, aquí tienes algunos ejemplos más. Puedes detener el video ahora
y echarle un vistazo
o consultar las diapositivas
PDF que lo acompañan más tarde. Todo bien. En la siguiente lección, volverás a visitar
números complejos en Python Pero antes de eso, hagamos un ejercicio para
comprender completamente la lección.
60. EJERCICIO: muestra un porcentaje: Estás casi en
la línea de meta cuando se trata de formatear
números en Python. En este ejercicio final, vas a formatear
una fracción decimal como un porcentaje sin cifras
decimales. Ya tienes esto. Tengo fe en ti.
61. SOLUCIÓN: mostrar un porcentaje: Cuando divides dos por diez, obtienes un
número de punto flotante con un dígito decimal. Puede formatear esto como
un porcentaje usando el seno porcentual como especificación de
formato. Si has estado siguiendo, entonces puedes adivinar cómo
solicitar cero decimales. Así es. Se antepone a.in
cero al seno porcentual Puede usar la misma sintaxis en un literal de cadena F para
una sintaxis más compacta. Bien. Bueno, este ejercicio no
fue demasiado difícil, es momento de pasar a otra sección de
este curso en la que interactuarás con el
usuario. Gracias por mirar.
62. Numbers complejos: Bien. En esta lección, repasarás algunos de los
conceptos básicos de trabajar con números
complejos en
Python. Así que vamos a sumergirnos. Debido a que los números
complejos rara vez se utilizan fuera de los dominios de la
computación científica y los gráficos por computadora, solo se
mencionaron brevemente
antes en esta sección. Al mismo tiempo,
siéntase libre de saltarse esta lección
si no tiene interés en
trabajar con números complejos. Python es uno de los pocos lenguajes de
programación que proporciona soporte nativo
para los números complejos. Se puede pensar en un número
complejo como un par que consiste en la parte real
y la parte imaginaria. Hay dos formas de crear números
complejos en Python. Puede llamar a la función
compleja incorporada con
esas dos partes pasadas como argumentos o puede usar una sintaxis especial para definir
un literal de número complejo. Observe la letra J junto
al segundo número, que indica la
llamada unidad imaginaria. Los matemáticos suelen
usar la letra I para denotar una unidad imaginaria, pero Python sigue una notación utilizada por los ingenieros para
evitar confundirla una letra L minúscula o una dígito que pueda
aparecer Cuando dejas caer la unidad
imaginaria, entonces tu literal de número complejo se convierte en una expresión
aritmética regular, que agrega dos números Se puede abofetearla la
unidad imaginaria a cualquiera de esos dos números
en un
literal de número complejo para indicar que
la parte imaginaria Cuando solo tienes los
números imaginarios en tu literal, entonces Python los
agregará y creará un número complejo
sin la parte real. Pero sigue siendo un número complejo. Normalmente asignarías un número complejo a una
variable como Z. Usar la letra Z para
un número complejo es
una convención histórica que se
remonta a Carl Friedrich Goss Al igual que los enteros y los números de
coma flotante, los números
complejos tienen algunos atributos
y métodos
interesantes en Python Por ejemplo, puedes obtener los componentes
reales e imaginarios de un número complejo usando sus atributos
reales e imaginarios. Observe que las partes reales e
imaginarias se almacenan como números de
coma flotante incluso cuando defina un número complejo
en términos de enteros. También puede
calcular un conjugado de un número complejo
llamando a su método conjugado. Un conjugado voltea el signo
de la unidad imaginaria. De hecho, todos los números en Python, incluidos los enteros y los números de
coma flotante, tienen los atributos real e imagen así
como el método conjugado Eso no es sorprendente desde
un punto de vista matemático porque los números complejos son
un superconjunto de números reales Para ins y flotadores, el atributo real y el método conjugado
devolverán el número en sí, mientras que el atributo image siempre
será cero Los números complejos admiten todos los
operadores aritméticos sobre los que aprendió, excepto la división entera y
el operador módulo De lo contrario, puede agregar
dos números complejos. Se les puede restar. Multiplicar. Y dividirlos o elevar uno a un poder. Pero no se puede usar
la división de piso. Tampoco se puede calcular el
resto de una división, que sólo se define
para números enteros. En resumen, se puede definir un número complejo
usando ya sea la función
compleja incorporada o
el
literal de número complejo con la letra J
pegada a la parte imaginaria. También podrías acceder a
tus números complejos, atributos y métodos
para obtener la parte real, la parte imaginaria y
calcular el conjugado.
63. El operador del resto (% módulo): En Python, el símbolo de porcentaje es el operador restante. Esto se conoce como el operador de
módulo. El operador del resto
realiza la división, pero en lugar de
devolver el cociente, devuelve el El siguiente enunciado
asigna dos a los sobrantes. Vamos a escribir sobrante
es igual a 17. Escriba el símbolo perfecto, tres. Ahora vamos a imprimir la variable
sobrante. Si ejecuto el código, el
resultado será dos. Esta declaración asigna
dos a los sobrantes porque 17/3 es cinco con un El operador restante es
útil en ciertas situaciones. Se utiliza comúnmente en cálculos que convierten
tiempos o distancias, detectan números impares o pares y realizan otras operaciones
especializadas. Para entender mejor
el operador restante, crearemos un
programa que obtenga el número de segundos
del usuario y lo
convierta al número de los segundos a una hora,
minuto y segundos. Por ejemplo, convertiría
11,730 segundos a 3 horas, 15 minutos y 30 segundos. Y aquí está la salida del programa que vamos a crear. Ahora es el momento de pausar el
video y darle una oportunidad a eso. Bien, ¿cómo te fue? Realmente espero que
le hayas dado una buena oportunidad a esto. Hagamos el ejercicio
juntos y escribamos el código. En primer lugar, voy a
escribir algunos comentarios. Los comentarios son una
parte importante de la programación. Te permiten,
el programador
explicar cada parte de
lo que hace tu código. En la siguiente línea, voy a crear una variable llamada Total segundos. Quiero obtener un número de
segundos del usuario. Convierte el valor en un flotador. Y luego lo asigna a la variable de segundos
totales. Dejaré una línea vacía, y en la línea cuatro,
agregaré un comentario. Obtener el número de horas. Entrar. Tengo un total de
segundos del usuario, y quiero
convertirlos en horas. Nombremos la variable hours. Hay 3,600
segundos en una hora. Por lo que esta afirmación divide
el total de segundos por 3 mil 600. Observe que usamos el operador
de división entera. Esto es porque
queremos el número de horas sin fracción de parte. Ahora es un buen momento para obtener el número de minutos
restantes. Voy a usar la variable minutos. Primero, usaré el operador de división
entera para dividir el total de
segundos por 60. Esto nos da el
número total de minutos. Entonces usaré el operador de
módulo para dividir el número total de minutos por 60 y obtener el
resto de la división. El resultado es el número
de minutos restantes. El siguiente paso es obtener el
número de segundos restantes. Et nombra la variable segundos. Hay 60 segundos
en un minuto. Entonces en esta declaración, usaré el operador de módulo para dividir los segundos totales por 60 y obtener el resto
de la división. El resultado es el número
de segundos restantes. El último paso es mostrar los resultados usando
print statement. A Primero, voy a imprimir las horas. Después los minutos. Por último, voy a imprimir el segundo. Ahora es el momento de ejecutar el código. Python está esperando que el usuario inserte los segundos
que quiere convertir. Escribiré 11,730 segundos. Son lo mismo
con la salida. De esa manera, es más
fácil comparar la respuesta. Funciona muy bien. Espero que haya entendido
la importancia del operador del resto. Si tiene preguntas, házmelo saber.
Gracias por mirar.
64. Lectura de números con la función de entrada: La función de entrada siempre devuelve la
entrada del usuario como una cadena, incluso si el usuario
ingresa datos numéricos. Por ejemplo, supongamos
que llama a la función de entrada. Escriba el número 72 y
presione la tecla enter. El valor que se devuelve de una función de entrada
es la cadena 72. Esto puede ser un problema
si quieres
usar el valor en
una operación matemática. Las operaciones matemáticas
solo se pueden realizar en
valores numéricos, no cadenas. Afortunadamente, Python ha
incorporado funciones que
puedes usar para convertir una
cadena a un tipo numérico. Estas dos funciones
son INT y float. Por ejemplo, supongamos que estás escribiendo un programa de nómina, y quieres
obtener el número de horas que el usuario ha trabajado. Mira el siguiente código. La primera instrucción obtiene el número de horas
del usuario y asigna ese valor como una cadena a la variable de
valor de cadena La segunda sentencia llama a la función INT pasando el valor de
cadena como argumento. El valor al que hace referencia el valor de
cadena se convierte a un INT y se asigna
a la variable hours. Este ejemplo ilustra
cómo funciona la función INT, pero es ineficiente
porque crea dos variables Uno para contener la cadena que se devuelve desde la función de entrada y otro para contener
el entero que se devuelve desde
la función INT. El siguiente código muestra
un mejor enfoque. Esta declaración
hace todo el trabajo que hacen
las
dos declaraciones previamente mostradas, y se crea
solo una variable. Esta declaración usa llamadas a funciones
anidadas. El valor que se devuelve para la función de salida se pasa como argumento a la
función INT. Así es como funciona. Llama a la función de entrada para obtener un valor ingresado
en el teclado. El valor que se devuelve
desde la función de entrada, se pasa
una cadena como
argumento a la función INT. El valor INT que
se devuelve desde la función INT se asigna
a la variable hours. Después de que se ejecute esta sentencia, la variable horas se
asigna al valor ingresado en el teclado
convertido a un INT Veamos otro ejemplo. Supongamos que desea obtener la tarifa de pago por hora del
usuario. La siguiente instrucción solicita a
los usuarios que ingresen ese
valor con el teclado, convierte el valor en un flotante y lo asigna a la variable de tasa de
pago I Así es como funciona. Llama a la función de entrada para obtener un valor ingresado
en el teclado. El valor que se devuelve
desde la función de entrada, se pasa
una cadena como
argumento a la función float. El valor flotante que
se devuelve desde la función float se asigna
a la variable de tasa de pago. Después de que se ejecute esta sentencia, la variable de tasa de pago
se asigna
al valor ingresado en el
teclado convertido en flotante Para entender mejor
todos estos, hagamos un ejercicio. Supongamos que desea
escribir un programa que pida al usuario que
ingrese su nombre, la edad y los ingresos, luego muestre el valor que ingresó
el usuario. Aquí está la salida del programa. Pausa el video ahora y
completa este desafío. Bien, ¿cómo te fue? Realmente espero que
le hayas dado una buena oportunidad a esto. Hagamos el ejercicio
juntos y escribamos el código. Primero agreguemos la línea de
comentarios. La línea dos solicita
al usuario que introduzca su nombre. El valor que se ingresa se asigna como una cadena
a la variable name. La línea tres indica
al usuario que introduzca su edad. El valor que se
ingresa se convierte a un INT y se asigna
a la variable edad. La línea cuatro solicita
al usuario que ingrese sus ingresos. El valor que se
ingresa se convierte
a flotador y se asigna a
la variable ingreso. Dejemos una línea en blanco y
agreguemos un comentario en la línea seis. En la línea siete,
mostramos el mensaje. Aquí están los datos que ingresas. La línea ocho muestra el
nombre que ingresó el usuario. La línea nueve muestra la edad
que ingresó el usuario. línea diez muestra
los ingresos que ingresó
el usuario. Sí. Las
funciones INT y float solo funcionan si el elemento que se está transformando contiene un valor numérico válido. Si el argumento no se puede convertir al tipo de datos
específico, se produce
un error conocido como
excepción. Una excepción es un error
inesperado que ocurre mientras el
programa se está ejecutando, lo que hace que el programa se detenga si el error no se resuelve
correctamente. Por ejemplo, ejecute el programa
e ingrese XYZ como edad. Aquí está el error
conocido como excepción. Espero que hayan entendido cómo
leer los números a través de
la función de entrada. Gracias por mirar.
65. Números y matemáticas (resumen): Bienvenidos de nuevo, todos.
En esta sección, aprendiste todo sobre trabajar
con números en Python. Usted vio que hay dos tipos
básicos de números, enteros y números de
punto flotante, y que Python también ha construido en soporte para números
complejos Primero, viste cómo hacer aritmética
básica con números usando los operadores de multiplicación más
menos, división y división de piso Aprendes a escribir expresiones
aritméticas
y las mejores prácticas en PEP ocho para formatear
expresiones aritméticas en Entonces aprendes sobre los números de
punto flotante y cómo es posible
que no siempre
sean 100% precisos. Esta limitación
no tiene nada que ver con Python. Es un hecho de la computación
moderna relacionada con la forma en que los números de
punto flotante se almacenan en la memoria de una
computadora. A continuación, viste cómo redondear
números a un determinado
decimal con redondo y aprendiste que las
rondas redondas se vinculan a par, lo cual es diferente
de la forma en que la mayoría de la gente aprende a
redondear números en la escuela. También vio numerosas formas de dar
formato a los números para su visualización. Finalmente, aprendiste
sobre Python construido en soporte para números
complejos, e hicimos un montón de ejercicios para comprender completamente los temas. Quiero
agradecerte por ver, y te veré
en la siguiente.
66. RETO: cálculo de un porcentaje: Si estás escribiendo un programa que funcione con el porcentaje, tendrás que asegurarte de que
el porcentaje a punto decimal esté en la
ubicación correcta antes hacer alguna matemática con
el porcentaje. Esto es especialmente cierto cuando el usuario ingresa un
porcentaje como entrada. La mayoría de los usuarios ingresan el
número 50 para significar 50%, 20 para significar 20%, y así sucesivamente. Antes de realizar
algún cálculo con dicho porcentaje, hay
que
definirlo por 100 para mover sus decimales 0.2
lugares hacia la izquierda. Pasemos por el
proceso de escribir un programa que
calcule un porcentaje. Supongamos que un negocio minorista está planeando tener una venta amplia en
tienda, donde todos los precios de
los artículos estarán 20% de descuento. Hay que pedir escribir un
programa para calcular el precio de venta de un artículo
después de restar el artículo Aquí está el algoritmo. Uno, consigue el
precio original del artículo. Dos, calcula el 20%
del precio original. Este es el monto
del descuento. Tres, restar el descuento
del precio original. Este es el precio de venta. Cuatro, mostrar el precio de venta. Tenga en cuenta que la salida debe coincidir con la
salida del ejemplo con precisión Y cuando golpeas Run, este es el resultado
que estás buscando. Ahora es el momento de pausar el
video y darle una oportunidad a eso. Bien, ¿cómo te fue? Realmente espero que
le hayas dado una buena oportunidad a esto. Hagamos el ejercicio
juntos y escribamos el código. En el paso uno, obtenemos el precio
original del artículo. pediremos al usuario que introduzca sus datos en el teclado. En nuestro programa,
utilizaremos la siguiente
declaración para hacer esto. Observe que el valor ingresado
por el usuario se
almacenará en una variable
denominada precio original. A en el paso dos, calculamos el monto
del descuento. Para ello, multiplicamos
el precio original por 20%. La siguiente declaración realiza este cálculo y asigna el resultado a la variable de
descuento En el paso tres, restamos el descuento
del precio original La siguiente declaración
hace este cálculo y almacena el resultado en
una variable de precio de venta. Por último, en el paso cuatro, utilizaremos la
siguiente declaración para mostrar el precio de venta. Ejecuta el programa, y pongamos un precio de venta
original aleatorio. Y aquí está el 20% de
descuento en el precio de venta. Genial. Espero que hayas logrado crear el
programa por tu cuenta. Si tienes alguna duda, avísame. Adiós.
67. DESAFÍO: cálculo de un promedio: Determinar el
promedio de grupos de valores es un cálculo
sencillo. Agrega todos los valores y luego divide la suma por el
número de valores. Aunque este es un cálculo
sencillo, es fácil cometer un error al escribir un programa que
calcula un promedio. Por ejemplo,
supongamos que las variables A, B y C tienen cada una un valor Y queremos calcular el
promedio de esos valores. Si somos descuidados, podríamos escribir una
declaración como la siguiente para realizar
el cálculo ¿Puedes ver el error
en esta declaración? Cuando se ejecute, la división
se llevará a cabo primero. El valor en C
se dividirá por tres. Entonces el resultado
se sumará a A más B. Esa no es la forma correcta de
calcular un promedio. Para corregir este error, necesitamos poner
paréntesis alrededor A más B más C como se muestra aquí Pasemos por
el proceso de escribir un programa que
calcule un promedio. Supongamos que ha
realizado tres pruebas en su
clase de informática y desea un programa que muestre el promedio de los puntajes de las pruebas. Aquí está el algoritmo. Uno, obtener el primer puntaje de
prueba, dos, obtener el segundo puntaje de prueba, tres, obtener el puntaje de la tercera prueba. Cuatro, calcular el
promedio sumando
los tres puntajes de las pruebas y
dividiendo la suma por tres. Mostrar el promedio. Tenga en cuenta que la salida debe coincidir con la
salida de la pantalla con precisión Y cuando golpees a Run, este será el resultado
que estás buscando. Ahora es el momento de pausar el
video y darle una oportunidad a eso. Bien, ¿cómo te fue? Realmente espero que
le hayas dado una buena oportunidad a esto. Hagamos el ejercicio
juntos y escribamos el código. Agreguemos primero algunos comentarios. En los pasos uno, dos y tres, le
pediremos al usuario que
ingrese tres puntajes de exámenes. Almacenaremos esos
puntajes de las pruebas en variables Prueba uno. Prueba dos. En la prueba tres. En el paso cuatro,
calcularemos el promedio de
los puntajes de los tres exámenes. Utilizaríamos la siguiente
declaración para realizar el cálculo y almacenar el resultado en la variable
promedio. Por último en el paso cinco, mostramos el promedio. Ejecute el programa. Ingresa el primer
puntaje de prueba, por ejemplo, 90. Ingresa el
puntaje de la segunda prueba, por ejemplo, 80, ingresa el
puntaje de la tercera prueba, por ejemplo 100. El puntaje promedio es de 90. Espero que entendieras cómo funciona el
promedio en Python. Gracias por mirar, y te
veré en la siguiente lección.
68. RETO: convertir una fórmula matemática en una declaración de programación: Supongamos que desea depositar cierta cantidad de dinero en una cuenta de ahorro y
dejarla sola para atraer intereses para
los próximos diez años. Al cabo de diez años, te gustaría tener
$10,000 en tu cuenta ¿Cuánto necesitas depositar hoy para que eso suceda? Puedes usar la siguiente
fórmula para averiguarlo. Los términos en la
fórmula son los siguientes. P es el futuro presente o la cantidad que
necesitarás depositar hoy. F es el valor futuro de lo
que quieres en la cuenta. En este caso, F es de 10,000 dólares. R es la tasa de interés anual. Y es el número de
años que necesitas para planear para dejar que el dinero
quede en la cuenta. Sería conveniente escribir un programa de computadora para realizar este cálculo porque entonces
podemos experimentar con diferentes
valores para las variables. Aquí hay un algoritmo
que podemos usar. Uno, obtener el valor
futuro deseado, dos, obtener la tasa de
interés anual. Tres, obtener el número de años que el dinero va a
quedar en la cuenta. Cuatro, calcular la cantidad que habrá que depositar. Cinco, mostrar el resultado
del cálculo en el paso cuatro. Ahora es el momento de pausar el
video y darle una oportunidad a eso. Bien, ¿cómo te fue? Realmente espero que
le hayas dado una buena oportunidad a esto. Hagamos el ejercicio
juntos y escribamos el código. En primer lugar, voy a
escribir algunos comentarios. En la siguiente línea, voy a crear una variable llamada valor futuro. Quiero obtener el valor
futuro deseado del usuario. Convierte el valor un flotador y luego lo asigna
a la variable de valor futuro Dejo una línea vacía y en la línea cuatro,
voy a añadir un comentario. Obtener la tasa de
interés anual, Enter. En la siguiente línea, voy a
crear una variable llamada tasa. Quiero obtener la tasa de
interés anual del usuario. Convierte el valor un flotador y luego
lo asiste a la variable de tasa Dejaré una línea vacía. Ahora agreguemos un comentario. A continuación voy a crear una variable llamada años. Conviértelo a un entero y pregunte al usuario el número de
años que crecerá el dinero. Ahora se ha empezado a convertir
la fórmula en una línea de código. Calcular la cantidad
necesaria para depositar. Entonces, el valor presente
es igual al valor futuro. Dividido por 100% más la tasa de interés
anual. Todo esto al poder de los años. El último paso que necesitamos es el valor en la variable de valor
presente. Ahora es el momento de ejecutar el código. Python está esperando que el usuario ingrese el valor futuro
deseado. Vamos a escribir 10,000. Después ingresaré la tasa de interés
anual. Vamos a escribir 0.05, que es 5%. Por último, ingresaré el número
de años, tipo diez años. Y el resultado es éste. Tendrás que
depositar la cantidad de $6,139 y muchos números decimales
. Funciona muy bien. Espero que hayas entendido
cómo convertir una fórmula matemática en una declaración de
programación. Si tiene preguntas,
por favor házmelo saber. Gracias por mirar.
69. Fechas y tiempos: Las fechas y los horarios son artículos con los que la mayoría de la gente trabajó bastante. Hacemos citas en eventos de plan para fechas y horarios específicos. La mayor parte de nuestro día gira todo el día. Por lo que es una buena idea ver cómo Python se ocupa de interactuar con las fechas y la hora, especialmente almacenar estos valores para su uso posterior. Al igual que con todo lo demás, las computadoras sólo entienden los números. No existen la fecha y la hora. Trabajando con fechas y horas como uno de los mayores retos en la programación entre tratar con zonas horarias, horario de ahorro de luz diurna y diferentes formatos de fecha escrita, puede ser difícil hacer un seguimiento de qué días y horas estás referenciar. Afortunadamente, el módulo de fecha y hora de Python incorporado puede ayudarte a gestionar la compleja naturaleza de las fechas y las horas. Técnicamente, a este acto se le llama importar un paquete. Y aprenderás más al respecto en las próximas lecciones. Para obtener la hora actual, simplemente puede escribir fecha importante,
hora, fecha , punto de hora, punto de fecha y hora. Ahora, ves la información completa de fecha y hora se encuentra en el reloj de tu computadora. Es posible que hayas notado que la fecha y la hora son un poco difíciles de leer en el formato existente. Viendo que solo quieres obtener la fecha actual usando el comando string en un tipo de formato legible. Ahora es mucho mejor. Datetime proporciona tres clases que conforman la interfaz de alto nivel que la mayoría de las personas usará. Fecha y hora. La fecha es una fecha idealizada que asume que el calendario gregoriano se extiende infinitamente hacia el futuro y el pasado. Este objeto almacena el año, mes y día como atributos. Datetime, no time es un tiempo idealizado que asegura que hay 86,400 segundos por día sin segundos bisiestos. Este objeto almacena la hora, minuto segundo microsegundo y z info, información de zona horaria. Datetime dot datetime es una combinación de fecha y hora. Tiene todos los atributos de ambas clases. En primer lugar, hay que importar las tres clases principales de DateTime utilizando el siguiente código. Ahora puedes usar algunos métodos para crear instancias diurnas. Existen dos métodos que no requieren que utilice enteros para especificar cada atributo, sino que en su lugar le permiten utilizar alguna otra información. El día a día crea una instancia de fecha punto de fecha y hora con la fecha local actual. Punto de fecha y hora ahora crea una instancia diurna de punto de fecha y hora con la fecha y hora locales actuales. Echemos un vistazo a algunos ejemplos. Usaré el punto de fecha hoy y el punto de fecha y hora ahora para crear instancias de objetos de
fecha, fecha y hora, cada instancia se almacena en una variable diferente. hoy es una instancia de fecha que sólo tiene el año, mes y día. Ahora es una instancia de fecha y hora que tiene el año, mes, día, hora, minuto, segundo y microsegundos. Como puedes ver, trabajar con las fechas y horarios y la programación puede ser complicado. Afortunadamente, en estos días rara vez se necesitan implementar características complicadas desde cero, ya que muchas bibliotecas de código abierto están disponibles para ayudar. Este es definitivamente el caso de Python, que incluye tres módulos separados en la biblioteca estándar para trabajar con fechas y horas. Calendario sale, calendarios, y proporciona funciones utilizando un calendario gregoriano idealizado. Datetime suministra clases para manipular fechas y horas. El tiempo proporciona funciones relacionadas con el tiempo donde no se necesitan fechas. Con el comando time se puede utilizar para obtener la hora actual, se pueden obtener diferentes valores para cada uno de los componentes que componen fecha y hora utilizando los valores de día, mes, año, hora, minuto, segundo y microsegundos. Pero está fuera del alcance de esta lección. Has aprendido el concepto fundamental que rodea la fecha y la hora. Es hora de que apliques tus nuevos conocimientos encontrados en las aplicaciones del mundo real. Gracias por ver.
70. Qué es una lista: Hola a todos, este es Andreas, y en esta conferencia aprenderás qué son las listas y cómo empezar a trabajar con el elemento en una lista. Las listas son una de las características más poderosas de Python que te
permiten almacenar conjuntos de información en un solo lugar. Entonces, ¿qué es la lista? Una lista es una colección de artículos en un orden particular. Puedes hacer una lista que incluya las letras del alfabeto, los dígitos del 0 al nueve, Nombres, colores, lo que quieras. Se puede poner cualquier cosa en una lista. Las listas contienen objetos complejos como funciones o clases o incluso módulos. Los artículos de tu lista no tienen que estar relacionados de ninguna manera en particular. Además, una lista suele contener más de un elemento. Los corchetes de Python indican una lista en elementos
individuales de la lista están separados por comas. Hagamos un ejemplo. Abre el editor y empieza a escribir. Haremos una lista. Vamos a nombrar es productos de Apple con cuatro elementos. Ahora imprimiremos la lista. Python devuelve su representación de la lista incluyendo corchetes. También puedes declarar una lista sin asignarle ningún valor inicial. Puede escribir productos Apple equivale a dos corchetes. Esta es una lista vacía sin elementos en ella. Tienes que usar el método append para agregar elementos a la lista. adelante aprenderemos sobre el método de anexar. Se puede acceder a los elementos de la lista mediante un índice. Para ello, le das un nombre a la lista y luego dentro de un par de corchetes, usas un número de índice, como lo que estoy mostrando aquí mismo, que permite el acceso a elementos individuales dentro de la lista. El indexado para esa lista está basado en 0. Entonces si tienes una lista como esta con estos seis elementos, los índices empiezan con 0 y subiremos hasta cinco. Por ejemplo, justo en el caparazón. El resultado es iPhone porque 0 es el primer valor de la lista. Ahora teclea. Y el resultado es iCloud porque el índice tres es el cuarto valor de la lista. Si intentas acceder al índice que está más allá del alcance, obtendrás el índice fuera de rango. También, rebanado también está disponible para. Cortar es una sintaxis de indexación que va a expedir una porción de tu lista. Entonces en este ejemplo, si a es tu lista que dentro de los corchetes, tendrás que indexar los números separados por dos puntos, y se va a devolver una parte de esa lista que
empezaremos con la posición m e iremos hasta, pero sin incluir el índice n usando ese mismo ejemplo de antes. Y si tomaste un 225, obtienes tres objetos en el medio, empezando en el índice dos y subiendo al índice cuatro, pero sin incluir cinco. Se dispone de una taquigrafía omitiendo el primer índice. Tu rebanada va a empezar al principio de la lista y subir al segundo índice. Si omites el último índice, va a extender las diapositivas desde el primer índice e ir hasta el final de la lista. Y si fuera a omitir ambos índices, va a devolver una copia de toda la lista. Y a diferencia de una cadena, es una copia, no una referencia al mismo objeto. Es posible agregar un tercer índice después de un colon adicional. Ese tercer índice indica una zancada, pero también a veces se le llama estampilla. lo que en este ejemplo, si agrega una porción que pasó de 0 a seis con un paso de dos, devolvería el objeto en el índice 024. Alternativamente, podría acceder a los valores de una lista desde la parte posterior. El último ítem de esta lista tiene un índice de menos uno. El segundo último tiene un índice de menos dos y así sucesivamente. ¿ Verdad? Y el Python responde a iCloud porque este el, el último elemento. También se puede asignar una lista o parte de ella a un tipo de variable. Por lo que los productos variables se convierten en iPhone, iPad, Mac Air, iCloud. Ahora si escribes, el resultado es iPad coma MAC air, porque asignas ítems con el índice uno para indexar tres menos uno. A la notación uno a tres también se le conoce como una rebanada. Siempre que usamos una notación de corte en Python, siempre se incluye
el elemento al inicio del índice,
pero siempre se excluye el elemento al final. En otras palabras, la notación 1-2-3 se refiere a los ítems del índice dos, índice cuatro menos uno, que es índice tres. También hay una notación de corte más compleja que incluye un tercer número conocido como el paso a paso, pero lo saltaremos por ahora. Una función importante es anexar si desea agregar elementos a una lista, por ejemplo, con esa línea de código, puede agregar el valor iPod al final de la lista, imprimir la lista y ver el resultado. Si desea eliminar elementos de una lista, utilizará la instrucción delete. Supongamos que desea eliminar el ítem iPad, que está en la posición uno. Tipo. Entrar a un iPad no existe. Las listas son cruciales en la programación de Python. Es una característica en Python que vamos a ver varias veces. Y es crucial si vas a crear programas y proyectos en Python. En la próxima conferencia, vamos a profundizar en las listas. Si necesitas algo que preguntar, estaré más que feliz de ayudarte. Gracias por ver.
71. Trabajar con las listas: Hola a todos. hoy vamos a seguir trabajando con listas. Entonces veamos algunas funciones más. Cuando trabajas con una lista. Si quieres combinar dos listas, utilizarás la función extendida, abrirás el editor y escribirás el siguiente programa. Ejecutarlo, y mira la nueva lista. Genial. Para entender mejor cómo funciona, vamos a copiar el código del programa y pegarlo en Python Tutor.com. Haga clic en Inicio, visualice su código ahora. Y es como la versión tres de Python. Pegue el código y haga clic en el botón y visualice la ejecución. Mirando todo el trabajo paso a paso. Si presiono el botón de avance, pasaré al siguiente paso y veré la salida de los lados derecho. En la primera línea se crean los productos de Apple una lista con tres elementos dentro de iPhone, iPad, y iPod con índice 012. Al presionar el botón de avance se ejecuta la segunda línea de código. Crea los productos de Apple para listar con tres elementos, iCloud, iOS, y Air Mac con índice 012 ejecutando la tercera línea, los productos de
Apple uno se amplía con los productos de Apple para enumerar componentes. Entonces si imprimo la lista uno, la salida serán estos seis componentes. Bastante directo, ¿verdad? Cierra la página web. ¿De acuerdo? Ahora supongamos que desea comprobar si un elemento está en un tipo de lista. Falso, por supuesto, oficina no está en la lista. Es cierto, iOS es n, la lista. Para agregar un elemento a una posición particular, utilizaremos la función de inserción. Hagamos un ejemplo, agregando oficina dentro de los productos de Apple una lista. Dos es el número de índice, entrar e imprimir de nuevo la lista. Muy bonito. Quitar función, elimina un elemento de la lista, requiere el valor de un elemento como parámetro. Hagamos un ejemplo. Escriba e ingrese, imprima un Air Mac fueron eliminados de la lista. Por último, si desea ordenar una lista alfabética o numéricamente, utilizará el tipo de función de ordenar. Y tenemos una lista ordenada. Por supuesto que no es la mejor lista para entender si está ordenada o no. Por favor practique estas funciones y si tiene alguna pregunta, por favor hágamelo saber. Gracias por ver y nos vemos en la siguiente lección sobre cómo hacer listas numéricas.
72. Hacer listas numéricas: Bienvenidos a esta lección y gracias por hacer esto hasta el momento. Ahora pasemos a cómo hacer listas numéricas. Las listas son ideales para ordenar conjuntos de números en Python proporciona varias herramientas para ayudarte a trabajar eficazmente con listas de números. Una vez que entiendas cómo usar estas herramientas de manera efectiva, tu código funcionará bien. No olvides que para almacenar un conjunto de números, tenemos muchas aplicaciones desde hacer un seguimiento de las puntuaciones altas de un jugador hasta almacenar temperaturas, poblaciones, etcétera. función de rango de Python es beneficiosa y facilita generar una serie de números. La función de rango genera una lista de números y tiene el rango de sintaxis start y empeine. Si quería hacer una lista de números, puede convertir los resultados de rango directamente en una lista utilizando la función de lista. Cuando envuelve una lista alrededor de una llamada a la función de rango, la salida será una lista de números. Hagamos un ejemplo. Abra el editor y escriba. Ejecutar el programa. En la pantalla aparece la nueva lista uno a nueve. Observe que si no se da el paso, generará
una lista de números consecutivos como la lista anterior, se debe proporcionar
el valor final. No obstante, una cosa rara de la función de rango es que dado n valor nunca forma parte de la lista generada. Para imprimir los números del uno al diez, debe usar el rango uno coma 11. Aprenderemos a combinar funciones de bucle con rango y crear listas más complicadas en conferencias posteriores, como una lista de los primeros diez números cuadrados. Gracias por ver.
73. Listas de impresión: Python proporciona muchas formas de generar información. Veamos solo algunos de los métodos más básicos para la salida de listas. Lleva el siguiente código al editor. Aquí traté de listar con cuatro empresas de autos dentro. Ahora imprimamos la lista. En este ejemplo se utiliza el operador splat. Es el símbolo del asteroide, también llamado operador de expansión posicional, y un surtido de otros términos interesantes para desempacar la lista y enviar cada elemento al método de impresión un elemento a la vez. El argumento sep nos dice cómo separar cada una de las salidas impresas, confiando en un nuevo carácter de línea. En este caso, ejecute el código y vea el resultado. Python da salida a la lista de un elemento a la vez. Ahora quita la línea de impresión y agrega la siguiente línea en el código. Esta línea de código toma dos líneas de código y la coloca en una sola línea. También demuestra la juventud del método r just, que derecho justifica la cadena. El for loops son un elemento importante del lenguaje Python. Y tengo toda una sección dedicada a bucles, ejecuta el código. Mira eso. Alineó el contenido con el margen derecho. De acuerdo, ahora reemplazó la última línea de código por la siguiente. En este caso, la salida está formateada con los métodos de formato de punto con texto
que lo acompaña y el resultado no incluye a todos los miembros de los autos. El ingreso 01 representa los posicionadores para el valor suministrado por los automóviles. Ejecuta el código para ver que aparece con 0 entrada, que es Toyota, y la de entrada que es BMW. Gracias por ver.
74. Tuples: tuplas son idénticas a las listas en todos los aspectos excepto un par de las siguientes notas. tuplas se definen mediante la inclusión de los elementos entre paréntesis en lugar de listas similares utilizando corchetes. Se ve algo así. El otro importante es que las tuplas son inmutables. Entonces, ¿por qué usarías una tupla en lugar de una lista? Cuando estás ejecutando programas con tuplas en comparación con listas, la ejecución será más rápida cuando estés manipulando la tupla. Esto probablemente no se va a notar cuando se tiene una lista pequeña o una tupla pequeña. Pero si estas son las grandes matrices de información, empezarás a ver una diferencia de rendimiento. Hay momentos en los que no quieres que se modifiquen tus datos. Si tienes valores como parte de la colección y su mentor se mantuvo constante durante la vida del programa, el uso de una tupla va a resguardarse de cualquier modificación accidental. Y sé que los diccionarios de Python no son el foco de esta lección. Aprenderás que las claves para crear un diccionario Python requieren que haya un tipo inmutable. Entonces, en ese caso, necesitarías usar algo inmutable como una tupla en lugar de lista. Si buscas usar una secuencia para que la clave defina una tupla. En lugar de usar corchetes para una lista, sus objetos se van a contener entre paréntesis. Aquí tienes t, que es una tupla. Y accediendo a t, mi indexación funciona igual al introducir el corte. Y se puede ver aquí devuelve una tupla, incluso haciendo pasos. Y uno de ustedes usa la zancada negativa favorita. Y lo puedes ver aquí regresando entre paréntesis, estas tuplas y solo nota, sí, sigues usando el mismo estilo de indexación de corchetes. Entonces, ¿qué es tan diferente? Bueno, no se puede modificar. Entonces si vas a intentar tomar el índice dos y asignarlo a algo, vas a plantear esta excepción de un error de tipo. objeto tuple no admite la asignación de elementos. Si fueras a crear varios objetos aquí, y pueden ser de nuevo de diferentes tipos, y simplemente ibas a enumerarlos y poner una coma entre cada uno. Ya verás que se cruza como una tupla. Y de hecho, si ibas a empezar un paréntesis final sin nada ahí dentro y comprobar el tipo en él. De lo que tendrías ahí como tupla vacía. Ahora, ¿qué pasa sin embargo, si estás intentando crear una tupla de singleton? Dices que T es igual sólo al número dos dentro de tu paréntesis. Bueno, puedes ver aquí T no tiene el paréntesis a su alrededor. Y si miras su tipo, es solo un entero. Dado que los paréntesis también se utilizan para definir la precedencia del operador para las expresiones, python evaluará la expresión de solo dos en el paréntesis como simplemente el entero dos y creará un INT. Si realmente quieres decir que es un singleton, Tendrás que hacer un paso extra, que es incluir una coma final que luego sería considerada una tupla. Probablemente sea raro que necesites definir una tupla de singleton. Pero si lo tuvieras a ver en un ejemplo, ahora estás listo. A continuación, vamos a sumergirnos un poco más en la asignación de tupla con empacar y desempacar.
75. Proyecto Tuple empaque y desembalaje: En este video, te voy a mostrar la asignación de tupla a través de empacar y desempacar. Una tupla literal que contiene varios elementos se puede asignar a un solo objeto, como el objeto de ejemplo aquí, T. Asignando ese objeto empaquetado a una nueva tupla, desempaqueta los elementos individuales en los objetos que la nueva tupla, con desempaquetar el número de variables de la izquierda tiene que coincidir con el número de valores dentro de la tupla. Déjame que lo explores con algún código. Como viste en el video anterior, puedes crear una tupla con solo escribir los objetos en un conjunto de paréntesis, y entonces eso los empacará todos ahí dentro en ese solo objeto. Nuevamente, se puede acceder a ellos vía índice. Aquí te dejamos una idea interesante. Puede crear otra tupla de objetos, en este caso S1, S2, S3, S4, y podría asignarla a la tupla que creó. Un momento para ir, t. Ahora S1, S2, S3, y S4 tendrán desempaquetar esa tupla durante esa asignación y colocarlos en los objetos apropiados. Ahora es importante que tengan el mismo número en ambos lados de esa asignación. Si intentas asignarlo a S1, S2, S3 igual a t, vas a plantear una excepción aquí como error de valor, hay demasiados valores para desempaquetar. Se esperaba tres de este lado y t, como sabes, tiene para así de nuevo, aquí está t ¿Y qué si te fuiste con demasiados? Bueno, en este caso, se esperaba conseguir cinco, pero T sólo proporcionó para empacar y desempacar podría hacerse en un comunicado si quisieras. Y aquí están. Nosotros haciendo asignaciones como esta. Hay un puñado de situaciones en las que Python te permitirá saltarte los paréntesis. Y lo mismo con el desembalaje. Incluso puedes hacer algo como esto donde ambas partes no tengan paréntesis. Incluso creando ese Singleton. Funciona igual si se incluyen o no los paréntesis. Entonces si tienes alguna duda en cuanto a si están asignados, adelante e incluirlos. La asignación de tupla permite un poco de Python idiomático. Frecuentemente cuando se programan se tienen dos variables cuyos valores necesitan intercambiar. Es necesario almacenar uno de los valores en una variable temporal. En la mayoría de los lenguajes de programación mientras se produce el swap,
se vería algo así. Por lo que se crea una temp variable, asigna a una en ella, se asigna B en a. Y luego se dice que B es igual a temp. Y ahí has canjeado a los dos. Entonces de nuevo, estás haciendo una variable temporal que sostiene a, tomando b, asignándola a a, y luego estar tirando de nuevo esa temp en ella reasignándola de nuevo. Ese es el pantano. Pero en Python, el swap se puede hacer con solo una sola asignación de tupla. Aquí vas a decir una coma b es igual a b coma a. Y puedes ver que se ha producido el canje. Eso es todo por hoy. Espero que hayan disfrutado de la lección. Si tiene preguntas, por favor házmelo saber. Gracias por ver.
76. Trabajar con diccionarios: Hola alumnos, este es Andreas, y en este video tutorial, aprenderás sobre diccionarios, lo cual es una gran manera de acceder a un dato organizado. Si lograste combinar diccionarios y listas, entonces crearás una estructura de datos en Python. Entonces, empecemos. Un diccionario es una colección de pares de datos relacionados. Las claves del diccionario deben ser únicas dentro de un diccionario, no se
puede usar el mismo nombre dos veces en nuestro ejemplo. Además, utilizamos corchetes rizados al declarar un diccionario. diccionarios son dinámicos y pueden anidarse. Un diccionario puede contener otros diccionarios o listas. Un diccionario contiene sus pares de valores clave dentro de corchetes rizados. Adelante y abre tu shell de Python, y vamos a trabajar en algunos ejemplos. Entonces sigamos adelante y definamos un diccionario y pongamos aquí
algunos nombres con el peso de cada uno de ellos. Abra los corchetes rizados y comience a escribir los pares de valores clave, nombre y espere. El colon separa cada clave de su valor asociado. Y recuerda que separamos los valores de pares de claves con una coma. Cierra nuestro diccionario con corchetes rizados y pulsa Enter. Simplemente puede llamar a su diccionario escribiendo el nombre del diccionario e ingresando. Aquí una nota rápida, como una versión de Python 3.9, diccionarios se mostrarán en un orden en el que se definen. Este comportamiento no existe en versiones anteriores de Python, por lo que puede volver a un orden aleatorio. Puede recuperar un valor de un diccionario
especificando su clave entre corchetes así. Y si especificas una clave que no es un diccionario, obtienes una expresión. Por lo que agregar un Andrew a tu diccionario es solo cuestión de asignar una nueva clave y un valor. Entonces si agregamos a Allen como nuestra clave y los kilogramos, se
puede ver que Alan ha sido agregado. Si deseas actualizar una entrada, solo
necesitas asignar el nuevo valor a la clave. Para eliminar una entrada, sólo
tienes que escribir la sentencia delete the devil y especificar la clave. Y John se habrá ido. Aquí he cometido un error intencional. ¿ Puedes encontrarlo? Entonces traté de borrar a John con la letra J y mayúscula, pero dentro del diccionario lo definimos con una J pequeña, como se puede ver. Así que ten cuidado aquí, pares
clave-valor son sensibles a mayúsculas y minúsculas. Algo más que saber cuando estás trabajando con los diccionarios. Y esto puede ser confuso cuando estás empezando. Si trabajas con lista y sabes que puedes acceder a listas de ítems con un número de índice. No se puede tratar diccionarios de listas. No podrás acceder a los valores desde un número de índice como ese. Obtienes una excepción. Esto se debe a que Python está esperando una clave relacionada con ese punto. Se pueden utilizar energizadores como claves. Entonces si empiezo aquí un nuevo diccionario, y en este caso podremos acceder a valores en un diccionario con 0 o una claves, no un índice. Definir un diccionario usando corchetes rizados y una lista de pares de valores clave. Está bien si conoces todas las claves y valores de antemano. Pero, ¿y si quieres construir un diccionario sobre la marcha? Puede comenzar creando un diccionario vacío el cual se especifica mediante corchetes rizados vacíos. Entonces puedes agregar nuevas claves y valores de una a la vez. Una vez que se crea el diccionario de esta manera, se accede a sus valores de la misma manera que cualquier otro diccionario. Recuperar los valores en la sublista o sub diccionario requiere un índice o clave adicional. Se pueden utilizar diccionarios para una amplia gama de propósitos porque hay tan pocas limitaciones en las claves y valores que se permiten. Gracias por ver.
77. Conjunto: Bienvenidos de vuelta a todos. En esta lección aprenderemos sobre sets. Se trata de una estructura de datos útil que permite realizar algunas operaciones complejas de manera más efectiva. Entonces lo que es un centavo en matemáticas se establece es una colección bien definida de objetos distintos. El conjunto de números incluso positivos menores a diez sería de 2468. El conjunto de cuadrados perfectos menos de diez sería 149. El cruce de estos dos conjuntos sería el número para. Uno es un conjunto en Python. tipo de conjunto incorporado de Python tiene las siguientes características. Están desordenados, los elementos son únicos y no se permiten elementos duplicados. Y un conjunto en sí puede ser modificado, pero los elementos contenidos en un conjunto deben ser hashable. Por lo que un objeto mutable es un tipo de objeto que se puede modificar después de su creación. Los objetos hashables, por otro lado, son un tipo de objeto al que se puede llamar hash. Todos los objetos inmutables son hashables, pero no todos los objetos hashables son inmutables. Python solo puede incluir objetos hash. Por lo que algunos ejemplos de que probablemente hayas visto objetos inmutables son tuplas, cadenas, enteros y booleanos. Esto se debe a que estos objetos se pueden modificar después de que se crean. Y luego los objetos hashables tipo de abarca todos los objetos inmutables. Listas y diccionarios están en hashable. Veamos algunos ejemplos. Entonces echemos un vistazo a las cuerdas. Podemos crear una cadena como esta. Y podemos ver que las cuerdas son de hecho inmutables. Tratemos de silenciar en realidad. Entonces si traté de agregar un carácter o cambiar la primera letra a otro carácter, ambos son un error de tipo. Lo mismo vale para los enteros. Podemos verificar que las cadenas y los enteros son ambos hashables llamando al método hash en ellos. Por lo que hash en S no va a error, pero nos va a dar un número. Y este número sólo representa el hash de s. Las listas y diccionarios están en hashable, lo
que significa que llamar a un hash sobre ellos nos da un error. Hay dos formas de definir un conjunto en Python, puedes usar la función set. Por ejemplo, podemos pasar la lista apple y banana, que convertirá esa lista que sí establece con dos elementos. Observe que el orden no es exactamente el mismo que la lista que pasamos porque los conjuntos están desordenados. Veamos qué pasa cuando pasamos en un diccionario. Convertirá las llaves de los diccionarios en un conjunto. También podemos pasar en una cadena que es, dividir la cadena en caracteres. Y si hay caracteres duplicados, no incluirá esos porque los conjuntos no pueden contener duplicados. Por ejemplo, podemos usar la función de lista con la misma cadena, manteniendo el mismo orden de letras y los duplicados. La segunda forma en que podríamos definir un conjunto es mediante el uso de corchetes rizados. Si queremos un conjunto vacío, podríamos usar un conjunto como este. Los conjuntos son realmente geniales porque pueden contener cualquier valor hashable y el mismo conjunto no tiene que incluir el mismo tipo de valor. Para que pueda tener una cadena de booleano y luego una tupla. Y eso va a funcionar. Oops, cierto es con mayúscula T. Genial. Tratemos de pasar un valor no hashable y veamos qué sucede. Por lo que las listas no son hashables y esto es un error. Entonces y centavos, cuando a veces solo te
importan los valores únicos y no necesitas que tus datos sean ordenados. Esa es la aparente diferencia entre conjuntos y tuplas o listas. También puedes hacer algunas operaciones geniales muy rápidamente. Pero la razón principal por la que usamos listas es que son muy, muy rápidas. A lo que quiero decir con eso es que se puede comprobar la membresía casi al instante. Muchísimas gracias por ver. Y si tiene alguna pregunta o comentario, por favor déjalos en el formulario Q. Y a. Y a.
Udemy.
78. Si las declaraciones: Hola a todos. En este video tutorial, aprenderás a escribir pruebas condicionales, lo que te permite comprobar cualquier condición de interés. Aprenderás a escribir declaraciones simplemente si. Y aprenderás a crear una serie más compleja de declaraciones
if para identificar cuándo están presentes las condiciones exactas que quieres. ejecutará el bloque que sigue a la sentencia if. Si la condición de sentencias es verdadera, las cláusulas omitidas si la condición es falsa, una sentencia if podría leerse como si esta condición fuera verdadera. Ejecutar el código. El comunicado if consiste en la palabra clave, la condición un dos puntos, y comenzando en la siguiente línea, un bloque de código. La estructura de una sentencia if es la siguiente. Y este es el diagrama de flujo. Hagamos algunos ejemplos, abran el editor y escriban el siguiente código. Python requiere el formateo de bloques con sangría. Es muy exigente con los espacios en blanco y la sangría. Guarda primero el programa, ejecuta el código y ve el resultado en la pantalla. Python solicitará a los usuarios que ingresen un número entre 12. Para ello, utilizamos la función de entrada. Tenga en cuenta que el resultado se almacena como una cadena. Ahora si escribes uno, el programa ejecutará la primera declaración impresa. A lo mejor tipo dos, el programa ejecutará la segunda declaración impresa. Para todos los demás valores, el programa imprimirá usted no ingresó un número válido. Genial. Ahora hablemos de una inclinación si una inclinación si la declaración es una forma más simple de una declaración if y su ideal si solo necesitas realizar una tarea sencilla. El sintaxis es el siguiente. Por ejemplo, vaya al programa anterior y elimine todas las líneas de código excepto la primera. A continuación, escriba la siguiente función de impresión. Si ejecutamos el programa, obtendremos el mismo resultado que el anterior, pero con una línea de código menor. En la siguiente línea, te mostraré muchos ejemplos diferentes de la sentencia if en una aplicación. Gracias por ver.
79. EXAMPLES de usar la declaración if: Se pueden utilizar las declaraciones if de varias maneras. En Python, un operador relacional determina cómo un valor del lado izquierdo de una expresión compara
un valor del lado izquierdo de una expresióncon el valor del lado derecho de las expresiones. Alguna vez hace la determinación y genera un valor verdadero o falso que refleje las expresiones verdadero valor. Por ejemplo, seis igual a seis es verdadero mientras que cinco es igual a seis es falso. En los siguientes pasos se muestra cómo crear y utilizar una sentencia if. En primer lugar, definamos una variable llamada mi tipo de valor. Este sello asigna un valor de cinco a mi valor. Observe que utiliza el operador de asignación y no el tipo de operador de igualdad. Este paso crea una declaración if que prueba el valor de mi valor mediante el uso del operador de igualdad. El término if se resalta en un color diferente al resto de la declaración. Tipo. Y entra dos veces. Si pulsa Intro dos veces seguidas sin introducir ningún texto, el bloque de código es un terminado y la salida es esta frase. Si cambio el valor de la variable a diez y vuelvo a ejecutar el mismo código, no se realizará ninguna ejecución. También si cambio el valor de la variable y después de si a 15 y ejecuto el código, no se realizará ninguna ejecución. En ocasiones se quiere realizar más de una tarea después de tomar una decisión, siempre y cuando la siguiente línea esté sangrada, es parte de la declaración if. Cuando la siguiente línea está fuera abollada, se convierte en la primera línea de un código fuera del bloque if. Un bloque de código consiste en una declaración y las tareas asociadas a esa declaración. Pondré dos declaraciones impresas para entender cómo funciona. Entra dos veces. Cada línea que escriba forma parte del bloque de código IFStatement actual. Y si presionas Entrar dos veces seguidas sin introducir ningún texto, Python ejecuta todo el bloque de código para hacer múltiples comparaciones. Si crea diversas condiciones mediante el uso operadores
relacionales y los combina para usarla y operadores lógicos. Por ejemplo, tome el siguiente código dentro del editor de Python. Ejecutar el código y el tipo tres es un valor. El comunicado if contiene dos condiciones. El verso establece que el valor debe ser mayor a 0. También podría presentar esta condición como un valor mayor o igual que uno. En la segunda condición se establece que el valor debe ser menor o igual a cinco. Sólo cuando valor signifique ambas condiciones ¿las sentencias if tendrán éxito e imprimirán el valor que escribió el usuario? Si tomo diez, la aplicación no genera nada porque el número está en el rango equivocado. Cambiemos el código para proporcionar una acción alternativa cuando la condición para una declaración if es falsa. Observe que la otra causa termina con dos puntos, al
igual que lo hace la declaración if. Si recibe un error de codificación para una mera aplicación, asegúrese de comprobar si las columnas tienen precedencia según sea necesario. Ejecuta el código y escribe diez. Esta vez la aplicación emite el mensaje de error. Ahora intentemos crear una selección de menú de un restaurante. El restaurante ofrece ensalada de pizza pastor y panna cotta para dulce. Después de elegir uno de los elementos que el servidor te lo trae. Crear una selección de menú requiere algo así como una declaración if else. Pero si se utiliza la causa LIF, la causa LIF es una combinación de la cláusula else y una declaración IF separada. En los siguientes pasos se describe cómo utilizar la sentencia if, e l i f para crear un menú. En cada caso, las elecciones se comparan un valor en particular para crear una condición para ese valor, si ninguna de las opciones es correcta, la cláusula else se ejecuta por defecto para decirle al usuario que la elección de entrada no es válida. Ahora correré el código. Python me espera para insertar un número, imprimiendo el mensaje, selecciona tu menú favorito. Pondré el número tres y aparece el mensaje, elegiste ensalada, obviamente porque tres es el menú de ensaladas. El proceso de toma de decisiones suele ocurrir en niveles. Por ejemplo, cuando vas al restaurante y eliges pasta, has tomado una decisión de primer nivel. Ahora el servidor pregunta qué tipo de pasado quieres. Por ejemplo, un toro y sí son una carbonara. Esta selección se convierte en un segundo nivel de toma de decisiones decisiones en niveles con cada nivel confiando en la decisión tomada en un nivel anterior se llama anidación. Los desarrolladores suelen utilizar técnicas de anidación para crear aplicaciones que pueden tomar decisiones complejas basadas en diversos insumos. Las técnicas de selección múltiple más utilizadas es una combinación de declaraciones if y if else. Esta forma de selección suele denominarse árbol de selección. El siguiente código muestra cómo crear un árbol de selección. Elimina el código anterior, y empieza a escribir. Escriba un número entre 15. Vamos a teclear tres. Escriba un segundo número. Ahora, pongamos cinco. El resultado es 15, porque tres veces cinco nos da 15. Volveré a ejecutar el código y pondré cinco como primer número, y diez es el segundo número. Y imprime el mensaje segundo valor incorrecto. Por lo que funciona muy bien. Si intenta proporcionar un valor fuera del rango solicitado, verá un mensaje de error. El mensaje de error está adaptado para el primer o segundo valor de entrada para saber qué valor era incorrecto. Como ejercicio de la tarea, intenta crear un menú de restaurante utilizando Declaraciones de Decisión anidadas. Muchísimas gracias por ver. Y si tiene alguna pregunta o comentario, por favor déjelos en el foro Q y en un foro de Udemy.
80. Para bucles: Hola alumnos. Hasta ahora nos enteramos de que la sentencia if, pero y si quieres ejecutar un bloque de código solo usando un cierto número de veces, puedes hacerlo con una sentencia for loop y ayudar a la función de rango. Y aprenderás una nueva función llamada enumerar. Por lo que el bucle for ejecuta el bloque de código repetidamente hasta que la condición en la sentencia for ya no sea válida. En Python, cualquier cosa se puede bucear, como una cadena, lista o tuplas. A esto también se le llama terrible. El sintaxis es el siguiente. Y este es el diagrama de flujo. Hagamos un ejemplo, encienda shell y empecemos a escribir. En este programa tenemos una lista de temporadas con cuatro ítems. El enunciado de años en las temporadas bucea a través la lista de temporadas y asigna a cada miembro a la temporada de año variable. Cuando ejecutamos el programa en First Signs invierno a la temporada de año variable, después imprime el valor invierno. Después de eso, el programa continúa buceando por la lista hasta que se alcanza el final de su lista. Si desea mostrar el índice de miembros en una lista, puede utilizar la función enumerar. Vamos con la segunda línea y ejecutemos de nuevo el programa. Se puede ver el índice a su lado. Cada elemento está en la lista. Si tiene alguna pregunta,
por favor, publíquelas en el tablero de discusión. For loop es un concepto fundamental y quiero que lo entiendas plenamente. Gracias por ver.
81. EXAMPLES de usar el uso de la declaración: La mejor manera de ver cómo funciona un bucle for es crear uno. Haremos un ejemplo que utiliza una cadena para la secuencia. El bucle for procesa cada uno de los caracteres de la cadena y gira hasta que se quede sin caracteres. Lleva el siguiente código al editor. El ejemplo comienza por crear una letra variable numb para rastrear el número de letras que se han procesado. Cada vez que se completa el bucle, letra num se actualiza por uno. El enunciado for funciona a través de la secuencia de letras en la cuerda y Dreze, y coloca cada letra a su vez en letra. Ejecutemos el código, guárdelo primero, la letra uno es una enésima, letra, dos es n, y así sucesivamente. El programa se detiene cuando imprime la última letra del nombre, y esa es la letra S. La cláusula de freno hace posible respirar fuera de bucle. No obstante, no se limita a colocar la cláusula break en su código. Lo rodeas con una declaración if que define las condiciones para emitir un descanso. En el siguiente ejemplo, vamos a dejar que el usuario proporcione una cadena de longitud variable. Cuando la cadena tiene más de ocho caracteres, la aplicación deja de procesarla. Eliminemos el código anterior y trabajemos en algunos ejemplos. Ejecuta el código y escribe John. El nombre tiene menos de ocho caracteres y lo imprime. Pero si escribo Alexander, la aplicación deja de procesarlo. Y aquí está el mensaje. El hilo es demasiado largo. En ocasiones se quiere comprobar cada elemento de una secuencia, pero no se quiere procesar ciertos elementos. Las leyes de ruptura simplemente entran al bucle para que no lo uses en esta situación. La alternativa de las leyes de ruptura que muchos desarrolladores usan es la cláusula continue. Al igual que con la cláusula de freno, esa cláusula continue aparece como parte de una sentencia if. No obstante, el procesamiento continúa con el siguiente elemento en la secuencia en lugar de terminar por completo. En el siguiente ejemplo, El código se niega a procesar la letra D, pero procesará cada otra letra en Andreas es nombre. Presione F5 para ejecutar el código y ver el resultado. No hay letra D dentro de la palabra. El lenguaje Python incluye el segundo tipo de la cláusula continue. La cláusula pasada funciona casi de la misma manera que la cláusula continue, excepto
ella, permite la finalización del código en el bloque de sentencia if en el que aparece. Edita el código y usa las garras pasadas en lugar de continuar y vuelve a ejecutar el código. El uso de la cláusula pasada permite el post-procesamiento de una entrada no deseada. Si cambio la posición de la declaración impresa, obtengo diferentes resultados. Python tiene otra cláusula de bucle que no encontrarás con otros idiomas. La cláusula else hace
posible ejecutar código si no tienes elementos el proceso en una secuencia. Por ejemplo, escriba el siguiente código. Ejecutemos el código, poniendo una palabra, escribiré mi nombre Andreas, y la salida son las letras uno por uno. Ahora ejecutaré el código sin escribir algo y se ejecuta la cláusula else escribiendo el mensaje, la cadena está en blanco.
82. Mientras bucles: Oigan a todos. En la conferencia anterior aprendimos el bucle de cuatro, que ejecuta el bloque de código sólo por un cierto número de veces. En contraste, el bucle salvaje corre tanto como o mientras una determinada condición sea verdadera. Por ejemplo, podría usar un bucle while para contar a través de una serie de números. Vamos a verlo en acción. Echemos un vistazo primero al diagrama de flujo. Ahora abramos el editor inactivo y ejecutemos el siguiente código. Ejecuta el programa y muestra los números de 0 a tres. En la primera línea, comenzamos a contar desde 0 estableciendo la variable numérica en 0. El bucle while ejecuta el programa siempre y cuando los números menos de cuatro e imprime cada número con el num más una declaración, agregamos uno en cada bucle. El último comunicado imprime el mensaje para mostrarnos que el programa ha terminado. Por lo que Python repite el bucle cuatro veces y total, a veces un bucle puede ser infinito. El bucle se convierte en un bucle infinito si la condición nunca se vuelve falsa, debes tener precaución al usar loops while debido a
la posibilidad de que esta condición nunca se resuelva a un valor falso. Esto da como resultado un bucle que nunca termina. Tal bucle se llama bucle infinito. En el ejemplo anterior, si eliminamos la sentencia num más uno, la prueba condicional, no obstante que cuatro siempre se ejecutará a verdadero y el bucle while se ejecutará para siempre, imprimiendo una serie de ceros como esta. Si tu programa se queda atascado en un bucle infinito, presiona control más c o simplemente cierra la ventana del terminal mostrando la salida de tu programa. Para evitar escribir bucles infinitos, prueba cada bucle salvaje y asegúrate de que el bucle se detenga cuando esperas que lo haga. Es beneficioso ejecutar un código de programa siempre y cuando el usuario quiera poniendo la mayor parte del programa dentro de un bucle while, definiremos un valor quit y luego mantendremos el programa funcionando siempre y cuando el usuario no haya ingresado el valor rápido. Escribamos el siguiente código. Y ejecutemos el código Python. Olvidé el colon aquí. Al principio, Python muestra el prompt y espera a que el usuario ingrese su entrada. Cualquier cosa que ingresen se almacena en la variable MyText e imprime en la pantalla. Después de eso, Python vuelve a evaluar la condición en una declaración while. Siempre y cuando el usuario no se ingrese la palabra quit, se vuelve a mostrar
el prompt y Python espera la entrada. Cuando los tipos de usuario se cierran, Python deja de ejecutar el bucle while y el programa termina. Gracias por ver.
83. Rompe y continuar: Bienvenidos a esta lección y gracias por llegar hasta aquí. En esta conferencia, aprenderás a declaraciones que se pueden utilizar dentro de bucles. Ahí, las palabras clave break and continue. En ocasiones es posible que desee salir de todo el bucle con una condición específica se cumple. Para ello, usamos la palabra clave break, la sentencia break en Python termina el bucle actual y reanuda ejecución en la sentencia al igual que el desglose regular y ver, el uso más común para el break es cuando algunos condición externa se activa requiriendo una salida apresurada del bucle. El comunicado break se puede utilizar tanto en while como para loops. Escribamos y ejecutemos el siguiente programa para ver cómo funciona. Sin la palabra clave break, el programa debe imprimir los números de cinco a uno con la palabra clave break, el programa termina prematuramente en el número dos. Esto se debe a que cuando el número alcanza el valor de uno, la palabra clave break hace que el bucle termine. Observe que usamos una sentencia if dentro de un bucle while. Esta es una práctica generalizada en la programación y una característica robusta a medida que continuamos con el curso. Esto también se conoce como una declaración de control anidada. Otra palabra clave para loops es la palabra clave continue. El comando continue en Python devuelve un control al principio del bucle while. El comunicado continue rechaza todas las sentencias restantes en la iteración actual del bucle y mueve el control de nuevo a la parte superior del bucle. Se puede utilizar tanto en while como para bucles como break. Para entenderlo mejor, reemplazaremos el comando break por el continue. Ejecutar el programa. A diferencia del ejemplo anterior, el continue rechaza la sentencia if y mueve el control de nuevo a la parte superior del bucle. También el resto del bucle después de la palabra clave se salta si teníamos código, claro. Por último hubo una declaración pasada que es una no operación. El pasado Dave y ayuda a crear un bloque de código pero ya no se requiere. No es tan útil y hay que saber simplemente lo que hace. Nada más. Si no entiendes del todo, no te preocupes, crearemos un proyecto que incluya ambas declaraciones. Gracias por ver.
84. Proyecto : juego de enseña: Vamos a crear un juego donde la computadora elija un número y el jugador lo adivina. En el juego de adivinanzas, Python piensa en un número aleatorio. El jugador asume el número. El primer paso es obtener un texto de un usuario mediante el uso de la sentencia input. Empecemos a escribir en el editor. El prompt de la variable está apuntando a un literal. El nombre literal está entre los paréntesis. Capturo lo que el usuario escribe con una variable llamada players guess input devuelve una cadena, cualquiera que sea el tipo de jugador aunque sea solo un número, vas a obtener una cadena de entrada. Para comparar las conjeturas, es necesario convertir el gas de los jugadores en un número. Tu juego necesita comprobar si la conjetura es la misma que el número de la computadora. Diga que la computadora ha llegado con diez. Para comparar la variable, los jugadores adivinan al número que necesita para almacenar el valor en una variable llamada número de subrayado de computadoras. Tomemos la variable al inicio de nuestro programa. Cuando se puede comparar la conjetura con la respuesta, se
puede imprimir una respuesta del jugador. El I N T incorporado toma una cadena que tiene un número entero y lo cambia en algo que Python reconoce como número. Recuerda siempre que estés codificando, el colon significa que un nuevo bloque de código está a punto seguir en la línea después de los dos puntos y cada otra línea del bloque, necesitas comenzar con cuatro espacios. ¿ Qué pasa si el jugador adivina la respuesta equivocada? La palabra clave else cambia el funcionamiento de la palabra clave if. Siempre se ejecuta al proceder. Si el bloque de código no se ejecuta, tecleemos, ejecutemos el código y tecleemos. El bloque de código funciona bien. Ahora tenemos que mostrar a los jugadores si su conjetura es demasiado alta o demasiado baja. Usando el pondremos en el bloque LIF entre el programa y la sentencia if. Entonces todo el miente mal el mensaje. Adivina otra vez, y lo sustituiré por los dos altos. Ejecute el código y escriba 20. El mensaje a alto aparece en la pantalla. Todavía necesitas configurar algo que la computadora siga preguntando si el jugador no adivina el número. Necesitas hacer esto poniendo el código que pide que los jugadores adivinen y prueben su valor mientras el bucle. Entonces usando la declaración break, cuando se dé la respuesta correcta esto, salgamos del bucle. Vamos a editar el código. Aquí. Romperemos el bucle. El enunciado loop le permite salir de cualquier bucle en el que Python ya está. Independientemente de la condición de bucles encerrados. Si tienes un bucle dentro de un bucle, el freno aplicado a través del nivel de bucle en el que aparece el freno, en nuestro ejemplo, rompe el bucle interno, el bucle if. Para romper el bucle externo, debes estar en el bloque de código del bucle externo. Ahora, ¿cómo consigues que Python piense en un número, la característica entera aleatoria, diestros estos del módulo Random, te da un número aleatorio entre dos figuras que pones en el paréntesis que sigue randint. El número incluirá el número más bajo o más alto. Si quieres un número entre 110, usa random.random de uno a diez. El módulo aleatorio viene con Python, pero a diferencia de los ins integrados que no se carga automáticamente, el módulo aleatorio es parte de la biblioteca estándar de python. Si lo necesitas, debes importarlo. ¿ Por qué Python no puede cargar todo automáticamente? Porque haría aburrida la programación. Cada vez que ejecutabas un programa, necesitarías pesar pared que encontró en cargados todos los módulos de la biblioteca estándar. Además de darte acceso a la biblioteca estándar, la declaración importante también te permite usar módulo que alguien más ha escrito llamado módulos de terceros. Para usar esos, tienes que descargarlos e instalarlos en tu computadora. Tengo una sección completa con módulos más adelante en el curso. Por lo tanto, agrega estas dos líneas de código desde el principio. Edité la línea de código con la variable numérica de la computadora y puse un número del uno al 50. Hemos terminado nuestro juego de adivinanzas y estamos listos para probarlo, ejecutar el programa. Funciona muy bien. Enhorabuena, acabas de crear tu primer juego usando programación Python. Ten en cuenta que puedes escribir comandos en tu código como una breve explicación de lo que se supone que debe hacer el código.
85. Uso si las declaraciones con listas: Oigan chicos, ¿qué pasa? En este video, aprenderás a usar declaraciones if con listas. Puede combinar fácilmente una lista y una declaración if. El mejor modo de entender la combinación es a través de un ejemplo. El siguiente ejemplo, para encontrar la lista de compras en un supermercado. Abre el editor de texto y empieza a escribir. En un primer momento definimos la lista con nuestra lista de compras cuando el programa está esperando a que el usuario escriba el producto que desea. Si el elemento solicitado está en la lista con los elementos disponibles, Python imprime un mensaje de que el producto está disponible. El bloque else imprime un mensaje diciéndole al usuario que este tipo de producto no está disponible. lo que a partir del ejemplo anterior, hemos logrado resolver un problema combinando sentencias if y listas. Gracias por ver.
86. Uso para bucles con listas: Oigan a todos, en la conferencia anterior nos enteramos del bucle for. Utilizamos for loops para ejecutar un bloque de código un cierto número de veces. Quiero mostrarte ahora la combinación de for loops con listas. Abramos el editor de Python y empecemos a escribir el siguiente programa que contiene una lista de médicos en el hospital. Técnicamente un for-loop repite el bloque de código una vez por cada valor en una lista. Por ejemplo, si lo ejecutamos, este programa imprime el tipo de médico disponible uno por uno. Mira el resultado. En la primera línea, tenemos una lista de los médicos disponibles en el hospital. Después con la ayuda del bucle for, imprimimos el mensaje en este hospital, existe esta especialidad médica. Este es un ejemplo sencillo de cómo podemos combinar una lista con un for-loop. Gracias por ver.
87. Uso de un bucle de tiempo con las listas y los Dictionaries: Hola alumnos y bienvenidos de nuevo al curso ya que seguiremos aprendiendo a combinar un bucle while con listas y diccionarios. Usar while loop con listas y diccionarios te permite recopilar, almacenar y organizar mucha entrada para examinar e informar. Posteriormente. En este reporte, primero
pedimos al usuario que introduzca una contraseña. Si la contraseña es correcta, se abrirá
la aplicación, pero si la contraseña es incorrecta, aparecerá
un mensaje pidiendo que vuelva a ingresar la contraseña. Ejecutemos el programa y pongamos una contraseña. Por ejemplo, 1234. Python nos hace saber que la contraseña está mal y nos pide que lo intentemos de nuevo. Ahora escribiré cuatro ases, que es la contraseña correcta. Copia el programa y pégalo en la página web de Python Tutor para que podamos visualizarlo. Selecciona Python tres y pégalo ahí. Presionó el botón, visualice la ejecución. El primer renglón es un simple mensaje pidiendo al usuario que introduzca una contraseña. Entonces en la segunda línea, Python está esperando a que el usuario escriba un código. El código se almacena en mi variable de código. En la tercera línea, tenemos un diccionario con la contraseña correcta dentro de cuatro ases. Entonces comienza el bucle mientras la variable mi código no es igual a la contraseña correcta, imprime un mensaje de que el código está mal, y vuelve a preguntar con el código, si el usuario escribe correctamente el código, un mensaje de impresión aparece con textos correctos, y el programa se termina. Por lo que podemos ver que combinar wild loop con listas o diccionarios puede crear programas poderosos. No olvides utilizar este sitio web. Es una gran práctica, sobre todo para principiantes absolutos. Gracias por ver.
88. Crear pilas con las listas: Un stack es una matriz o una estructura de lista de llamadas a funciones y parámetros utilizados en la programación de computadoras modernas y la arquitectura de CPU. Al igual que una pila de platos en un buffet, restaurante o cafetería, los elementos de una pila se agregan o eliminan de la parte superior de una pila es un orden de última entrada, primero salida, o FIFO. El proceso de agregar datos a una pila se conoce como un push mientras se reciben datos de una pila se llama pop. Esto ocurre en la parte superior de la pila. El puntero de pila indica la extensión de las pilas
ajustándose a medida que los elementos son empujados o bombeados a una pila. Cuando se llama a una función, la dirección de la siguiente instrucción se inserta en la pila. Cuando existe la función, la dirección se desactiva de la pila y la ejecución continúa en esa dirección. Desafortunadamente, Python no proporciona una pila como colección. No obstante, sí proporciona listas y se puede utilizar una lista como pila perfectamente aceptable. Los siguientes pasos te ayudan a crear un ejemplo de uso de una lista como pila. En este ejemplo, la aplicación crea una lista y una variable para determinar el tamaño máximo de pila. Las pilas suelen tener un rango de tamaño específico. Esto es cierto que es una pila diminuta, pero sirve bien para las necesidades de los ejemplos. Sellos funcionaron empujando un valor en la parte superior de la pila y haciendo estallar valores de nuevo fuera de la parte superior de las pilas, una función en Python y definida por una declaración def. En este programa, he definido tres funciones. El display stack, push y pop. Aprenderemos todo sobre la función no está en una sección posterior. Así que ten paciencia por ahora. Las funciones de la bomba de empuje realizaron estas dos tareas. El código agrega pila de visualización para que sea más fácil ver el contenido de pila que se necesita. Len es una función incorporada en Python, puedes usar el len para llegar a la longitud de cualquier cadena dada, array, lista, tupla, diccionario, etc. El resto de ejercicios de código en la pila demuestra su funcionalidad al empujar valores sobre ella y luego eliminarlos. Para las secciones principales de ejercicio, pruebas, funcionalidad de pila, ejecuta el código y mira cómo Python llena el saco con información y luego muestra un en pantalla. El stack contiene actualmente tres valores, 123, presione enter. La aplicación intenta empujar otro valor en la pila. No obstante, la pila está llena por lo que la tarea falla. Vuelve a pulsar enter. El aplicacion bombea de valor desde la parte superior de la pila. Recuerda que tres es la parte superior de la pila. Entonces ese es el valor que falta. Entra de nuevo, y la aplicación intenta sacar más valores de la pila que contiene, dando como resultado un error y una pila está vacía. Es un buen ejercicio para visualizar la ejecución de Python Tutor.com paso a paso. Gracias por ver.
89. Busca y clasificar las listas: La capacidad de buscar una lista es esencial si se
quiere hacer más manejables las tareas de mantenimiento. El siguiente código te ayuda a crear una aplicación que demuestre la capacidad de buscar en una lista valores específicos. Lleva el siguiente código al editor. El ejemplo comienza por crear una lista denominada productos
Apple que contiene nombres de productos de Apple. También crea una variable llamada productos de Apple seleccionar para mantener el nombre de los productos de Apple que el usuario desea encontrar. El amplificación entra en un bucle donde se
le pide al usuario un nombre de producto de Apple colocado en los productos de Apple. En tanto esta variable no contenga la palabra quit, continúa un bucle que solicita entrada. Siempre que el usuario ingrese un nombre de producto de Apple, la aplicación pide a la lista que cuente el número de productos Apple fuera divisas. Cuando el valor es igual o mayor que uno, la lista sí contiene el producto Apple y aparece un mensaje inapropiado en pantalla. Por otro lado, cuando la lista no incluye el color solicitado en la pantalla aparece un mensaje alternativo. Guardemos y ejecutemos el código. Python te pide que escribas el nombre del producto de Apple, escribe iPad Enter, y ves un mensaje que te dice que el iPad sí existe en la lista. Ahora escribe iMac y ves un mensaje diciéndote que el iOS no existe. Escriba quit, y finaliza la aplicación. El equipo puede localizar información en una lista sin importar en qué orden aparezca. Las listas más largas son más fáciles de buscar cuando las pones en un orden ordenado. No obstante, la razón principal para poner una lista en orden ordenado es para
facilitar al usuario humano ver la lista de información que contiene. Haremos un ejemplo que comienza con una lista sin clasificar. A continuación, ordena la lista y la envía a la pantalla. El siguiente código demuestra cómo realizar esta tarea. El ejemplo comienza creando una matriz de productos de Apple. Actualmente los productos Apple están en orden sin clasificar. A continuación, el ejemplo imprime los productos y el orden en que aparecen. Observe el uso de un argumento para la función de impresión para asegurar que todos los productos y árboles permanezcan en una línea, haciéndolos más fáciles de comparar. Ordenar la lista es tan fácil como llamar a la función de ordenación después el ejemplo llame a la función de ordenación que imprime de nuevo la lista para que pueda ver el resultado. Ejecuta el código. Este es un error de nombre porque este ítem es diferente a este ítem, ponga mayúscula la primera letra. Entonces cambiemos esto también. Dejaré un espacio dentro de las comillas dobles. Ejecutar de nuevo, y Python genera tanto las listas sin clasificar como ordenadas. Es posible que tenga que ordenar los elementos en orden inverso a veces para lograr esta tarea, utilice la función inversa. La función debe aparecer en una línea separada. Por lo tanto, agrega aquí la siguiente línea de código. Vuelva a ejecutar el código y ver los productos en orden inverso. Gracias por ver.
90. Looping a través de un diccionario: Oigan chicos, ¿qué pasa? En este video, aprenderás a hacer un bucle a través de un diccionario. De acuerdo, saltemos a la acción. Como ya saben, un diccionario puede contener pares de valores clave. Diccionario puede tener algunas entradas, pero a veces contienen grandes cantidades de datos, tal vez millones de pares. Por eso es beneficioso recorrer un diccionario. El siguiente ejemplo que voy a escribir tiene un diccionario con nombres de usuario y contraseñas de tres usuarios. Quiero imprimir toda la información almacenada en el diccionario anterior usando un for loop type el siguiente código. Examinemos el código de segunda línea. El bucle for necesita variables que mantendrán el nombre de usuario y la contraseña en cada par. Puedes elegir cualquier nombre que quieras para estas dos variables. Después de estas dos variables, utilizamos los ítems del método que devuelve una lista de pares de valores clave. El for-loop almacena cada uno de estos pares en las dos variables proporcionadas. En la siguiente línea ponemos el nombre de usuario y la contraseña, la barra inclinada n. La primera declaración de impresión asegura que se inserta
una línea en blanco antes de cada par de valores clave en la salida. Ahora ve el resultado en el shell de Python. Podríamos copiar el programa y pegarlo en Python Tutor.com si quisiéramos verlo en acción paso a paso. Genial. Gracias por ver y nos vemos en el siguiente video tutorial, feliz aprendizaje.
91. Sustitución la declaración del switch con un diccionario: La mayoría de los lenguajes de programación proporcionan algún tipo de sentencia switch. Una declaración de cambio proporciona tipos de menús elegantes, elecciones. El usuario es varias opciones, pero se le permite elegir sólo una de ellas. El programa toma algún curso de acción basado en la selección del usuario. Aquí hay un ejemplo de otro lenguaje de programación. Desafortunadamente, Python no viene con una declaración de switch. No obstante, mediante el uso de un diccionario, puede simular el uso de una instrucción switch. Tomemos el siguiente código para demostrar la técnica requerida. Cada una de estas funciones define una tarea asociada a la selección de una opción de color en pantalla. Sólo a uno de ellos se le llama en un momento dado. Sigamos escribiendo el código del diccionario. Este código es el diccionario. Cada clave es como la parte de caso de una sentencia switch, el valor especifica qué hacer. Por último, escribamos la interfaz de usuario es parte del código de ejemplo. Comienza por crear una selección de variable de entrada. Después entra en un bucle hasta que el usuario ingresa un valor de tres. Durante cada bucle, la aplicación muestra una lista de opciones y luego espera la entrada del usuario. Cuando el usuario sí proporciona entrada, la aplicación realiza una comprobación de rango en ella. Vamos a ejecutar el código. Python muestra el menú esperando a que selecciones una opción tipo 0 e ingresas a la aplicación que te indica que elegiste rojo y luego vuelve a mostrar el menú. Ahora escribe tres y presiona enter. Termina la aplicación. Como siempre, puedes visualizar tu código paso a paso usando Python Tutor.com. Gracias por ver.
92. Trabajar con el objeto contador del objeto: En ocasiones tienes una fuente de datos y simplemente necesitas saber con qué frecuencia suceden las cosas, como la aparición de un elemento específico en la lista. Cuando tienes una lista de preselección, simplemente
puedes contar los ítems. No obstante, cuando tienes una lista larga, conseguir un conteo preciso es casi imposible. El contador objetos, vamos a contar los artículos rápidamente. Hagamos un ejemplo que crea una lista con elementos
repetitivos y luego cuenta cuántas veces aparecen esos elementos. Escriba el siguiente código. Para utilizar el objeto contador, debe importarlo de las colecciones. El ejemplo comienza por crear una lista. Con elementos numéricos repetitivos. Se puede ver fácilmente que algunos elementos aparecen más de una vez, como el número uno, el ejemplo colocado en la lista en un nuevo objeto de contador, contador de lista. En la aplicación se imprime un contador de listas de diversas maneras. El primer resultado es el contador tal y como aparece sin ninguna manipulación. El segundo resultado imprime los elementos únicos individuales en mi lista y el número de veces que aparece cada elemento. Para obtener tanto el elemento como el número de veces que aparece, debe utilizar la función del ítem como se muestra. Por último, el ejemplo demuestra cómo obtener un recuento individual de la lista utilizando la función get. Ejecutar el código y Python genera los resultados de usar el objeto contador. Gracias por ver.
93. Qué son las funciones: Las funciones son una forma sencilla de agrupar acciones con ellas. Se pueden hacer algunos grupos de acciones repetidamente sin tener que volver a escribir todas las funciones de código. Deja que te expliques qué hace y función te permiten reutilizar tu código. Para utilizar una función. Debe uno para encontrar la función en sí y para invocar o llamar a la función. Aquí tienes un ejemplo sencillo que recompensa tu programa Hello World usando una función ventana de shell de Python abierta. Pulse Intro dos veces para volver al símbolo del sistema. No hace nada. Ahora debes llamar a la función para que se ejecute. Python llamará a la función si escribe el nombre de la función seguido de paréntesis, bloque de código de
una función es la línea que sigue a la sentencia def hasta pero no incluye la siguiente línea que está sangrada igual que la sentencia def. Cuando el Python llega al final de la función, salta de nuevo al lugar donde ocurrió la columna, allá
atrás con los paréntesis. las reglas para nombrar una función o mucho les gustan las reglas para nombrar una variable. Deben comenzar con una letra o un guión bajo. Deberían ser minúsculas. No pueden tener números. Pueden ser de cualquier longitud, pero mantenerlos cortos. No pueden ser lo mismo que una palabra clave Python. Las funciones tienen un tipo especial de comentario llamado cadena doc. El propósito principal de un docstring es explicar lo que se supone que debe hacer la función. Esto significa que alguien mirando a través de tu código entenderá lo que está haciendo la función sin averiguar el código en sí. Para crear una docstring, agregue un literal de cadena encerrado entre comillas
triples como la primera línea del bloque de código de la función. Al igual que nuestro ejemplo, las funciones son herramientas extremadamente útiles y poderosas en la caja de herramientas de programación porque te permiten separar tu programa en bloques significativos. En la próxima conferencia, vamos a explicar algunas funciones integradas de Python. Gracias por ver.
94. Construido en las funciones: Hola alumnos y felicitaciones, lo han hecho hasta aquí. Ahora estás familiarizado con los bucles y probablemente empezaste a crear tus propios pequeños proyectos. En este video tutorial, aprenderemos algunas de las funciones incorporadas más útiles en Python. Empecemos con la función len. La función len cuenta la longitud de una palabra. Por lo que puede pasar la función len de un valor de cadena o una variable que contenga una cadena. Y la función evalúa el valor entero del número de caracteres en esa cadena. Hagamos algunos ejemplos en el shell. Tipo. El resultado es cinco porque hay cinco caracteres en la palabra hola. Otro ejemplo. En primer lugar, el programa está pidiendo al usuario que introduzca su nombre, escriba su nombre y presione enter. Entonces Python cuenta el carácter del nombre y muestra el resultado. Genial. Si desea hacer una lista de números, puede convertir el resultado de un rango directamente en una lista utilizando la función de lista. La función de rango hace que sea fácil generar una serie de números. Entonces puedes usar la función de lista para convertir ese mismo conjunto de números en lista. De acuerdo, vamos a verlo en tipo de acción. Hicimos una lista de números del uno al nueve. Por último, algunas funciones integradas que nos ayudan a calcular estadísticas simples como mínimo, máximo y algunas, ya he hecho una lista llamada num. Vamos a teclear. El resultado es uno. Por supuesto. El resultado es nueve. El resultado es 45. En Python hay decenas de funciones incorporadas, pero no te preocupes, aprenderás solo las útiles. Gracias por ver.
95. Definir tu función: Bienvenidos de vuelta a todos. Una característica útil de Python es definir tus funciones y usarlas a lo largo del programa. Crea tus funciones's. Sí, así es. Aquí está la sintaxis para definir una función. Ahora vamos a explicar la sintaxis en detalle. El enunciado def le dice al programa que el código de la siguiente línea forma parte de la función. El retorno se utiliza para devolver una respuesta de la función. Una vez que la función ejecute la sentencia return, la función saldrá. Si su función no necesita devolver ningún valor, esa declaración de retorno es innecesaria o podría escribir return none. Ahora definamos nuestra primera función, abrir inactivo y escribir. En la línea uno, escribimos el encabezamiento contiene sordos y el nombre de una función, paréntesis y finalmente un colon. La siguiente línea forma el cuerpo de la función. Ahora ejecuta el programa. Toda la definición define el significado del nombre my_function, pero no hace nada más. La definición en sí no hace que nada se imprima todavía. Por eso no se puede ver nada y visiblemente en shell después de que Idol terminara de ejecutar un programa, sin embargo, su versión del shell recuerda definiciones de funciones del programa. Ahora en el caparazón Entrar. Python retrocede y mira la definición y luego ejecuta el código dentro de la definición de función, y por supuesto imprime el mensaje. Probemos algo diferente ahora. Tipo. No pasa nada sin paréntesis. Identifica el código de función es el valor y da la ubicación en memoria del código. Muy bien, ahora una función usando la declaración de retorno. En este programa, definimos una función con dos números y devolveremos la suma de estos números. Escriba en el caparazón. Entrar. ¿Se puede adivinar por qué tuvimos este error de sintaxis? La respuesta es simple. No presionamos enter dos veces después de esta línea, así que en realidad no definimos la función suma dos números. Vamos a volver a ejecutar la función. Ok, ahora teclea. Por supuesto que el resultado es 11. Espero que hayamos podido vislumbrar cómo definir nuestras funciones. Gracias por ver.
96. Más integrados en las funciones: Bienvenidos de vuelta a todos. En esta lección veremos cinco funciones incorporadas que comúnmente son utilizadas por los programadores de Python. Describiré qué hacen y cómo usarlos, y luego te mostraré ejemplos de cómo pueden ayudar en tus programas. La función ABS devuelve el valor absoluto de un número, que es el valor de un número sin su signo. Por ejemplo, el valor absoluto de diez es diez y el valor absoluto de diez negativos es de diez. Para utilizar la función ABS, simplemente llámalo con los números o variable como su parámetro así. Podría usar la función ABS para hacer algo así como calcular una cantidad absoluta de movimientos de un personaje en un juego, sin importar en qué dirección se encuentre el personaje de viajar. Por ejemplo, digamos que el personaje da tres pasos a su derecha, tres
positivos, y luego diez pasos a su izquierda, negativo diez o menos diez. Si no nos importara la dirección positiva o negativa, el valor absoluto de estos números sería 310. Podrías usar esto en un juego de mesa donde rotas dos dados y luego mueves tu personaje o número
máximo de sellos en cualquier dirección basado en el total de los dados. Ahora si almacenamos el número de pasos en una variable, podemos determinar si el personaje se mueve con el siguiente código. Podríamos querer mostrar alguna información cuando el personaje está diseñado para moverse. En este caso, solo mostraremos el carácter se está moviendo. Si no hemos utilizado la declaración if podría verse así. Como puedes ver, el uso de ABS hace que la declaración vea un poco más corta y más fácil de entender. El nombre Bool es la abreviatura de Boolean. El término que usan los programadores para describir un tipo de datos que pueden tener uno o dos valores posibles, generalmente ya sea verdadero o falso. La función bool hace un solo parámetro y devuelve verdadero o falso en función de su valor. Al usar bool para números, 0 devuelve false mientras que cualquier otro número devuelve true. Aquí te explicamos cómo podrías usar bool con varios números. Cuando usas bool para otros valores como cadenas, devuelve false si no hay valor para la cadena, decir, la palabra clave none o una cadena vacía. De lo contrario volverá verdadero como se muestra aquí. La función bool también devolverá false para listas, tuplas y mapas que no contienen ningún valor son verdaderos cuando lo hacen. Podrías usar bool cuando decidas si un valor se ha centrado en. Por ejemplo, si pedimos a las personas que usan nuestro programa que ingresen el año en que nacieron, nuestra declaración if podría usar bool para probar el valor que ingresan. La primera línea de este ejemplo utiliza input para almacenar cuando
alguien más entra en el teclado es el año variable. Al presionar Enter en la siguiente línea sin escribir nada más, almacena el valor de la tecla Enter y la variable. En la siguiente línea, la sentencia if comprueba el valor booleano de la variable después de usar la función rstrip, que elimina cualquier espacio en caracteres Andrew del final de la cadena. Porque el usuario no ingresó nada. En este ejemplo, la función bool devuelve false porque esta sentencia if utiliza la palabra clave not. Es una forma de decir, haz esto si la función no devuelve verdadera. Y así se imprime el código, debes ingresar un valor para el año de tu nacimiento. En la siguiente línea. El valor de la función eval, abreviado para evaluar, toma una cadena como parámetro y la ejecuta a través de ella como si se tratara de una expresión de Python. Por ejemplo, Eeval Print, Wow, en realidad ejecutará la impresión de la declaración. Bueno, la función eval sólo funciona con expresiones simples como las siguientes. Y la función eval se utiliza a menudo para convertir la entrada del usuario en expresiones Python. Por ejemplo, se puede escribir un programa de calculadora simple que lea las ecuaciones introducidas en Python y luego calcular la slash evalúa las respuestas. Dado que una entrada de usuario se lee como una cadena, Python necesita convertirla en números y operadores antes de realizar cualquier cálculo. La función eval hace que esa conversión sea más fácil. En este ejemplo, utilizamos input para leer lo que el usuario entra en su variable, su cálculo de guión bajo. En la siguiente línea, ingresamos a la expresión cinco veces 20, quizá tu edad multiplicada por el número de semanas en un año. Utilizamos el correo electrónico para ejecutar este cálculo y el resultado se imprime en la línea final. La función exacta es como el mal, excepto que se puede usar para ejecutar programas más complicados. La diferencia entre los dos es que el correo electrónico devuelve un valor, algo en lo que puedes ahorrar como variable donde tan exacto como no. Aquí tienes un ejemplo. En las dos primeras líneas creamos una variable con una cadena multilínea que contiene dos sentencias de impresión y luego usamos executor en la cadena. Podrías usar exactas, ejecutar muchos programas en tu programa Python lee desde archivos, realmente programas dentro de programas. Esto puede ser bastante útil al escribir aplicaciones largas y complicadas. Por ejemplo, podrías crear un juego de robot. Somos dos robots moverse alrededor de una pantalla y tratar de atacarse unos a otros. Jugadores del juego proporcionarían las instrucciones para sus robots. Al igual que muchos programas de Python los robots ganan leerían en estos scripts y usarían ejecución exacta. La función de rango, como hemos visto antes, se utiliza principalmente en para bucles, para recorrer una sección de código un número específico de veces los dos primeros parámetros dados para organizar o llamar el inicio y la parada. Usted vio el rango de estos dos parámetros en el ejemplo anterior usando la función len para trabajar con un bucle. Los números que el rango genera comienzan con el número dado como el parámetro monedero y N con un número que es uno menos que el segundo parámetro. Por ejemplo, lo siguiente muestra lo que sucede cuando
imprimimos los números que el rango crea entre 05. En realidad, la función de rango devuelve un objeto especial llamado iterador que repite una acción de varias veces. En este caso, devuelve el siguiente número más alto cada vez que se llama. Se puede convertir el iterador en una lista utilizando la lista de funciones. Si luego imprime el valor de retorno al llamar a rango, verá los números que contiene también. También puede agregar un tercer parámetro al rango llamado paso. Si el valor del paso no está incluido, el número uno se utiliza como paso por defecto. Pero, ¿qué pasa cuando pasamos el número dos como paso? Aquí está el resultado.
97. Scopes globales y locales: El alcance es algo que inicialmente es difícil de
entender al iniciar la programación y los globales, los locales y los vars permiten comprender un poco mejor el alcance. Esto se demuestra mejor en el contexto de un programa. Entonces aquí se puede ver un programa con un ser igual a uno siendo igual a la cadena global y c es igual a la cadena otra global. Pero como sabrá dentro de una función, los mismos nombres de variables se pueden redefinir con valores
diferentes y no se referirán a la misma variable real. Entonces aquí definiendo una función donde a se está configurando a dos, b se está configurando a estos string local. Y luego se imprimirán esos dos valores. En tanto, en el ámbito de nuestro Principal, imprimiremos los valores de a y B. Luego llamaremos a la función, que imprimirá esos valores, teniendo que encontrar valores locales de los mismos. Y luego vamos a imprimir de nuevo a y B para ver si han sido o no alterados permanentemente mientras están en función. Veamos que ese programa se está ejecutando. Aquí se puede ver que estaban en el ámbito global. Entonces esa es esta línea de aquí. Y ahí tenemos las versiones locales de a y b siendo impresas. Entonces una vez que estamos de vuelta en el ámbito global, a y B están de vuelta con valores que esperaríamos allí. Ahora a veces es difícil saber qué variables se han definido o disponible para ti en cualquier ámbito dado. Este ejemplo es un programa bastante sencillo, pero entender lo que está pasando es un programa más complicado y eso puede ser más difícil. Una función que es particularmente útil es vars. Si imprimimos vars, Mostrará qué variables están disponibles en este ámbito, y las imprimirá en forma de diccionario. Ejecutando el programa. Se puede ver que hemos impreso vars, las variables disponibles en este ámbito local, R, es igual a dos y b es igual a Local, que es lo que se imprimió. No obstante, si tomamos ese código de esta línea, así exactamente lo mismo. Imprimir vars. Si ponemos eso aquí después de que volvamos al ámbito global, verás que hay más valores disponibles. Entonces aquí tenemos estos valores de diccionario mucho más grandes. Pero lo más importante es para nosotros en este punto, es que a es igual a uno, B igual a global, y C tiene un valor de otro global. Por lo que hay diferentes valores disponibles dependiendo del alcance en el que nos encuentremos. Como ya han visto, estos son los vars que están disponibles en el ámbito global. Y en lugar de imprimir, vars, puede imprimir usando la función globals, lo que nos da las variables de alcance global en cualquier momento. Entonces aquí se puede ver que da la misma salida porque los vars son los vars globales cuando se imprimen en el ámbito global. No obstante, creo que esto podría enturbiar ligeramente el agua porque es una función diferente. No ilustra la diferencia en aquellas variables disponibles en la función. Y el alcance global es el mismo porque se podría imprimir globales fuera mientras se encuentra dentro de la función. Entonces si eso se imprime mientras está dentro de la función. Entonces si movemos globales para que se impriman dentro de la función, puede ver que estas son las variables locales y estas son las variables globales. Si esto se imprime, lo puedes ver exactamente a la misma hora. El valor global de a es uno y b es global, mientras que a es 2x y B es local. Para que eso pueda ponerse un poco confuso. Pero sin duda es realmente útil poder imprimir vars porque puedes entender qué variables están disponibles para ti en el punto de ese alcance. Y si no estás seguro en qué ámbito de función se está ejecutando, puedes usar vars para entender lo que está pasando. Pero hay algo más que también enloquece ligeramente el agua, que es si señalamos Ver, no
está definido dentro de esta función. Entonces si no podemos encontrarlo en el ámbito local, entonces verá el valor de la misma desde el ámbito global. Entonces si ejecutamos eso, se
puede ver que a pesar de que no está definido en el ámbito local, ve accesible desde el alcance global desde la línea tres, porque no está definida dentro de esa función. Esto es algo que necesitas para pasar un poco de tiempo dando vueltas a la cabeza. Pero una vez que lo entiendas,
te ayudará con tu comprensión de lo que está pasando en general. Pero es fácil decirse en nudos, principalmente si usas los mismos nombres de variables dentro de una función que fuera de una función. Por lo que la a local es diferente a la ei global, razón por la
cual puede llegar a ser confusa. Y es una buena idea no nombrar a tus variables locales con el mismo nombre que una variable global.
98. Proyecto : juego de guiones mejoradas (versión 2) - PARTE 1: Está bien, hablemos de cómo puedes mejorar tu proyecto de juego de adivinanzas. Aprendimos sobre funciones, por lo que estamos listos para aplicarlas en este proyecto, puedes tomar ese conocimiento y convertir tu proyecto y juego de adivinanzas para que utilice funciones. El primer paso es agregar un módulo no encoger al inicio
del archivo para explicar lo que hace el programa, podemos usar comillas triples, dobles al principio y al final de la docstring. Ahora estamos listos para actualizarlo y hacer uso de una función. Vamos a nombrar la función como hacer adivinar ronda. Crearemos un stub de función para do guess round. Ahora bien, ¿cuál es la función stub? Si sabes que vas a necesitar una función, pero no estás seguro de los detalles. Se puede utilizar la palabra clave de paso y dejar el bloque de código para ser llenado más adelante. Una función vacía como esta, un stub te permite definir la función. Fallará si no hay blog de código, pero resolveremos los detalles más adelante. Es principalmente un tenedor de lugar para ayudarte a organizar tus pensamientos. Si incluye la docstring, entonces no necesita ninguna declaración de ruta. Probablemente haya sido revisado, incluya la docstring, sangrar el código para que sea parte del bloque de código de función. Ahora puedes agregar una línea al final del programa para hacer la función de conjetura. Ejecutemos el programa. Obviamente hay un problema. El juego no se reinicia. ¿ Se puede trabajar por qué? ¿ Verdad? Necesitamos agregar una línea que llame a la función do guess round desde dentro del bucle. Vamos a intentarlo de nuevo. Ahora se reinicia el programa. Mira eso cada vez que se reinicia
el juego, la computadora responde exactamente igual. Y no es así como debería correr el juego. El equipo debe elegir un número diferente para cada ronda. Detengamos el código con control más c. Porque el número es el mismo cada vez. Probablemente sea un problema con cómo se almacena o elige. Piense en cómo la ruta de Python la sigue cuando fluye a través este código y dónde ocurre la elección numérica respecto a este flujo. Trató de averiguar por qué. Ahora vamos a resolver este problema de lógica. El programa sigue adivinando el mismo número debido a un problema con la ubicación aleatoria de la función Rand INT. El programa pasa por estos pasos cuando se ejecuta el programa, uno ejecuta la importación, dos elige un número aleatorio, tres asigna un valor a un prompt for define una función, pero aún no la ejecuta. Cinco inicia un bucle. Seis llamadas repetidamente a la función desde dentro del bucle sin elegir un número aleatorio. Cuando llama a la función, el número aleatorio no se elige de nuevo, los mismos números elegidos cada vez. Puedes arreglarlo poniendo el código, eligiendo el número dentro de la función. Se puede generar la ronda agregando declaraciones
impresas para aclarar cuándo ha comenzado una nueva ronda. Esto se hace poniendo el código de declaraciones de impresión en un bucle while. Además, elimine la función redonda Dugas desde el interior del bucle. Agregar una nueva línea, elegir un número aleatorio dentro de la función resuelve un problema lógico. Si eso es todo lo que vas a hacer, eliminarás la primera referencia a las computadoras número de subrayado. No lo borras porque quiero que notes dos cosas. En primer lugar, el programa parece estar funcionando como si hubiera dos variables llamadas número de computadoras. Segundo, a pesar de que los nuevos valores se siguen
asignando a una variable llamada número de computadoras dentro de la función. Esas asignaciones no cambian el valor fuera de la función. Ejecutar el programa. Ahora para ver que suceda. Funciona bien. Detener el código con control más C. Aquí hay un excelente ejemplo de un alcance variable que
discutimos en una lección anterior en el código anterior. Y el número de computadoras de nombre se usa más de una vez. Hay uno dentro de la función que sí conjetura ronda y uno definido en main. Pero nunca lo hacen los dos se reunirán. Es como si estuvieran en diferentes dimensiones. Lo que le pasa a uno en una dimensión no le pasa a la otra. De hecho, cada vez que se llama a la función do guess round. El variable es una variable diferente, pero tiene el mismo nombre. El programa no recuerda el valor que tenía último stand, la función se llamaba variables que definen dentro de una función se denominan variables locales. Esto significa que cuando estás eligiendo el nombre de una variable dentro de tu función, no
necesitas recordar los nombres de todas las demás variables que has usado. Parte1 de juego de adivinanzas ha terminado. Vuelve a estudiar lo que has hecho hasta ahora, y si estás listo, pasemos a la segunda parte. Gracias por ver.
99. Proyecto : juego de guiones mejoradas (versión 2) - PARTE 2: Ahora es el momento de darle un poco a tu juego agregando un marcador y una forma más fácil de dejar de fumar, no
puedes esperar que tu usuario sepa sobre control más C, el programa se cambiará. Por lo que ese tipo de realiza un seguimiento del número de rondas que ha jugado el usuario y del número total de conjeturas hechas a partir de
las cuales se puede calcular el promedio de conjeturas. Para rondas de seguimiento, el primer paso es agregar una variable llamada rondas totales al programa principal. Entonces hay que incrementar aumento en un total de rondas en las partes principales mientras bucle. Para rastrear conjeturas, el primer paso es agregar una variable llamada conjeturas totales. En la función redonda Dugas. El programa hace un seguimiento de cuántas conjeturas se habían hecho mientras se encontraba en la función. Nombre parte del programa no puede llegar a las variables dentro de la función. Son locales a esa función. Nombraremos esta variable número de conjeturas para que el valor vuelva a la parte principal del programa. Son devueltos por la palabra clave return y almacenados en una variable llamada esta ronda. Se agota un total de conjeturas al agregar este valor a las conjeturas de guion de subrayado total variable. Esto se utiliza entonces para calcular el número promedio de conjeturas por ronda siendo el número total de conjeturas dividido por el número total de rondas. El flujo build-in se usa para cuarto Python para usar la aritmética decimal en lugar de la aritmética entera. Algunas de las declaraciones de impresión en el bucle mientras True se habían cambiado y algunas se han agregado para darle al usuario algo más de información sobre la ronda. Ejecuta el programa para ver que funciona. Enfriar. Ahora detenga el programa y regrese al editor. Este es el final de la segunda parte. Por favor practica lo que has aprendido y luego continúa a la parte final de nuestro juego de adivinaciones Python.
100. Proyecto : confusión mejorada (versión 2) - PARTE 3: Bienvenidos de vuelta a todos. En la parte final del proyecto, pensaremos en una solución cuando un usuario pueda abandonar el programa escribiendo la letra Q. Así que vamos a sumergirnos. Los usuarios no suelen querer dejar algo escribiendo accidentalmente algo. Por lo que en lugar de dejar de fumar de inmediato, una rutina pide al usuario que confirme el abandono. La respuesta por defecto será sí. En primer lugar crearemos la función para confirmar el abandono. Veamos los pasos uno por 11 crear una constante confirmar mensaje equipado para usar como un prompt para confirmar el Quitar, para crear una función llamada confirmar quit y luego confirmar quit function, pedir al usuario que confirme por escribir por qué usar input, los jugadores piden entrada y la respuesta se almacena en una variable llamada confirmar. Confirmar con el usuario escrito es n, luego la función confirmar salir devuelve false. Eso significa que el programa debe abortar la guerra perplejo. Confirmar es cualquier otra cosa incluyendo el usuario presionando enter sin presionar ninguna otra tecla o incluso un N mayúscula, entonces la función devolverá true, confirmando que el usuario quiere salir. El valor predeterminado de la función es confirmar el abandono en lugar de abortarlo. Esto supone que la mayoría de las veces que tu usuario realmente quiere dejar el juego. Ahora seguiremos definiendo un texto de subrayado de salida constante para mantener la letra Q, que es lo que el usuario debe presionar si quiere dejar de fumar. Puedes hacer que hagan un número de retorno de ronda de conjeturas que nunca será un número válido de conjeturas. Algo así como minús1 es ideal ya que el número de conjeturas nunca puede ser negativo. También podrías elegir un número como 100 mil en el supuesto de que nadie jamás hará tantas conjeturas. Mi preferencia es minús1. A continuación, define un programa de salida constante que estás
haciendo adivinar función round volverá si el usuario está renunciando, asignado el valor de menos uno para salir. Azure nuevas constantes después de importar aleatoria en la función do guess round en un cheque para ver si el usuario ha escrito q en lugar de un número. Si han llamado a la función confirmar salir para confirmar. Si la llamada para confirmar quit devuelve un valor de true, entonces abandona. Hacer el programa de retorno bloque de código salir. Esto deja la función y devuelve el valor de menos uno. De no ser así, haz que el bloque de código continúe, hazlo la única línea en el bloque de código. La palabra clave continue hace un reinicio de bucle en la parte superior del bloque de código del bucle, dependiendo del tipo de bucle, esto también puede significar que el contador de bucles se incrementa. Tu nuevo código debe ir después de la línea de entrada. Cada vez que un jugador adivina, se compara
la conjetura para ver si es lo mismo que deja de texto de subrayado. Es decir q Si lo es, entonces se le pide al jugador que confirme llamando a la función de confirmar salir. Si se confirma, entonces hacer adivinar salida redondeada, devolviendo el valor de menos uno, que se almacena en la consonante del mensaje de salida. No es el usuario tecleado Q por error continúa, salta el resto de la iteración actual del bucle y reinicia una nueva iteración. Ya que las conjeturas del jugador en un número, es Q, obtendrías un error. Por esta razón, es necesario omitir el resto del bucle. El último que debe hacer es volver en principal, comprobar si el programa de abandono de valor ha vuelto a la variable esta ronda. Si es debido este, genera un mensaje de postura para imprimir porque el código se está incrementando esta ronda porque espera que el jugador adivine correctamente. Necesita ser decrementado cuando se devuelva el código de programa de salida. Antes de calcular la postura de los jugadores, calcula el número promedio de conjeturas por ronda. El total de conjeturas dividido por el número total de rondas. Para salir del bucle while. Al finalizar el programa,
imprimir el mensaje de estado para agregar algunas declaraciones impresas al final para imprimir las estadísticas. En general en la parte principal del programa. Cada vez que Python devuelve la función de ronda Dugas, ve si se ha devuelto el valor del programa equip. Si lo tiene, el programa prepara algunos mensajes para ser impresos en la salida e imprime fuera del bucle while principal. Después de que se imprimen
los mensajes, se llega al final del archivo en el programa termina. Voy a echar un vistazo rápido a ese programa ahora. Entonces es momento de ejecutar el programa final. Juguemos tres rondas. Olvidé la ronda total. Vamos a dar click. Vuelve a correr. Y funciona muy bien. Ahora quiero darte dos retos y quiero que intentes encontrar las respuestas. Pero primero hay que ver las lecciones y estudiar la sección que trata de errores. Corremos de nuevo el programa y sin ninguna conjetura, presionó el q para dejar de fumar, confirme con sí. Y mira las rondas. El total de rondas son 0. No se puede dividir con 0, claro. El segundo reto es el siguiente. Ejecutar nuevamente el programa y en lugar de un número, presionar una letra es un número de adivinación en un enter, tenemos un error de valor porque el programa acepta sólo enteros. Encontrarás ambas soluciones a los retos si quieres las lecciones de sección que trata de errores. Wow, has hecho mucho. Por favor haz tu tarea, trata de resolver el proyecto por tu cuenta. Entonces ganarás habilidades y aprenderás nuevas áreas de Python que no conocías antes. Y te puede dar una gran confianza y poder
abordar problemas más difíciles más abajo de la línea. Si tienes alguna pregunta, estaría más que feliz de ayudarte. Gracias por ver.
101. Cómo gestionar los errores: La mayoría de código de aplicación de cualquier complejidad tiene errores en él. Los humanos escriben aplicaciones en humanos cometen errores. No obstante, pueden ocurrir errores que no te proporcionan ningún tipo de notificación. Esta sección te habla de diversos tipos de errores y qué hacer cuando tu aplicación los encuentre. La mayoría de los desarrolladores llaman excepciones de error de aplicación, lo que significa que son la excepción a la regla. Debido a que las excepciones dualizan las aplicaciones actuales, es necesario detectar y hacer algo al respecto siempre que sea posible. El acto de ver y procesar y excepción se denomina manejo de errores o manejo de excepciones. Para detectar correctamente los errores, es
necesario saber acerca de las fuentes de error en y los errores habían estado en primer lugar. Cuando sí note el error, debe procesarlo capturando la excepción. Ver una excepción significa examinarla y posiblemente hacer algo al respecto. En ocasiones lo llamas, detecta un error en la aplicación. Cuando esto sucede, necesitas elevar o lanzar una excepción. Ves que ambos términos se usaron para lo mismo, lo que simplemente significa que tu código encontró un error que no pudo manejar. Por lo que un pase la información de error sobre él en otra pieza de código para manejar. En algunos casos, puede utilizar objetos de mensaje Error personalizados para transmitir la información. A pesar de que Python tiene una gran cantidad de mensaje genérico sobre objetos que cubren la mayoría de las situaciones, algunas situaciones o especiales. Es necesario saber cómo manejar las excepciones localmente. Envíalos al código que llamó a tu código. Cuándo crear una excepción especial para que cada parte de la aplicación sepa manejar la exención. Python proporciona la cláusula final que siempre se ejecuta incluso cuando ocurre una excepción. Puede colocar código para cerrar archivos o realizar otras tareas centrales en el bloque de código asociado a esta cláusula. Cuando ocurre un error, gente suele decir que una aplicación tiene un error en ella. Los bugs son simplemente errores de codificación que puedes eliminar usando un depurador. Un depurador es un tipo especial de herramienta que te permite detener o pausar la ejecución de aplicaciones, examinar el contenido de las variables y generalmente la aplicación para ver qué hace que se tick. Los errores caen en categorías bien definidas que te ayudan a predecir hasta cierto punto cuándo termina donde ocurrirán. Los dos tipos principales son flechas que ocurren en un momento específico y errores que son de un tipo específico. Las flechas se producen en momentos específicos. Los dos plazos principales son el tiempo de compilación y el tiempo de ejecución. produce un error en tiempo de compilación cuando le pide a Python que ejecute la aplicación. Antes de que Python pueda ejecutar la aplicación, debe interpretar el código en, ponerlo en una forma que la computadora pueda entender. Si las instrucciones que escribes carecen de información necesaria. Python no puede realizar la conversión requerida. Afortunadamente, los errores en tiempo de compilación son los más fáciles de detectar y corregir. Tiempo de ejecución. Se produce un error en tiempo de ejecución después de que
la python compila el código que escribes y una computadora comienza a ejecutarlo. Los errores de tiempo de ejecución vienen en varios tipos diferentes y algunos son más difíciles de encontrar que otros. Ya sabes, tienes un error de tiempo de ejecución cuando la aplicación
deja de ejecutarse repentinamente y muestra un cuadro de diálogo de excepción. Comprender los tipos de error te ayuda a localizar los errores más rápido, antes y de manera más consistente, lo que resulta en menos errores de diagnóstico. El truco es saber dónde buscar con esto en mente,
Python en la mayoría de los otros lenguajes de programación rompe los errores en los siguientes tipos. Sintáctica, semántica, y lógica. Errores sintácticos, generalmente los más fáciles, un error lógico suele ser el más difícil. En las siguientes conferencias, examinaremos a detalle cada uno de estos tipos de errores. Gracias por ver.
102. Problemas comunes de sintaxis: Cuando encuentras un error de sintaxis por primera vez, es útil saber por qué hubo un problema y qué podrías hacer para corregir el desequilibrio intacto en tu código Python. En esta lección, verás algunas de las razones más comunes por las que se podrían plantear errores de sintaxis. Ya sea que eso se deba a un error tipográfico o a un malentendido de la sintaxis de Python. Y lo más importante, cómo puedes arreglarlos y evitarlos por completo en el futuro. Python hay varios casos en los que no puedes realizar asignaciones a objetos. Algunos ejemplos están asignando dos literales y llamadas a funciones en el siguiente código, vas a ver algunos ejemplos que intentan hacer
esto y el error de sintaxis resultante realiza un seguimiento de atrás. Entonces aquí vamos a tratar de asignar cinco a la longitud de hola. Ahora, como se puede ver, eso ha generado un error de sintaxis diciendo que no se puede asignar a una función gall. Aquí hay otro ejemplo. No se puede asignar a literal. El ejemplo aquí ambos tratando de hacer lo mismo, asignando a una cadena o un entero a literales. La misma regla es cierta para otros valores literales. Una vez más, los mensajes de rastreo aquí indican que el problema ocurre cuando se intenta asignar un valor a un literal. Algo a destacar aquí es que a los ejemplos en el caparazón les falta la línea de código repetida y la zanahoria señalando el problema y el rastreo hacia atrás. Las excepciones y rastreo retrocesos que se ven en poco profundo o diferente a cuando se ejecuta el código desde un archivo. Si este fuera el código, estás en un archivo, obtienes la línea de código repetida y te preocupaste señalando el problema como viste anteriormente. Por lo que este tipo de mal uso del operador de asignación es el tipo de cosas. Ciertamente puedo decir que hago más de lo que no debería admitir. A menudo se ha hecho porque me olvido del signo extra igual cuando intento realizar una comparación. Entonces viendo este primer ejemplo corregido, hace lo que realmente quería, que era comprobar que la longitud del hola sea igual a cinco. Y se puede ver que devuelve el valor verdadero. La mayor parte del viento hacia abajo Python te dice que estás haciendo una asignación a algo que no se puede asignar. Esto es lo que hay que comprobar primero que de hecho deberías estar haciendo una comparación. Palabras clave Python o un conjunto de palabras protegidas que tienen un significado especial en Python. Estas son las palabras que no pueden usar como identificadores, variables o nombres de funciones en tu código. Ellos son parte del lenguaje y sólo se pueden usar en el contexto de Python permite, Hay tres formas comunes en que puedes usar palabras clave erróneamente, mal ortografiando una palabra clave, faltar una palabra clave, o mal usar una palabra clave. Si escribes mal una palabra clave en tu código de Python, entonces probablemente obtendrás un error de sintaxis. Por ejemplo, esto es lo que sucede si derrame la palabra clave incorrectamente. El mensaje lee error de sintaxis, sintaxis
inválida, pero eso no es muy útil. El traceback apunta al primer lugar donde Python pudo detectar algo estaba mal. Para corregir este tipo de error se asegura de que todas tus palabras clave
de Python estén escritas correctamente. Otro problema común con las palabras clave es cuando las echas de menos a todos juntos. Una vez más, el mensaje de excepción no es tan útil, pero el rastreo sí intenta apuntarte en la dirección correcta. Si te mueves de la zanahoria de lo que puedes ver que en la palabra clave falta en la sintaxis de bucle for. También puedes hacer mal uso de una palabra clave protegida de Python. Recuerda que las palabras clave solo están permitidas para ser usadas en situaciones específicas. Si los usas incorrectamente, entonces tendrás una sintaxis inválida en tu código Python. Un ejemplo común de esto es el uso de continuar o romper fuera de un bucle. Esto podría suceder fácilmente durante el desarrollo cuando estás implementando cosas y sucede que mueve la lógica fuera de un bucle. Aquí, Python hace un buen trabajo de decirte exactamente qué está mal en este ejemplo, el método break fuera del bucle te ayuda a averiguar exactamente qué hacer. Si este código estuviera en un archivo en Python también tendría la zanahoria señalándolo bien a la palabra clave mal utilizada. El mal uso de continue sigue un patrón simple de generar un error de sintaxis con un mensaje diferente. Otro ejemplo es si intentas asignar una palabra clave Python a una variable o usar una palabra clave para definir una función. Cuando intentas asignar un valor a un pase, o cuando intentas definir una nueva función llamada pase, obtendrás un error de sintaxis y verás el mensaje de sintaxis no válido. Otra vez. Podría ser un poco más difícil resolver este tipo de sintaxis inválida en el código Python, porque el código se ve bien desde el exterior, si llamas, se ve bien, pero todavía estás recibiendo un error de sintaxis, entonces podrías considerar revisar el nombre de variable o el nombre de función que desea usar contra la lista de palabras clave para la versión de Python que está utilizando, la lista de palabras clave protegidas se cambia con cada nueva versión de Python. Por ejemplo, en Python 3.6, podría
usar un peso como nombre de variable o nombre de función. Pero como Python 3.7, esa palabra ha sido agregada a la lista de palabras clave. Ahora si fuera a usar un peso como nombre de variable o función, y esto provocará un error de sintaxis si su código se está ejecutando en Python 3.7 o posterior. Otro ejemplo es esta impresión, que difiere de Python dos versus Python tres. Imprimir es una palabra clave en Python 2x, por lo que no puedes asignarle un valor en Python tres, sin embargo, es una función incorporada a la que se pueden asignar valores. Puedes ejecutar el siguiente código para ver la lista de palabras clave en cualquier versión de python que estés ejecutando. Una palabra clave también está proporcionando lo útil es función de palabra clave. Si necesita una forma rápida de comprobar la variable path, entonces puede utilizar el siguiente código. Este código te dirá rápidamente si el identificador que estás usando es una palabra clave o no. A menudo, el uso de una sintaxis inválida en el código de Python es una ropa,
paréntesis, corchete o cita mal leída . Estos pueden ser difíciles de detectar unas líneas excesivamente largas de paréntesis
anidadas o bloques multilínea más largos. Se puede detectar desajuste o cita faltada Con la ayuda de los trazados de Python. Estos son los puntos de rastreo al código inválido, donde hay una T y una sola cotización después de nuestra cotización única de cierre anterior. Para solucionar esto, puedes hacer uno de los cambios du. En primer lugar, se puede escapar de la cotización simple con una barras invertidas se ve en el ejemplo aquí. Ya podemos ver que el shell está resaltando este código apropiadamente. Entonces parece que va a estar bien. Python también está contento con ella. La segunda opción es rodear toda la cadena entre comillas dobles en su lugar, como se ve en el siguiente ejemplo, veamos eso en acción. Una vez más, se puede ver que el shell está resaltando esto apropiadamente para una cadena. Por lo que parece estar contento con lo que hemos hecho. También lo es Python. Otro error común es olvidarse de cerrar una cadena con ambos dobles citados en cadenas simples. La situación y los trazados serán los mismos. Esta vez la zanahoria en el rastreo apunta directamente al código problemático. Este mensaje de error de sintaxis EOL mientras escanea el
literal de cadena es un poco más específico y útil para determinar el problema. Esto significa que el intérprete de Python llegó al final de la línea, el EOL, antes de que se cerrara una cadena abierta. Para solucionar esto, cierra la cadena con una cita que coincida con la que usas para iniciarla. En estos casos, el primero sería con una cotización doble, el segundo sería con una sola cotización. Cita que falta en las sentencias dentro de una cadena F también
puede conducir a una sintaxis inválida en Python. Aquí falta la referencia al diccionario de edades dentro de
la cadena F impresa la cita simple de cierre de la referencia clave.
103. Conviértete en un Hunter recompensado de tus: Los bugs son parte integral de la programación. Una vez que te hayas movido más allá del programa más simple que crees, sin duda
te encontrarás con esto. Puede ser una parte frustrante de la experiencia de aprendizaje, pero a menudo encontrarás que es la experiencia más gratificante que te enseñará las lecciones que necesitas para conocer el alarde. Recuerda, nadie crea código sin errores. La clave para encontrar bichos. Metodica. No sirve de nada sólo tratar aleatoriamente de cambiar las cosas. Es mejor tratar de meterse en la mente de lo que la computadora está tratando hacer y ver si realmente está haciendo lo que crees que está haciendo. Muchos han estado en el momento en que parece que está haciendo lo que creo que es, pero en realidad he mirado los detalles de la misma y tal vez he tenido suerte. Y en realidad es mucho menos de lo que originalmente había planeado. Vamos a ver dos formas de resolver los problemas. En primer lugar, la forma de la vieja escuela preferida por Guido van Rossum, quien estaba usando declaraciones impresas. Entonces ahora que vas a ver eso en acción. Y también es posible que encuentres el bicho que está presente en él. Pero la idea realmente va a crear un programa que sea simple de
entender en lugar de crear un error histérico difícil de encontrar. No te preocupes, tendrás un montón de esos con los que lidiar más adelante. Entonces vas a ver un simple juego de adivinanzas de números. El equipo va a pensar en un número entre 110, entonces el usuario tiene que adivinarlo, y luego el equipo le dirá al usuario si lo hizo bien o no. Entonces aquí viene el código. Voy a importar la biblioteca aleatoria para permitirnos generar un número aleatorio. Imprimir un mensaje para el usuario, crear el número aleatorio. Y ahora vamos a dejar que el usuario ingrese sus invitados y asignarle eso a la variable guest. Ahora vamos a comprobar su conjetura es la misma que el número. Y si lo es, les diremos que tienen razón. Y si no lo es, les diremos que se equivocaron. Ahí vamos. El programa está completo y ahora lo vas a ver en acción. Entonces solo lo voy a seguir funcionando hasta que el bug se nos dé a conocer. Y ahí después de la primera vez, a veces muchas más veces de las que esperabas. Pero esa es la naturaleza de la aleatoriedad. Vemos nuestro bicho, dice, lo siento, el número era cinco, no cinco. Entonces hasta este punto, podrías haber pensado que tu programa funcionaba bien. Podrías habérselo mostrado a alguien y estar contentos con ello. Y entonces alguien va a decir Aguanta un minuto. Dijo que el número era cinco, no cinco. ¿ Cuál es el problema ahí? Entonces lo que tenemos que hacer es usar una declaración impresa para ayudarnos a averiguar cuál es el problema. Voy a insertar uno aquí. Y ahora vamos a necesitar volver a ejecutar el programa. En este caso, lo que acabamos de imprimir no nos va a ayudar demasiado porque no es la representación, ese es el problema. Es la información real. Entonces veamos un poco más profundo. Aquí. Vamos a mirar un poco más profundo en esto y ver cuál es el tipo de número y adivinar. Y ahí vemos el problema. El problema es que nuestro número no es negado y t
porque ha sido creado al azar por un punto rand INT. Pero nuestra conjetura es un SDR o una cuerda. Y cuando imprimimos STRS o Ts de iones, se ven idénticos a nosotros en la pantalla. Es posible que hayas notado que este no sería el caso si estás haciendo este tipo de trabajo en el shell de Python. Por lo que es importante darse cuenta de que la impresión puede no siempre mostrarte toda la información que necesitas para encontrar errores sutiles como este. Pero puede ser un método realmente útil y rápido para averiguar qué está pasando cuando se está ejecutando un programa. Entonces en este caso, para solucionar este error en particular, la entrada necesita ahora ser convertida en un INT. Ahora esto caería si el usuario escribe algo que podría convertirse en un INT. Pero en este caso sólo lo dejaremos como es para ser agradable y claro. Entonces ahora volvemos a ejecutar el programa y podemos ver que ambos son INT. Y si lo ejecuto suficientes veces para que la conjetura sea correcta. Por último, llegamos a un punto donde la conjetura fue de cinco y el número fue de cinco. Y podemos ver que el programa funciona como se pretendía. Habiendo visto la acción de impresión siguiente PDB, el depurador python. Por lo que en pantalla se puede ver el programa de adivinanzas de números de buggy de la sesión anterior. Y ahora vamos a importar PDB para permitirnos usarlo para depurar este programa. Por lo que he importado PDB al principio y en el punto donde quiero que PDB se haga cargo de la ejecución del programa, pongo la siguiente línea. También borraré las líneas de código que he adjuntado. Por lo que como puedes ver, el programa se ejecutará normalmente hasta llegar a este punto. Y luego podremos tomar el control de la ejecución paso a paso. Y nos permitirá mirar dentro del programa ya que todavía se está ejecutando en la memoria. Entonces llegamos a ingresar el número normalmente, pero como puedes ver, se ve bastante diferente. La línea del PDB de la izquierda nos muestra que el PDB se ha hecho cargo de la ejecución del programa. Ahora es realmente fácil olvidar dónde estás en el programa. Por lo que una de las instrucciones clave es usar i para la lista. Podemos ver que nos está mostrando una sección
del programa en este caso diciendo que estamos en la línea siete. Y la siguiente instrucción va a ser adivinar si es igual a número. Pero lo que podemos hacer ahora mismo es mirar lo que hay en la memoria de la computadora. Y se parece mucho a una shell Python normal. Si escribo, podemos ver el valor de un número. Si escribo, podemos ver el valor de una conjetura. Y de inmediato esto se trabaja un poco mejor que imprimir porque nos está indicando que esto no es un INT, es una cuerda. Entonces con este solo comando, ya
encontramos cuál es el problema. tanto que con la impresión, necesitábamos profundizar e imprimir
manualmente este tipo de variables en cuestión. Pero dejemos que este programa siga adelante. Y lo podemos hacer con C Para continuar. Como se puede ver, corre hasta el final. Es ilustrativo que funciona con normalidad. Y debido a que este es un pequeño programa sencillo, eso es lo que tenemos que hacer. Ahora si ponemos rastros en un lugar diferente, podríamos hacer trampa. Echemos un vistazo rápido a eso. Entonces ahora lo he puesto antes y necesito poner mis conjeturas para poder hacer trampa. Puedo mirar dentro de la mente de la computadora, ver qué se escoge, y luego poner ese número en, que a veces seremos útiles para permitirte no tener que ejecutar el programa diez, 15-20 veces, etcétera. Veamos cuál es el número. Por lo que ahora puedo continuar. Es pedir insumos. Ahora de nuevo, esto es realmente fácil de arreglar como has visto en el video anterior. Pero la idea de esto era darte una idea de cómo usar el PDB. Pero también el PDB es algo realmente flexible porque no hay que escribir una carga de declaraciones impresas. Se puede simplemente pausar el tiempo afectivamente, mirar alrededor de la memoria de la computadora y resolver lo que está
pasando sin tener que poner 20 declaraciones impresas en. Se puede pasar por el programa y examinar variables cada vez que se presente.
104. Gestión básica de excepciones: Oigan a todos. En esta lección vamos a cubrir cómo puedes manejar errores usando try y except. Entonces, empecemos. Python proporciona una característica vital para manejar cualquier error inesperado en tus programas de Python. Tu aplicación siempre debe captar la excepción y manejarla antes de que el usuario la vea. Para manejar excepciones, debes decirle a Python qué
hacerlo y luego proporcionar código para realizar las tareas de manejo. El try y except enunciados es excelente para manejar errores. Se trata de una declaración de control ya que controla sobre el programa procede cuando se produce un error. Aquí está la sintaxis. Escriba, el siguiente código. El programa intenta ejecutar el comunicado eritema diez dividido por 0, lo cual es imposible. Por lo que se ignora el resto de los bloques try y la sentencia está en el bloque except se ejecuta en lugar del mensaje de error predefinido para cada uno de los diferentes tipos de errores. Si desea mostrar el mensaje, puede usar la palabra clave como después del tipo de error. Por ejemplo, para mostrar el mensaje de error de valor predeterminado, escribe. E es el nombre de variable asignado al error. Este es un ejemplo de uso de los mensajes de error predefinidos y captura de cualquier error inesperado. Para obtener una lista completa de tipos de error en Python, puede consultar este sitio web. Si desea mostrar mensajes de error más específicos a sus usuarios, dependiendo del error,
puede especificar el tipo de error después de la palabra clave exento. Ahora vamos a trabajar en algunos otros ejemplos. El código dentro del bloque try tiene sus excepciones manejadas. En este caso, manejar la excepción significa obtener la entrada
del usuario mediante el uso de las llamadas de entrada INT. Si se produce una excepción fuera del bloque, el código no la maneja. El bloque except busca una excepción específica, en este caso, error de valor. Cuando el usuario crea una excepción de error de valor escribiendo jam en lugar de un valor numérico, se ejecuta
este bloque de excepción. El bloque else contiene todo el código ejecutado con un código try block es exitoso, no genera una aplicación. El resto del código está en este blog porque no quieres
ejecutarlo a menos que el usuario proporcione entrada válida. Cuando el usuario proporciona un número entero como entrada, el código puede comprobarlo para asegurarse de que es correcto. Ejecuta el código y escribe Jim en lugar de un número entre 15. En la aplicación se muestra un mensaje de error. Ahora vuelva a ejecutar el código y escriba 20 en lugar de un número entre 15. El resultado de la aplicación y mensaje de error de rango inesperado. manejo de excepciones no deshierve los errores de rango. Puedes crear un bloque de manejo de excepciones en Python que sea genérico porque no parece una excepción específica. En ocasiones es posible que necesite una excepción genérica. Hagamos un ejemplo usando una cláusula except sin una exención específica adscrita a ella. El resultado es que esta cláusula de excepción también captará cualquier otra excepción que se produzca. El código detecta primero errores específicos y luego utiliza menos manejadores específicos solo cuando es necesario. Ejecuta el código y escribe Jim.
105. Manejo múltiples excepciones: La mayoría de las aplicaciones pueden generar múltiples excepciones para una sola línea de código utilizando una sola cláusula except para manejar diversas excepciones sólo funciona cuando una fuente común de acción cumple con todas las necesidades de excepción. De lo contrario, debe manejar cada excepción de forma individual. En el siguiente ejemplo se muestra cómo manejar múltiples excepciones mediante el uso de una sola cláusula except. Escriba el siguiente código en el editor. Tenga en cuenta que la cláusula except ahora admite tanto un error de valor como una excepción de interrupción del teclado. Estas excepciones aparecen entre paréntesis y están separadas por comas. Ejecuta el código y escribe Alan. Entrar. La aplicación muestra un mensaje de error, vuelve a ejecutar el código y presiona control más c, el mismo mensaje de error. Vuelve a correr y ahora escribe 20 y presiona enter. En la aplicación se muestra el segundo mensaje de error. Cuando se trabaja con múltiples excepciones, suele ser una buena idea colocar cada excepción en su propia cláusula excepto. Este enfoque 'll le permite proporcionar el manejo del cliente para cada excepción y hace que sea más fácil saber con precisión qué renta mal. Por supuesto, este enfoque también es mucho más trabajo. Hagamos un ejemplo de cómo realizar el
manejo de excepciones mediante el uso de múltiples cláusulas excepto. Escriba el siguiente código en el editor. Cada cláusula de examen maneja la exención diferente. Se puede utilizar una combinación de técnicas excepto cláusulas que manejan solo una exención y la otra excepto cláusulas que manejan múltiples excepciones. Ejecuta el código y pulsa el control más c. Mira el mensaje. Ahora corre de nuevo y toma 20. El cambio del mensaje de error al valor que escribe es incorrecto. Una estrategia para el manejo de excepciones es proporcionar las cláusulas exactas excepto para todas las excepciones conocidas y genéricas excepto las cláusulas para manejar excepciones desconocidas. Mira la excepción, una jerarquía que Python utiliza en esta dirección web. En el siguiente ejemplo, usaremos la excepción base, que es la excepción más alta, luego la excepción de interrupción del teclado. Y luego usaremos la excepción específica ZeroDivisionError, lleve el siguiente código al editor. El código comienza por obtener dos entradas, valor1 y valor2. Las dos primeras excepto las cláusulas manejan la entrada inesperada. El tercero excepto las cláusulas planteadas cuando el resultado de una operación aritmética es demasiado grande para ser representado, o un número dividido por 0. La cuarta cláusula excepto manejaba excepciones matemáticas específicas como dividir por 0. Si algo va bien dentro de la aplicación, se ejecuta la cláusula else, que imprime el resultado de las operaciones. Ejecuta el código. Python te pide que escriba el primer número, escriba Udemy, y como se esperaba, Python muestra un mensaje de excepción de error de valor. Ejecute nuevamente el código y escriba cinco es el primer valor y 0 es el segundo valor. Ahora puedes ver la excepción aritmética y el mensaje de error. Aquí. Quería decir que esta excepción aritmética no es tan útil, pero la escribí con fines de aprendizaje. Eliminemos estas líneas de código y ejecutemos todo el código. Ahora puedes ver el error de división 0 volver a ejecutarse y presionar control más C. Esta es la excepción de interrupción del teclado. Por lo que en esta lección he proporcionado cláusulas exactas excepto para la mayoría de los casos. Si tiene preguntas, por favor házmelo saber. Gracias por ver.
106. Aumentar las excepciones: En algunas situaciones tu aplicación debe generar una excepción. este acto se le llama levantar o a veces lanzar la excepción. Veamos algunos escenarios comunes en los que se pueden plantear excepciones de formas específicas. Veamos cómo se plantea una simple excepción de que no requiere nada especial. Los siguientes pasos simplemente crean la excepción y luego manejarla de inmediato. Este código te muestra cómo generar una excepción funciona en su nivel más básico, ejecuta el código en Python muestra la excepción esperada txt. Python proporciona un manejo flexible de errores en que puedes pasar información al llamante, el código que está llamando a tu código, sin importar la excepción que utilices, el siguiente código muestra que puedes modificar la salida para que que sí incluye información útil. El valor de la exención de error, generalmente no proporciona un nombre de atributo para un nombre común para el error de cadena. Pero puede agregarlo sólo asignándole un valor se muestra cuando el ejemplo plantea la excepción y la cláusula except la maneja como de costumbre, pero obtiene acceso a los atributos usando e. A continuación, puede ejecutar el cuadrado e dot. Recuerde, para obtener la información agregada, ejecute el código y las pantallas Python y la excepción de error de valor expandido. Como se puede ver.
107. Cómo Debug en IDLE 2021: Un error es un
problema inesperado en tu programación. Pueden aparecer
en muchas formas y algunas son más difíciles de
arreglar que otras. Algunos bichos son lo suficientemente complicados como para
que no puedas atraparlos con solo leer
a través de tu programa. Afortunadamente, Python idle proporciona algunas herramientas esenciales
que te ayudarán a depurar tus programas con facilidad. Si quieres ejecutar tu código
con el depurador incorporado, entonces necesitarás
activar esta función. Para ello, seleccione depurador de
depuración en la barra de menú inactivo de
Python. En el intérprete,
debe ver la depuración en aparecer justo
antes del prompt, lo que significa que el intérprete
está listo y esperando. Cuando ejecutes
tu archivo Python, aparecerá
la ventana del depurador. En esta ventana, puedes
inspeccionar los valores de tus variables locales y globales a
medida que se ejecuta tu código. Esto le da una idea de cómo
se manipulan sus datos a
medida que se ejecuta su código, también
puede hacer clic en los
siguientes botones para
moverse a través de su código. Vete. Presione esto para avanzar en la ejecución
al siguiente punto de interrupción. Aprenderás sobre estos
en la siguiente sección. Paso, presione esto para ejecutar la línea actual
y vaya a la siguiente. acabó. Si la línea actual de código
contiene una llamada a función, presione esto para pasar
por encima de esa función. Es decir, ejecutar esa función para
pasar a la siguiente línea. Pero no se detenga al
ejecutar la función a menos que haya un punto de
ruptura. Si la línea actual de
código es una función, presione esto para
salir de la función. Es decir, continuar la ejecución de esta función
hasta que regrese de ella. Ten cuidado porque no
hay botón de retroceso. Solo puedes dar un paso adelante en el tiempo a través de la ejecución de tu
programa. También verás cuatro casillas de verificación
en la ventana de depuración. Globales, sus programas de información
global, locales, sus programas
información local durante la ejecución. Pila, la función que
se ejecuta durante la ejecución, fuente, su archivo
en el editor inactivo. Al seleccionar uno de estos, verá la
información relevante en su ventana de depuración. Breakpoint es una línea de
código que has definido como un lugar donde el intérprete debe pausar mientras
ejecuta el código. Solo funcionarán cuando se
active el modo de depuración. Asegúrate de que hayas
hecho eso primero. Para establecer un punto de interrupción,
haga clic con
el botón derecho en la línea de código que
desea pausar. Esto resaltará la
línea de código en amarillo es una indicación visual
de un punto de interrupción establecido. Puedes establecer tantos puntos de interrupción
en tu código como quieras. Para deshacer un punto de interrupción, haga clic con el botón derecho nuevamente en la misma línea y seleccione Borrar punto de interrupción. Una vez que hayas configurado tus
puntos de interrupción y activado el modo de depuración, puedes ejecutar tu código
como lo harías normalmente. Aparecerá la ventana del depurador y
podrás empezar a pisar
tu código manualmente. Cuando veas un error reportado a ti en el
intérprete python, te
dejaré
saltar al archivo
o línea ofensivo desde la barra de menús. Todo lo que tienes que hacer es resaltar la línea reportada o el número de nombre de archivo con tu
cursor y seleccionar depuración. Dirígete a las
líneas de barra de archivos en la barra de menús. Esto abrirá el expediente
ofensivo y te
llevará a esa línea
que contiene el error. Esta función funciona
independientemente de si el modo de depuración está activado o no. Python idle también está proporcionando una herramienta llamada visor de pila. Puedes acceder a él bajo la opción de
depuración en la barra de menús. Esta herramienta
te mostrará la barra
de pista de un error tal y como
aparece en la pila. Y la última línea de
la excepción que Python inactivo encontró
al ejecutar su código. Cuando se produce una flecha inesperada o
interesante, posible que
te resulte útil
echar un vistazo a esa pila. De lo contrario, este futuro puede
ser difícil de analizar y es probable que no te resulte útil
a menos que estés escribiendo código muy complicado.
108. LA LA roja, papel , tisa,: Bienvenido a rock-paper-tijera,
un juego de línea de comandos. En las próximas lecciones
aprenderás sobre escribir un juego de línea de comandos
rock-paper-scissors, manejar la entrada del usuario, hacer bucle para múltiples
juegos seguidos, crear funciones
para agrupar código, usar diccionarios
para almacenar reglas y reemplazar constantes por
objetos Ina. Una nota rápida sobre las versiones. Todo el código en las lecciones fue
probado usando Python 3.9. No hay mucho aquí
que sea primero y específico. Cualquier intérprete
que comience con Python 3.4 funcionará bien. El camino común para
interesarse en programación es a través
del amor a los videojuegos. Esto hace que escribir
tu propio juego o lugar
lógico para comenzar cuando
estás aprendiendo a codificar. Los juegos gráficos tienen
cosas extra que aprender porque estás lidiando con
retirarte a la pantalla. Los juegos basados en línea de comandos son la forma perfecta de entrada. Se llega a escribir algún juego de jugador de
código, pero no ser enterrado bajo un poco de menosprecio o matemáticas vectoriales. Si nunca has jugado antes, rock-paper-tijera es
un juego de dos personas a menudo usado para decidir rápidamente quién
va primero y un juego de mesa, ¿quién consigue el primer trozo de pastel? Ronnie, decisión simple. Cada persona cuenta hasta tres, sacude el puño y
luego hace un símbolo. A esto se le llama tirar. Los símbolos hacen que las tres vías circulen cada símbolo
golpeando al otro. Las elecciones son y hacer un puño mostrar rock, rock
aplasta Tijeras, hacer una palma para mostrar papel, papel cubre rock,
o mostrar dos dedos. Cuidado donde
apuntas a los de Gran Bretaña para hacer las tijeras,
tijeras cortan papel. Para construir una
versión basada en texto del juego, necesitarás tomar la entrada del usuario, elegir
aleatoriamente el
lanzamiento de una computadora y comparar quién. A continuación, te mostraré cómo
obtener entrada de los usuarios y luego bucle para crear
una reproducción repetida. Gracias por ver.
109. Rock, papel , tisa, con la entrada de Python y los bucles: En la lección anterior, di una visión general del juego. En esta lección, te mostraré
cómo obtener información de los usuarios y luego usar un bucle para
crear una reproducción repetida. La forma más simple
del servicio de juego tomando la elección del usuario, haciendo que la computadora
elija una respuesta aleatoria, luego mostrando los
resultados del usuario. Veamos algún código
para hacer precisamente eso. Inicie sesión en su cuenta. Aquí empezarás
por escribir el código. El primer bit de
código que vas a la cinta es importar al azar. Esto carga el
módulo Python llamado random. Este módulo contiene
funciones que permiten seleccionar
aleatoriamente entre
opciones y números. Lo usarás para elegir la respuesta de la computadora
al jugador. Hablando de opciones,
querrás
especificar cuáles son las opciones. En la siguiente línea,
declararás opciones, una lista que contiene las cuerdas, la roca, el papel y las tijeras. A continuación vas
a escribir una línea que imprima un reto
al jugador. Entonces escribe paréntesis de impresión, doble comillas, haz tu tiro. Cierre doble comillas
y paréntesis. A continuación, hay que
pensar en una forma que solicite una respuesta de jugador. Esto se hace con la función
de entrada. La función de entrada incorporada toma una cadena que se utiliza para
preguntar al usuario y devuelve
lo que el usuario haya escrito. La elección del usuario se
almacenará en la variable denominada user choice. No deberías aceptar nada
al azar por parte del usuario. Quieres asegurarte de que
sea una elección válida. Por lo que usarás la función IF. Por lo tanto escriba si
elección del usuario en las opciones. Esta línea verifica
que el usuario escribió en uno de estos elementos
en la lista de opciones. Si es así, entonces la siguiente línea selecciona
aleatoriamente la respuesta del
equipo. La
función de elección de módulos aleatorios toma una lista y elige aleatoriamente uno
de los elementos de la lista. Se devuelve la selección y en este caso se almacena a elección de
la computadora. A continuación, vamos a escribir una línea de
comandos que contenga una declaración de impresión que muestre
los resultados al usuario. Escriba imprimir paréntesis abierto,
y pulse Intro. Si no has visto
en f string antes, es una forma de crear una plantilla que
Python rellenará. Una cadena f tiene el prefijo con la letra F, de ahí el nombre. Entonces busca
soportes de corsé. Esos son los rizados
dentro de la cuerda. Los valores en los corchetes de corchetes se sustituyen por sus variables
correspondientes. En este caso, la elección del
usuario y los valores de elección de la computadora se
insertan en el tramo. Presione Intro. Todo es entonces puesto en la pantalla
por la función de impresión. Dado que la función IF comprueba valores
válidos, querrás decirle al usuario si no eligió
algo válido. En la siguiente línea dentro de
esta cláusula else, dígale al usuario qué
escribieron y dígales que no fue
una buena opción. Veamos el juego en acción. Aquí. Correré el guión al rock, y me dice
que elegí el rock y la computadora
a través de tijeras. Déjame ejecutarlo una vez más. Esta vez, entraré a piruleta. No, no es una elección válida. Cada vez que quieras
jugar el juego, ejecutar el comando
es mucho trabajo. No tanto, pero aún
puedes hacerlo más fácil. ¿ Qué tal preguntarle al usuario
de la garganta abajo de nuevo? Para ello, necesitarás envolver toda la lógica del juego en un bucle. Después de que se muestre el resultado, pregunte al usuario si
quiere volver a jugar. Vamos a modificar el código. El primer paso es
agregar un bucle infinito. Después de las opciones de lista
con un bucle while. El while statement loops
hasta que la condición asociada a ella se
evalúe como falsa, es verdadera, nunca
evaluará a false. Este bucle continúa para siempre. El siguiente trozo de trabajo
es el código anterior, pero incrustado dentro del bucle. Entonces presionaré una pestaña antes de
cada línea de código que hablamos de sangría en Python y por qué
es tan importante. Solo para recordar, la sangría
es el espacio en blanco,
espacios y pestañas líderes antes de
cualquier declaración en Python. El motivo por el que la sangría es importante en
Python es porque Python trata las
declaraciones que tienen el mismo nivel de sangría, declaraciones que tienen
igual o ningún espacio en blanco antes entonces como un
solo bloque de código. Una vez que se ha jugado Around. Este proceso, el usuario, si
quieren volver a jugar,
volvamos a llamarlo variable. A continuación, agregarás un prompt de entrada. Si el usuario quiere volver a jugar. Voy a agregar una nueva
línea que comprueba
las respuestas de los usuarios y ve si
coincide con M. Por ahora, se llama
al método dot lower en la respuesta antes de
que se compare. Este método devolverá la versión en minúscula de la cadena a la que
se está llamando. De esa manera si el usuario
ingresa capital N, se convertirá en una n minúscula antes de
que se compare. Si el usuario indica que no, entonces se llama a la
sentencia break. La declaración de break te rompe fuera del bucle circundante. En este caso, el código
continuaría hasta la siguiente línea. Si el usuario escribe algo por n, Se supone que significaban sí. En este caso, el
código dentro del bucle continúa aquí
agregarás una impresión vacía, que mostrará una línea en blanco. Después de eso, la ejecución continúa de vuelta a la
cima del bucle while, pidiéndole al usuario que haga
su próxima emoción. Simplemente porque es vuelo, el código dice
adiós al usuario después de romper
del bucle while. Aquí está el nuevo
código modificado en todo su esplendor. Permítanme ejecutar el código. Voy a entrar en una elección
esta vez, aunque papel. Me muestra lo que tanto la computadora como yo escogí
y luego nos pide. Si quiero volver a ir, voy a TBS y el juego continúa. Vamos a elegir el papel de nuevo. Ahora creo que ya he terminado. Mira, ¿no es agradable
que se haya despedido, solo traer las elecciones
no es lo suficientemente bueno. En la siguiente lección, te
mostraré
cómo decir quién ganó.
110. Rock, papel , tisa, con Python cómo determinar un ganador: En la lección anterior, ustedes empezaron escribiendo el código inicial para tijeras de papel de
roca. En esta lección, te
mostraré cómo agregar código que declare el
ganador en cada ronda. Simplemente mostrándote las elecciones
que el usuario hizo a derecha de
la elección de la computadora se siente como un poco de peso ligero. Agreguemos algún código
para decir quién ganó. Tendrás que
codificar la lógica para cada situación de x beats. ¿ Por qué? Somos roca
smashes tijeras, papel cubre roca y
tijeras corta papel. Como lógica para determinar quién va un tipo de juntos, sería mejor poner
esto dentro de una función. Incluso podría nombrarlo
algo significativo. Empezarás a modificar
el código anterior con la
lógica de determinación del ganador dentro de él. Es una buena práctica
agrupar bits de código relacionados
juntos y funciones. Esto permite la reutilización del código
a través de múltiples llamadas a la función y la
claridad de leer su código. Después de la lista de opciones, vas a agregar
una nueva línea que declare la función show
winter. Se necesitan dos argumentos. El primero se denomina elección del usuario y la segunda opción de computadora. En la siguiente línea,
vas a comprobar si el usuario y la computadora
eligieron el mismo valor. Si SIL, la elección del usuario es la misma que la elección de la
computadora. Después en la siguiente línea, el programa imprime que
hubo empate y ambos usuarios eligieron la selección
específica. La siguiente línea
agregará else-if, que solo se ejecutará
si el usuario y el equipo eligieron valores
diferentes. Esta línea comprueba si
el usuario eligió rock. Si lo hicieron,
hay dos subcasos. El equipo eligió tijeras
y por lo tanto el usuario uno. El equipo eligió papel
en la computadora uno. Recuerda, si la
computadora es elegida rock, no
llegarías
aquí es que poco de lógica es atrapado por esta línea. El siguiente paso es
agregar una e Lyft Line, que es similar a esta
línea, pero para el papel. Lógica similar está contenida con el bloque else-if
procesando las condiciones de ganar y perder para el papel. Entonces lo vuelves a hacer
frente al IRS y sus condiciones asociadas de ganar
y perder. Por último, si se escribía algo
más que roca, papel ,
o tijeras, está atrapado por la cláusula else. Al escribir esta línea de código. En este caso, se le dice al usuario
que su garganta era mala. El código en el bucle wild
está bastante cerca de antes, justo con la nueva línea que llama a la función show winner. Eliminar estas líneas de código, no las necesitamos. Vamos a escribir el nuevo
código aquí mismo. Ya están listos para jugar,
vamos a ejecutar el juego. Todo tipo ROC. Sé jugar de nuevo. Rock una
vez más y se obtiene la idea. Un gran blog si-entonces otro
como acabo de demostrar, puede ser un poco difícil de leer. Sólo empeora
cuantas más condiciones hay
que comparar. Este tipo de código es tan
común que Python 3.1 L tiene una nueva estructura de palabras clave
llamada coincidencia de patrones. Esto es un poco nuevo de
una sintaxis en Python que muestra una serie de
opciones basadas en un patrón. Esta estructura te
permitirá escribir grandes si entonces otros bloques con
menos líneas de código. Si estás acostumbrado a cambiar declaraciones en otros idiomas, es una custodia de eso. Hubo algún debate
sobre la declaración de
coincidencia de patrones , pero sin embargo, es posible que
te sientas al respecto
hasta que Python 3.10 esté fuera, estás atascado con si
entonces otra cosa o eres tú. Permítanme mostrarte una ola usando estructuras de
datos en
tu código ayuda a simplificar la cantidad
de lógica de codificación y reducir el tamaño del if. Entonces de lo contrario bloquear. Vamos a añadir
dos nuevos diccionarios, beats y mensajes justo
después de la lista de opciones. Tomemos el primer cambio
en el programa anterior, que es la introducción
del diccionario beats. Este diccionario está almacenando el qué cuentas, qué condiciones. Cada clave del diccionario es, punto en contra de la lista
de cosas que late. Entenderás por qué usar
la lista en la siguiente lección. Esta línea codifica el
hecho de que la roca late a las tijeras el papel late a la roca
y las tijeras late al papel. Podrías simplificar
el mensaje al usuario cambiando el
idioma para decir x beats y En lugar de tener los detalles
de rock smashes tijeras. Pero en cambio el verbo que describe la acción ganadora dentro otro diccionario
llamado mensajes. Cada clave en este diccionario es una tupla
que describe qué late, qué. El primero dice
que cuando la roca late tijeras usan la palabra smashes. Esto se puede simplificar simplemente
teniendo el ítem ganador B, la clave de este diccionario. Pero la siguiente lección agrega cierta complejidad para la que
esto se prepara. En la siguiente línea codifica
que el papel cubre la roca, y en la siguiente línea,
tijeras corta papel. Déjame desplazarme un poco hacia abajo. Cuando las reglas del juego
codificadas en diccionarios, el código para show winter
se vuelve un poco más simple. línea 1819 son las mismas que antes de verificar
la condición tailandesa. Pero ahora tendrás que cambiar el trozo de la si-entonces más previamente la comprobación de datos
malos se hizo al
final de la función. Lo moveré aquí arriba. Eliminemos las
líneas de 20 a 36. El método DOD keys en el
diccionario beats devuelve una lista
de todas las claves válidas. La elección del usuario no está en eso. Significa que no
fue una elección válida. El bloque else que
comienza en la línea 22 ahora contiene todo el que va a
ser es ¿qué lógica? Esta línea, haré una comparación
booleana comprobando si las elecciones de la computadora en la lista de
cosas que son BY,
por la elección de los usuarios. Si el usuario eligió el rock, la roca clave se
aplica a los latidos. Devolver la lista
que contiene solo tijeras. Si la computadora eligió tijeras, entonces hay un partido y la
comparación booleana resultante es verdadera. Estos valores almacenados
en victorias de usuario. La siguiente línea entonces evalúa el booleano llamado usuario gana. El usuario sí ganó de lo
que miran el verbo apropiado en el diccionario de
mensajes usando la tupla de
elección de usuario y computadora como clave para las elecciones
de rock y tijeras, el resultado será aplasta. Con el verbo, listo para ir. Todo lo que queda hasta es
el usuario es la buena noticia. Esta cadena f muestra
la elección del usuario, la elección del equipo
y el verbo asociado. Tenga en cuenta que dentro de
los corchetes de soporte para la elección del usuario, hay algo más que solo
la variable allí. Una cadena f
le permite llamar a métodos en objetos de cadena que no mayúsculas método devuelve una nueva cadena con la primera
letra en mayúscula. Esto hará que el comienzo
de la oración parezca correcto. Por supuesto, el usuario
no siempre gana. La cláusula else hace
la lógica del espejo. Como la computadora es una, el verbo se mira hacia arriba usando el reverso de la tupla
en el bloque anterior. Entonces se
le dice al usuario las malas noticias. El código es un poco
más corto que el bloque grande si entonces else de
la lección anterior. Quizás ni siquiera valga la
pena en este caso, pero cuando el juego se complica
más, habrás ahorrado mucho trabajo. No hay mucho que ver aquí que no
has visto antes. El código fue refactorizado, pero
se supone que el resultado final es el mismo proceso de toma de
decisiones de tres vías simplemente no
es lo suficientemente complejo. Enhorabuena, acabas de terminar
de codificar un juego en Python. Ahora ya sabes cómo crear tijeras de papel de roca
desde cero. Y eres capaz de
ampliar el número de posibles acciones en tu
juego con un mínimo esfuerzo. Escribir juegos es la forma divertida obtener práctica escribiendo código. En este proyecto,
se implementa una versión basada en texto de tijeras de papel de
roca. Pides al usuario
entrada y validada, en
bucle o código para permitir repetidas jugadas
agregadas para mostrar función de invierno
para determinar quién ganó y simplificó tu función show
winter al reemplazar algunos lógica condicional con una representación de datos
almacenada en el diccionario. Espero que hayas encontrado valor
en este proyecto. Gracias por su
atención y los
veré en la próxima lección.
111. Qué es la programación centrada con objetos (OOP): Hola a todos. Quiero darles la bienvenida a nuestra lección de programación orientada a objetos en Python tres, este es uno de los temas más grandes e importantes en toda la programación. Y como pueden ver, tenemos mucho que cubrir. Esta serie te proporcionará un entendimiento conceptual básico de la programación orientada a objetos para que puedas llevar tus habilidades de programación de Python al siguiente nivel. Para apreciar plenamente el tema, primero
tenemos que entender por qué necesitábamos programas o cosas demasiado complicadas. Y hay un 100 formas diferentes en las que puedes definir qué es formal un programa. Aún así, básicamente todos los programas o conjunto de instrucciones para manipular datos de alguna manera significativa. Cuando enseño Python a los niños, siempre les
hago escribir un programa que calcula cuántos días tienen. Y ese es un gran ejemplo de un programa que sigue estos tres pasos. En primer lugar, el programa tiene que preguntar al usuario su fecha de nacimiento. Esos son los datos que va a aceptar. Después manipula los datos restando la fecha actual de la fecha de nacimiento del usuario. Por último, el programa muestra el resultado de este cálculo en la pantalla. Ese es un gran programa de inicio, pero es muy trivial. ¿ Cómo gestionamos grandes programas con muchos datos para realizar un seguimiento como un videojuego. Como habrías adivinado, ahí es donde entra la programación orientada a objetos. programación orientada a objetos, o OOP para abreviar, es un paradigma de programación bastante común. De manera formal, esto significa que es una forma específica de diseñar programas, como un estilo que es ampliamente utilizado en proyectos de software. No todos los programas deben escribirse con eso. Oop, pero muchos lo son. Y muchos idiomas soportados. Mucho del código Python con el que interactúas a diario se escribirá usando OOP. Entender esto es una parte fundamental de convertirse en un programador de gripe Python. Abre la puerta a la creación de software realmente genial. En el corazón de OOP está la idea de que un programa está compuesto por muchos objetos individuales. Se puede pensar en estos objetos es entidades o cosas en su programa. A veces son como los sustantivos de tu proyecto, como la persona, una casa,
un correo electrónico, o cualquier otra entidad así. Estos objetos son como pequeños paquetes de datos que se pasan a lo largo de toda la vida de su programa. Por ejemplo, una persona podría tener propiedades como nombre, edad y una dirección de domicilio. Se trata de los datos individuales que el objeto almacena a lo largo de su vida en el programa. Cuando creemos este objeto persona, nos aseguraremos de darle un nombre y una edad y una Dirección. Los objetos también tienen comportamientos. Estas son las acciones que el objeto puede llevar a cabo. Nuestra persona debería poder caminar, hablar y respirar, por ejemplo. Con frecuencia, estos comportamientos serán necesarios para ser referenciados en las propiedades del objeto. Por ejemplo, si hacemos que nuestro comportamiento hablador imprima el nombre y la edad de la persona, entonces nuestra persona objeto necesitaría saber cuál es su edad y nombre. Esas propiedades que le dimos antes. Si todo esto parece un poco confuso ahora mismo, no te preocupes, cuando empecé a programar, este fue el primer obstáculo real con el que me encontré. Y sólo tomó algo de dedicación y práctica hasta que finalmente lo entendí. Haremos un uso pesado de los objetos a lo largo del resto de estas lecciones. Y te encantará la sensación que obtienes cuando solo clics para ti. En el siguiente video, aprenderemos a definir nuestros propios objetos usando clases de Python. Te veré ahí.
112. clases en Python: Bienvenido de nuevo a nuestra serie de videos sobre programación orientada a objetos en Python. En el último video, aprendimos qué es la programación orientada a
objetos y qué problema resuelve. Ahora echemos un vistazo a cómo podemos definir nuestros propios objetos en los programas de Python. Para crear nuestros propios objetos, utilizamos clases de Python. Las clases se utilizan para crear objetos prácticamente tantos objetos únicos como queramos. También definen un tipo. Por ejemplo, echa un vistazo a este código. Mi nombre de subrayado es igual a Austin. Aquí creamos una nueva variable llamada mi nombre con un valor de Austin. Detrás de las escenas a variable es realmente hacer referencia a un objeto. El tipo de objeto es STR, abreviatura de cadena, que se construye sobre el tipo de datos de Python que probablemente hayas usado antes. Python define una cadena es una clase y con el fin de crear este tipo de objeto de STR, instanciamos la clase STR para instanciar una clase o para crear una instancia de una clase, solo significa crear un objeto a partir de esa clase. Tienes aquí la palabra instanciación tirada mucho en programación. Entonces solo recuerda, significa tomar una clase y crear un objeto a partir de esa clase. Para que esto quede un poco más claro, voy a usar una de mis analogías favoritas. Digamos que estamos escribiendo un programa que crea puertas. Empezaremos por crear una clase para una sola puerta. Esta clase aquí es como el plano para el que construimos todos nuestros objetos de puerta. En la clase se especificarán algunas propiedades y comportamientos. Recuerda, cada uno de nuestros objetos de puerta tendrá estos y habrá independiente a cada objeto de puerta. Una puerta podría tener propiedades como altura, color de
pintura, y si actualmente está o no bloqueada. También podría tener comportamientos como abrir, cerrar y cerrar el bloqueo de la llave. Hemos definido una clase de puerta, pero también acabamos de definir un tipo nuevo que podemos usar en nuestro programa. Vamos a crear un objeto de puerta con una altura de 50 pulgadas, pintado de naranja. Y solo diremos que lo construimos, está desbloqueado. Aquí. Acabamos de instanciar la clase puertas. Recuerda, eso significa que hemos creado un tipo de puerta de objeto a partir de nuestra clase de puertas. Y no nos limitamos a crear uno. Al igual que en el mundo real podemos construir muchas puertas a partir de un plano de una sola puerta. Podemos iniciar muchos objetos de puerta desde nuestra clase de puerta única. Aquí he instanciado una más. Observe que cada uno de estos objetos de puerta es único. Tienen tanto alturas como colores diferentes y cada uno de ellos puede ser bloqueado o desbloqueado en cualquier momento. Podemos cambiar el color de la pintura de una sola puerta y eso no afecta al resto. Estos objetos son todos independientes y ya no dependían de la clase. La clase solo le dice a Python cómo crear los objetos. Aquí hay una pregunta. ¿ Se puede pensar en cualquier escenario en el que las clases y los objetos podrían ser utilizados en un programa del mundo real. En el siguiente video, te daré algunos ejemplos y luego aprenderemos sobre cómo se construyen realmente las clases en Python.
113. Atributos de clase e Instance: Bienvenido de nuevo a nuestra programación orientada a objetos en Python. En el último video, hice la pregunta, vamos a usar clases y objetos en software real. Se me ocurrió dos ejemplos, videojuegos en navegadores web. Para un videojuego, podríamos definir una clase enemiga en propiedades de Holt como el nombre del enemigo, su salud actual y su nivel de poder. Por conductas podrían ser capaces de atacar, recibir daños, y finalmente, si su salud es lo suficientemente baja, declararon derrota. Los videojuegos son un gran ejemplo de diseño de software orientado a objetos complejos. construyen con montones y montones de clases y luego se basan el uno del otro de alguna manera u otra. El navegador web que estás usando en este momento también se puede diseñar con OOP. Cada una de las presas individuales puede ser sus propios objetos instanciados desde la clase de tabulación. Las propiedades podrían ser el texto del título, tanto si la pestaña es actualmente la que se viendo y también la página web que está mostrando la pestaña. Por conductas podríamos tener ropa y recargar. Ahora, mira cuidadosamente cada una de estas propiedades. Creo que el texto del título se está representando como una cadena y si la pestaña está abierta o no. Bueno, esto podría ser booleano, verdadero o falso. Pero a qué hora debería nuestra propiedad de página web B, no
hay ningún tipo de datos integrado en Python que pueda almacenar todo sobre una página web. Entonces aquí realmente podemos crear una clase separada llamada página con sus propias propiedades y comportamientos. Como puede ver, las propiedades de una clase Python no se limitan a los tipos de datos
incorporados en Python como INT y SDR. Nuestras propias páginas personalizadas como la página también se pueden utilizar como propiedades de otras clases. Cuando instanciamos una clase TAM a continuación, también
tenemos que proporcionarle un objeto de página para almacenar, igual que tenemos que proporcionarle un objeto STR para el nombre. El objetivo de este ejercicio fue mostrarte pensar software como una colección de objetos que interactúan entre sí. En mi experiencia, la parte más difícil de aprender OOP no es realmente aprender los conceptos en sí mismos, pero aprender a diseñar un software en términos de OOP, planear tu proyecto de software a menudo tarda mucho más de lo que realmente recubrir ella. Es algo que puede desafiar tanto a los desarrolladores nuevos como a los de temporada. Como ya saben, una clase definió tanto las propiedades como los comportamientos de su objeto. Entonces ahora realmente escribamos uno. Para definir una nueva clase, comenzamos con una palabra clave clases seguidas del nombre de la clase. Suficientemente fácil. Y bueno, realmente no hemos aprendido a definir las propiedades son comportamientos en Python. Entonces, solo escribamos caminos. Esta es una palabra clave especial que le dice a Python que esta es una clase vacía. Antes de poder agregar propiedades a nuestra clase, tenemos que aprender sobre cómo funcionan en Python. En primer lugar, las propiedades en realidad se llaman atributos en Python. Estos son dos tipos de atributos, atributos de instancia y atributos de clase. Los atributos de instancia son lo que hemos visto antes. Estos son los atributos que son independientes de
cada objeto como el color de la puerta, o la altura. En el ejemplo anterior. En este ejemplo, nuestros perros clases a atributos instantáneos, nombre y edad. Este guión bajo def, subrayado, init, subrayado, subrayado. Esta es una función muy especial que pertenece a nuestra clase. A esto se le llama el inicializador, y es algo parecido a un constructor. Si alguna vez has visto eso en otro idioma, realidad no
llamamos a esta función nosotros mismos. En cambio, Python llamará automáticamente a esta función cuando instanciemos la clase. En otras palabras, esta función se utiliza para construir un nuevo objeto a partir de la clase. El objeto del inicializador es proporcionar a nuestro objeto valores de atributo iniciales. Se puede ver que este inicializador toma tres parámetros, autonombre y edad. Cuando instanciemos la clase de perro, necesitarás pasar los valores para nombre en edad, y luego esta función asignará esos valores a los nuevos objetos. Self es una palabra clave muy especial, y el hecho de que tengamos que incluirlo en nuestros parámetros es uno de esos pequeños corchos de Python. No pasamos un valor para uno mismo cuando creamos el objeto. En su lugar, el self se utiliza para referirse al objeto actual que se está creando durante la instanciación. Entonces cuando decimos self.age equivale a edad, estamos diciendo tomar el valor de la edad, pasamos y asignamos eso a los nuevos objetos. No envejecer atributo, y lo mismo vale para el nombre. Recuerda antes cómo decíamos que cada objeto tiene sus propios valores independientes por sus atributos como cómo una puerta puede ser naranja y otra gris. Bueno, en realidad no tiene que ser el caso. Aquí es donde entran en juego los atributos de clase. A diferencia de los atributos instantáneos, que son independientes para cada instancia de la clase, clase, los atributos son los mismos para cada instancia. Piénsalo así con atributos instantáneos, podríamos pintar una puerta de un nuevo color y no afectaría los colores de las otras puertas. No obstante, si hacemos del color un atributo de clase y lo configuramos en amarillo, entonces todas las puertas serían amarillas por defecto cuando se instancien. Este es solo un valor predeterminado para la clase. Esto no quiere decir que tengamos que instanciar todas nuestras puertas. Cambiar el color de una puerta cambiará todas ellas. Si estás pensando en estática en este momento, esto es un poco diferente. En el ejemplo de la clase dawn, las especies se definen fuera si la función inicializadora, que significa que es un atributo de clase. Esto significa que cada perro que instanciemos será por defecto un mamífero. Y no podemos cambiar eso cuando creamos un nuevo objeto Dog. En el siguiente video, comenzaremos a programar nuestra clase de perro y veremos cómo funciona la instanciación de clases en Python.
114. Agrega atributos a una clase de Python: Bienvenido de nuevo a nuestra serie sobre programación orientada a objetos en Python. En el último video, aprendimos cómo las clases de Python pueden definir tanto los atributos de clase como
los atributos de instancia para entender mejor cómo se instancian las clases. Vayamos a la cáscara de Python. Muy bien, así que estoy aquí en la cáscara de Python y voy a empezar por crear una nueva clase Perro. Y yo solo escribiré pase, que le dirá a Python que queremos un objeto en blanco. Ahora simplemente llamaré a este perro. Python creará una instancia de eso y en realidad
nos dirá la dirección de memoria de nuestro nuevo objeto Dog. Ese es este número de aspecto elegante de aquí. Ahora vamos a crear otro objeto de perro. ¿ Crees que este nuevo objeto compartirá la misma dirección de memoria que el primero? ¿ O va a ser diferente? Si presionamos aquí, verás que este nuevo objeto tiene una dirección de memoria ligeramente diferente. Esto se debe a que cada incidente de nuestra clase Perro es único. Claro, ambos objetos se crean a partir de la misma clase, pero siguen siendo objetos diferentes en la memoria. Si realmente llenamos nuestra clase con el inicializador, podríamos asignar diferentes atributos a cada objeto. Y solo para conducir este punto a casa, crearé dos perros nuevos y los almacenaré en variables a y b Así que en este punto, a y B son ambas variables que apuntan a objetos en memoria, objetos y tipo perro. Podemos comprobar fácilmente si son el mismo objeto mediante el uso del operador doble igual. Y si presiono enter, veremos que no son a y B apuntando diferentes objetos de perro, pesar de que ambos objetos están en blanco. Y para demostrar que ambas variables son tipo de perro, usaré la función incorporada de Python L, Dale como argumento. Como se puede ver que esta variable apunta a un objeto que fue instanciado desde la clase de perro. Ahora vamos por fin a construir una clase de perro real y crear algunos objetos de perro reales. Estoy aquí en el Python ocioso, y voy a empezar definiendo una nueva clase llamada perro. A continuación, escribiré especies iguales a mamíferos. Esto va a crear un atributo de clase para nuestro perro. Esto significa que cada perro nuevo que creemos va a ser un mamífero por defecto. Pero ahora quiero escribir algunos atributos de instancia únicos. Entonces agregaré un inicializador a la clase escribiendo mi función init. Y ahora vamos a requerir tres parámetros, yo, nombre y edad. Recuerda, en realidad no proporcionamos un valor para el yo, pero sí necesitamos hacer algo con estos nombres y parámetros de edad. Entonces todos le dicen a Python que queremos asignarlos a un nuevo objeto que se está creando. Aquí, las autorreferencias al objeto actual que se está creando. Por lo que self.name es igual a nombre, significa asignar el parámetro de nombre al nombre de este perro. Y eso es todo. Hemos creado nuestra clase de perros. En realidad lo usemos hacia abajo. Crearemos una nueva variable llamada Tommy. Y esto va a apuntar a un objeto de perro. Creamos un nuevo objeto escribiendo el nombre de la clase seguido del paréntesis, casi como si se tratara de una función. Cuando hacemos esto, Python realmente va a llamar al inicializador detrás de bambalinas. Y así tendremos que suministrar nuestros argumentos de nombre y edad. Entonces aquí todos hacen el nombre Tommy y le daremos una edad de cinco años. A continuación, hagamos otro perro llamado Lily, y le daremos una edad de siete años. Enhorabuena, si has estado siguiendo, acabas de crear una instanciada tu primera clase. En este momento tenemos dos perros, uno llamado Tommy con cinco años, y el otro llamado Lily con siete años. Pero, ¿cómo accedemos realmente a los datos dentro de estos objetos? Para ello, podemos usar el modificador de acceso, que en python es el punto. Entonces escribiré una declaración impresa. Diré que en blanco está en blanco y en blanco está en blanco. Y luego llamaré a la función de formación DOD en esta cadena, que nos permitirá poblar estos espacios en blanco. Porque tenemos cuatro espacios en blanco, habrá que pasar en la función de formato Don para argumentos. Entonces pasaré en nombre de tommy dot, Tommy dot, edad, lirio, no nombre Lilly edad amanecer. Estos van a acceder a todos los atributos en ambos de nuestros objetos. Siguiente mira, mira si ambos perros tienen el atributo mamífero. Escribiré si Tommy dont species es igual al mamífero de cuerda, entonces quiero imprimir en blanco está en blanco. Entonces igual que antes, rellenaré estos espacios en blanco con el nombre de Tommy y especies de
Tommy usando la función de formato de punto. De acuerdo, vamos a ejecutar código. Y el lado de arriba aquí podemos ver exactamente lo que esperábamos. Tommy tiene cinco años y Lily tiene siete, que es de nuestra primera declaración impresa. Y luego porque Tom es un mamífero, también
vimos que Tommy es un mamífero impreso en la pantalla. Ahora cambiemos un poco las cosas. Después de crear los nuevos objetos de un perro, cambiemos sus atributos. Entonces subiré unas líneas y escribiré Lily dot h igual a ocho, y luego Tommy hizo especies iguales a ratón. Ahora pausa este video y echa un vistazo a este código y piensa en lo que va a imprimir. Está bien, echemos un vistazo. Ahora vemos que el Tommy tiene cinco y Lily es ocho. Eso se debe a que un cambio la edad de Lily después de que creáramos el objeto. Y note que ya no vemos a Tom es un mamífero. Eso se debe a que cambiamos a Tommy por ser mamífero por ratón. Y de nuevo, lo hicimos después de crear el objeto. Cuando asignamos un valor a estos atributos, no se usó
el inicializador y eso solo se usa cuando creamos nuevos objetos, no modificamos sus atributos. Además, si te das cuenta aquí, ambos objetos Doug son completamente independientes el uno del otro. A pesar de que venían de la misma clase. A pesar de que cambio a Tommy por ser un mamífero por un ratón, Lily sigue siendo un mamífero. Y eso justo ahí está rasgando la superficie del poder de la programación orientada a objetos. En el siguiente video, echaremos un vistazo a los métodos de instancia, que es la elegante forma de Python de decir comportamientos de clase. Te veré ahí.
115. Agrega métodos a una clase de Python: Bienvenido de nuevo a nuestra serie y programación orientada a objetos en Python. En el último video, creamos aquí esta clase Dawn, e imprimimos en la pantalla alguna información sobre cada uno de nuestros objetos de perro. Si recuerdas, creamos objetos de puerta que podrían ser abiertos, cerrados, y troncos. Yo llamo a estos comportamientos sólo para demostrar los conceptos. Pero en Python, estos en realidad se llaman métodos de instancia. Un método es simplemente básicamente una función que pertenece a una clase. Está usando exactamente la misma manera que una función, excepto como el inicializador, debemos incluir un autoparámetro. Vamos a crear en realidad algunos métodos de instancia. En primer lugar, necesitamos una forma para que el perro informe sus atributos y una forma formateada agradable. Crearemos el nuevo método de instancia llamado descripción. Y recuerda que necesitamos incluir aquí el autoparámetro. Y ahora escribiremos return a blank está en blanco años de antigüedad, y usaremos la práctica función de formato para rellenar esos espacios en blanco que pasan en el self.name, self.age como los argumentos. Observe aquí, cómo no estamos imprimiendo directamente a la consola. En cambio, tenemos este método para devolver una bonita cadena formateada con unos atributos de baile horneados en ella. Por lo que tendremos que imprimir manualmente más adelante. A continuación, debemos agregar una forma para que el perro hable algo. Entonces vamos a crear un nuevo método de instancia y llamaremos a éste hablar. Esto tomará el parámetro celular igual que antes, pero quiero que su trabajo sea capaz de decir lo que le digamos. Y agreguemos otro parámetro llamado sonido. Esto deberá proporcionarse cuando llamemos a este método más adelante. Por último, le devolveremos una cadena formateada donde el nombre del punto del perro dice el sonido que pasamos al igual que antes. Ahora eliminemos todo este viejo código de la última vez y crearemos un nuevo objeto Dog llamado Tommy con el nombre de Tommy y una edad de seis años. Al igual que con los atributos, podemos usar el punto para acceder a métodos instantáneos a. Ahora podría ser tentado a escribir aquí la descripción de Tommy dot. Y aunque técnicamente eso no está mal, eso en realidad no arrojaría nada a la consola. Eso se debe a que tenemos el método de descripción DOD que devuelve una cadena formateada en lugar de imprimirla directamente. Y así este código aquí obtendrá esa cadena formateada, luego no hacer literalmente nada con ella. Si realmente queremos verlo, tendrá que pasar el retorno de esta llamada de método a la función de impresión. Siguiente ranura para usar nuestro método de hablar escribirá imprimir Tommy, no hables, y luego pasaremos en gráfica, gráfica. Y ahora si ejecutamos el código, veremos que a la derecha tenemos Tommy tiene seis años, seguido de Tommy Says graph, graph. Como puedes ver son los métodos de instancia funcionan y pueden acceder a ambos atributos que pertenecen al objeto actual así como nuevos datos que pasamos en forma de parámetro de método. Vamos a crear un método de instancia más que
se llamará cada vez que el perro celebre el cumpleaños. Regresaremos a nuestras clases aquí y llamaremos a este nuevo método de cumpleaños. Ahora en el cuerpo método, escribiré en auto edad más uno, lo que aumentará el atributo de edad del perro en uno. En otras palabras, cada vez que se llama a este método, el atributo de edad interna de los perros aumentará en uno. Entonces ahora en la parte inferior, puedo decir Tommy dot cumpleaños y luego puedo imprimir oh, descripción de
Tommy DOD otra vez. Observe cómo no tuvimos que poner una llamada al método de cumpleaños dentro de la función de impresión. Esto se debe a que la función de cumpleaños en realidad no devuelve ningún dato que podamos imprimir. Simplemente cambia los atributos de edad interna de nuestro perro. Entonces ahora si ejecuto el código, podemos ver que el Tommy es gráfico de seis grafos y ahora Tommy tiene siete años. En este punto, casi estamos al final de nuestro tutorial de OOP, pero tengo que advertirte, la última parte puede ser un poco difícil de entender si no
tienes ya al menos una comprensión básica de todo lo que hemos cubierto hasta ahora. Sugiero encarecidamente practicar estos conceptos
creando sus propias clases de Python y luego instanciándolas. Recuerda, una clase puede ser prácticamente cualquier sustantivo. Entonces, mira a tu alrededor y mira si puedes modelar algo en tu código y hazte algunas preguntas sobre cuándo diseñas tu clase, ¿qué atributos como el objeto tiene a todos los objetos tienen el mismo valor para ese atributo por defecto? ¿ O se conocen todos desde el momento en que se crean? ¿ Qué comportamientos exhibe realmente el objeto? ¿ Y cómo podrían estos comportamientos cambiar el atributo del objeto? Si realmente estás preparado para un reto, crea una clase donde uno de sus atributos sea en realidad otro tipo personalizado que definas, tal como hicimos con la clase de tabulación almacenando un objeto de página. Si puedes hacer eso, entonces definitivamente deberías tener un agarre sólido en este material y estarás todo listo para seguir adelante. Y por otro lado, si sigues luchando con esto, no te sientas nada mal. Como mencioné al principio, este es un concepto muy difícil para muchos programadores nuevos de entender, incluyéndome a mí mismo. Requiere que pienses en tu software una manera que probablemente sea completamente ajena para ti. Y esto no es algo que sea fácil de dominar. Si estás confundido sobre algo o simplemente lo olvidaste, es una buena idea volver a ver partes anteriores de la sección. Date mucho tiempo para practicar. Y una vez que sientas que has entendido el concepto, vuelve y aprende sobre el último concepto llamado herencia. Gracias por ver.
116. Introducción a la herencia de OOP: Bienvenido de nuevo a nuestra serie sobre programación orientada a objetos en Python. En el último video, aprendimos acerca de los métodos de instancia los cuales se utilizan para representar los comportamientos son los objetos tienen toda la idea de clases creando objetos, pequeños paquetes de datos asociados y acciones es algo realmente poderoso. Pero también es susceptible a una mala práctica de codificación llamada seca. Dry significa que no te repitas. Esto dice que cuando
escribimos código, debemos evitar copiar y pegar los mismos trozos de código siempre que sea posible. Si estás ejecutando programación Python no trivial y te encuentras copiando y pegando atributos y métodos instantáneos entre muchas clases diferentes. Eso significa que probablemente sea el momento de repensar cómo estás diseñando tu software. Echa un vistazo a este ejemplo. Digamos que estamos escribiendo un programa que se supone para construir, mantener a mucha gente diferente. Como probablemente puedas adivinar, cada persona va a ser un objeto. Pero aquí está la cabaña. Podemos tener objetos de gente general, y luego podemos tener un tipo especial de personas llamadas bebé. Un bebé puede hacer todo lo que una persona normal podría hacer, excepto que podría hacer las cosas un poco diferente como hablar. Además, también podría tener algunos comportamientos únicos que son la persona general no tiene, como la capacidad de tomar una siesta cuando quiera. Ser un bebé suena genial. Como habrías adivinado, aquí vamos a necesitar dos clases diferentes, una para la persona y luego una para el bebé. Te darás cuenta aquí que ambas clases son exactamente las mismas, pero la clase de bebé ahora tiene un comportamiento más llamado siesta. Ahora podríamos diseñar nuestro software de esta manera y funcionaría bien. Pero recuerda, un bebé tiene que ser capaz de hacer todo lo que una persona más general puede hacer, aunque a veces un poco diferente. Esto significa que nuestra clase de bebé va a tener exactamente los mismos métodos de instancia que tiene
una clase de persona en la mayoría de esos métodos van a tener exactamente el mismo aspecto. Pero ahora ¿qué pasa si queremos hacer un cambio a la clase Persona? Si cambiamos la acción de algo como saltar a spinning, entonces también tenemos que cambiar los métodos de acción del bebé también. Y si agregamos otra clase como adulto o adolescente, entonces también tendríamos que mantener a esos dos. Copiar código podría facilitar las cosas en este momento, pero puede hacer que nuestro software sea realmente difícil de mantener más adelante, sobre todo a medida que crece. Para resolver este problema. Demos un paso atrás y pensemos las relaciones que existen entre estas dos clases. Creo que estaría de acuerdo en que un bebé es una persona, ¿verdad? Por eso comparte las mismas conductas que la clase Persona. Entonces, ¿qué pasaría si hubiera una forma de que podamos hacer que la clase de bebé herede
automáticamente cada atributo y método de instancia de la persona, pero luego modificarlos un poco para que se ajusten a las necesidades de la clase de bebé. Entonces podríamos incluso añadir nuestro propio comportamiento como siesta que sería exclusiva de la clase de bebé. A este derecho de aquí se le llama herencia de objetos. Y si se usa bien, hace mucho más fácil administrar muchas clases similares. La herencia nos permite hacer una clase, la clase secundaria, o la clase derivada, o de otra clase llamada la clase padre o la clase base. En Python, la clase secundaria hereda automáticamente cada atributo y método de instancia de la clase padre. Pero también podemos redefinir ciertos atributos o métodos. Entonces si queremos que nuestro bebé objeto hable de manera diferente a lo que una persona objeto lo haría. ¿ Podemos hacer eso? Si queremos que nuestro objeto bebé tenga la capacidad de siesta, también
podemos hacerlo. Y si necesitamos hacer girar a nuestra persona en lugar de saltar, podemos modificar la clase de persona y la clase de bebé que automáticamente recogerá con esos cambios. No hay necesidad de editar código en más de un lugar. Para entender la herencia, Echa un vistazo a este gráfico de la derecha. Y en la parte superior del gráfico está el objeto. En muchos idiomas, Python incluido objeto es la clase padre de todas las clases en el idioma. Esto incluye clases de construcción como el INT o el STR, así
como cualquier clase personalizada que creemos. En este diagrama, se puede ver que bebé hereda de Persona, que a su vez hereda del objeto. Como veremos más adelante, Python ve cualquier objeto bebé que creemos como también una persona y un objeto.
117. Ejemplo de herencia de herencia: Bienvenido de nuevo a nuestra serie sobre programación orientada a objetos en Python. En el último video, aprendimos sobre la idea de herencia, que nos permite definir una clase secundaria que
heredó automáticamente atributos y métodos de su clase padre. Ahora veamos cómo funciona la herencia en acción. Entonces estoy escuchando por el editor de Python y lo primero que vamos a hacer es definir una nueva clase llamada Persona. Veré la descripción igual a persona general, que será nuestro único atributo de clase. Ahora crearemos nuestro método inicializador y le dará parámetros de nombre y edad. Como de costumbre, estableceremos los atributos iguales a estos parámetros. Ahora quería encontrar algunas conductas que toda persona tendrá. Crearé un nuevo método de instancia llamado Speak, y el único parámetro siendo self. Y voy a hacer esta impresión de mi nombre está en blanco y estoy en blanco años de edad. Después para llenar estos vacíos, usaré la función de formato y la pasaré en el self.name. Self.edad es argumentos. A continuación, quiero que nuestra persona pueda comer cualquier alimento que les demos. Entonces diré aquí, def,
comer auto comida, punto y coma, y luego imprimiré un blanco, cada uno en blanco. Y para llenar esos espacios en blanco pasará en nombre propio así como nuestro parámetro de autoalimentación. Por último, demos a nuestra persona la capacidad de realizar una acción. Entonces crearé un método de última instancia llamado acción. Y cuando eso se llame, todos dicen saltos en blanco y pasaré en auto nombre para llenar el espacio en blanco. De acuerdo, así que ahora que tenemos nuestra clase de Persona general, vamos a crear una subclase llamada bebé. Para ello, escribiré a bebé igual que antes, pero luego pondré algunos paréntesis. Dentro de estos paréntesis habrá que aclarar cuál será la clase de padres de bebé. Entonces teclearemos en persona. Y ahora técnicamente si escribiera caminos en el cuerpo de la clase, entonces nuestro bebé será utilizable, pero harán exactamente lo mismo que haría esa persona. Entonces queremos cambiar eso. En primer lugar, redefiniré nuestro atributo de clase de descripción. Yo lo pondré a igual a algo que le guste bebé, y eso debería funcionar. Esta redefinición aquí se llama anulación porque cualquier objeto bebé que creemos utilizará una descripción específica en su lugar con una descripción heredada automáticamente de la clase de persona. Para ello, escribiré def speak con self como parámetro. Y luego diré imprimir mamá, que es sólo algunos dadores de bebé de lo que se me ocurrió. De esta manera donde llamamos método de hablar en un bebé. Dirá este galimatías en lugar de lo que hubiera dicho la clase de padres. Por último, quiero dar a estos bebés y funcionalidad exclusiva. Demos al bebé la capacidad de siesta cuando quiera. Todos dicen def, siesta con un perímetro de yo. Y luego escribiré impreso en blanco, toma una siesta. Y en lugar del blanco, diré autonombre. Ahora, cualquier objeto bebé específico que creemos tendrá la capacidad de siesta, pero un objeto personal más general no lo hará. Todo lo que tenemos que hacer es instanciar estas clases y ponerlas a trabajar. Voy a crear una nueva persona objeto llamado persona, y él tendrá un nombre de John en una edad de 30 años. Entonces quiero llamar a todos estos métodos de instancia de la persona. Entonces escribiré persona punto hablar en persona punto comer. Y le daremos pescado. Y finalmente persona.Toda acción para verlo saltar. Ahora vamos a crear un objeto bebé llamado Baby. Necesito suministrar un nombre y una edad al inicializador para el bebé. Pero si miras, bebé en realidad no tiene un inicializador. Eso se debe a que automáticamente heredó de la clase de persona. Recuerda, este bebé también es considerado una persona y como tal, necesita llenar los atributos instantáneos de la persona también. Entonces le daremos a este bebé un nombre de Van ISIL y una edad de uno. Entonces vamos a llamar a los mismos métodos de instancia de nuestro objeto bebé. Imprimiré tanto las descripciones de nuestra persona como la descripción del bebé. Vamos a ejecutar el código. Todo este ejercicio nos muestra cómo podemos definir una clase secundaria o
una clase derivada que
hereda automáticamente todo de la clase padre o de la clase base. Podemos anular atributos y métodos como descripción y hablar. E incluso podemos extender nuestra clase infantil para agregar nuevas funcionalidades como lo hicimos con el método NAT. Sólo para que esto quede aún más claro, voy a pasar a una nueva línea y tipo persona punto. Si recuerdas, el Don es como el modificador de acceso que
nos permite acceder a atributos y métodos de llamada de un objeto. Dado que este objeto es una persona, observe cómo intellisense no ve el método NAT. Eso se debe a que es específico de la clase infantil y como tal, sólo los objetos infantiles la tienen. No obstante, si elimino esto y cambié a baby y golpeo punto, se
puede ver que tenemos acceso a todo lo definido en la clase Persona así como al Método Net específico. Pero ahora y si nos dicen que necesitamos hacer un cambio en el método de acción, tal vez ahora queremos que ambas personas den vueltas en lugar de saltar, lugar de tener que modificar código en varias clases diferentes. Todo lo que tenemos que hacer ahora es cambiar la palabra salta a la palabra giros en nuestra clase de persona. Ahora si ejecutamos este código, notarás que tanto John como bandas están girando en lugar de saltar. Y no tuvimos que hacer una sola modificación a la clase de bebés. Esta es una de las razones por las que la herencia es tan poderosa. Recuerda cómo antes dije que detrás de bambalinas, Python ve cada objeto como el objeto tipo. Bueno, ahora que tenemos nuestras clases codificadas, puedo mostrarles que eso es cierto. Para demostrar que un bebé es una persona, imprimiré el resultado de esta función especial llamada es instancia. Esta función nos dirá que el objeto específico es un tipo específico. Esta función toma dos argumentos, así que lo pasaré en el objeto bebé para el primero y quiero comprobar si el objeto bebé es una instancia de persona. Si ejecuto el código aquí, verás que en el lado derecho vemos verdad. Y eso se debe a que un bebé es una persona, el bebé objeto del tipo bebé, pero también el tipo de persona porque hereda todo de la clase de persona. Ahora veamos si nuestro objeto bebé es de tipo objeto. Cambiaré la palabra persona aquí por objeto minúscula. Y si ejecutamos este código, veremos que nuestro bebé es de hecho un objeto. Porque el bebé es una persona y la persona hereda del objeto. Por lo tanto, el bebé hereda del objeto a como mencioné antes, cada clase en Python hereda del objeto. Y en realidad no tenemos que escribir eso dentro de la declaración de clase. El motivo de la clase de objeto incluso existente está más allá del alcance de este tutorial. Pero por ahora, solo sepan que nuestros objetos bebé son técnicamente vistos como un bebé, una persona, y un objeto. Y eso es algo así como una breve introducción a la herencia. No lo cubrimos todo, pero esto te da una lista general de cómo funciona la herencia. Como puedes ver, la herencia puede ser extremadamente beneficiosa, pero si no se usa correctamente, puede
ser más un dolor de cabeza que cualquier otra cosa. La herencia es uno de los pilares fundamentales de la programación orientada a objetos, pero no es el único. Y hay aún más a la herencia que no cubrimos aquí. Pero este tutorial está enfocado más en los principios fundamentales de OOP en
lugar de en cualquier característica específica de herencia, polimorfismo, encapsulación. O p es un tema enorme y eso es difícil de dominar. Pero esperemos que ahora tengas al menos un aprecio básico por lo grande que se diseña el software con clases y objetos. En mi opinión, la programación se vuelve mucho más divertida con la comprensión de OOP. Porque puedes ir más allá de escribir programas triviales como un juego de adivinanzas de números, y pasar a escribir software real usando frameworks y bibliotecas como Django y mapa plot lib, codificación feliz.
118. Scripts, módulos, paquetes y Libraries 2022: Python usa mucha terminología
elegante
con la que
quizás no estés familiarizado si eres nuevo
en la programación o si vienes de
un lenguaje diferente. Antes de python, mi
fondo estaba principalmente en c libras y el
punto NET Framework de Microsoft. Recuerdo haber intentado
aprender Python, pero estar algo confundido
por todas estas palabras de moda. Mi objetivo en esta lección
es aclarar algo de esto que no sea tan
confuso para ti más adelante. El script de Python se define mejor como un archivo de Python que contiene
comandos y orden lógico. Para que esto sea
considerado un script, el programa necesita
hacer algo,
realmente, cualquier cosa cuando se
ejecuta a través del intérprete de
Python. Para entender mejor esto, echa un vistazo a
estos dos programas. Ambos programas contienen
una función que devolverá la
suma de dos valores. No obstante, sólo el programa
o el derecho
en realidad llamará a esa función
e imprimirá su resultado. El expediente de la derecha está
destinado a ejecutarse directamente. Entonces podemos ver que
es un script de Python. Por otro lado, el
programa de la izquierda no
parece que realmente esté
destinado a hacer nada. Ejecutar ese archivo
no producirá ningún tipo de salida ya que nunca
se llama a la función, No se
pretende que se ejecute directamente. El archivo de la izquierda se
clasifica mejor como módulo. Eso es porque
podemos importarlo a otros archivos para
utilizar sus clases, funciones, variables
y otros miembros. Está definido. Voy a cambiar el programa de la derecha para que
en lugar de definir la función add
paréntesis, lo
importemos desde el
módulo de la izquierda. Esto tiene el efecto de hacer que
la función de adición la izquierda sea accesible
al guión de la derecha. Por lo tanto,
los scripts cortos de larga historia están destinados a ejecutarse directamente, mientras que los módulos están
destinados a ser importados. script a menudo contiene declaraciones fuera del alcance de
cualquier clase o función. Considerando que los módulos para encontrar
clases, funciones, variables, y otros miembros para su uso en scripts
tan importantes. La palabra scripts y módulos a menudo se
usan indistintamente. Así que ten en cuenta que es posible que
veas que otras personas los usan maneras que no
siguen estrictamente estas definiciones. Los paquetes son una colección
de módulos relacionados. Un paquete puede ser un módulo de Python
individual, pero con mayor
frecuencia son una colección de múltiples módulos relacionados
que se agrupan juntos. Este aquí es el paquete
util fecha que permite realizar operaciones avanzadas
relacionadas con datos. Está incluido en una carpeta
llamada date util. En el interior hay un montón
de módulos individuales, así
como carpetas
que contienen otros módulos que se pueden
importar a sus scripts de Python. Estos son módulos
porque no hacen nada interesante
por su cuenta. Cuando importas uno a tu propio guión, realmente
no pasa nada. Tienes que usar algo
definido dentro de los módulos, como una
función de clase o una variable. Este archivo especial de Intel
le dice a Python que este es un paquete que potencialmente contiene más módulos anidados
dentro de subcarpetas. No podemos hablar de
bibliotecas sin mencionar Python
Standard Library. The Python Standard Library es una gran colección
de módulos y paquetes que vienen
liados dentro su entrega de Python. Eso significa que no
tienes que
descargarlos desde ninguna parte. Simplemente puedes importarlos a tus scripts y empezar a
usarlos de inmediato. Date util es un ejemplo de
un paquete de biblioteca estándar, pero también hay otros
como correo electrónico y JSON. El punto clave aquí
es que mucho de esto en cierta medida
es subjetivo. Los scripts son programas de
Python ejecutables que hacen algo cuando se ejecutan. Módulos o archivos de Python que están destinados a ser
importados en scripts y otros módulos para
que se puedan usar
miembros definidos como clases y
funciones. Los paquetes son una colección de módulos
relacionados que tienen como objetivo
lograr un objetivo común. Por último, la
biblioteca estándar de Python es una colección de paquetes y módulos
que se pueden utilizar para acceder a la
funcionalidad incorporada. En un mundo ideal, importarías cualquier módulo
necesario en scripts de
Python
sin ningún problema. Desafortunadamente,
a menudo ese no es el caso. En el siguiente video, obtendrás una
introducción a los módulos, y te mostraré cómo
escribir un módulo. Gracias por ver.
119. Escribir un módulo: En este video, obtendrás una introducción a los módulos escribiendo un módulo corto propio. Python existen tres tipos diferentes de módulos. El módulo se puede escribir en Python mismo, pero los módulos también se pueden escribir en C y luego cargar dinámicamente en tiempo de ejecución. Y luego también hay módulos incorporados que están intrínsecamente contenidos en el propio intérprete. Y es posible que ya haya importado algunos de ellos en el pasado, como matemáticas o importar dateline aleatoria. Para este video, haré que pruebes la primera opción, escribiendo un sencillo módulo en el propio Python. Déjame que pruebes esto y un editor. En primer lugar, hagamos un nuevo archivo y lo nombremos mod dot PY. Mod dot PY es un archivo Python estándar. Dentro de ella vas a crear una cadena objetos con pequeños List y definir una función. Vamos a llamarlo print_i Pretty toma un argumento llamado ARG e imprime la impresión usando una cadena F. Había una declaración de argumento de que la F es igual al arco en el que estás entrando, llamando a la variable en el encogamiento F. Entonces haz una clase. Haré que lo llames mayúscula con clase. Ahí está tu clase con clase. Y ahora mismo esa clase no hace nada realmente. Simplemente pasa, guarda el archivo y ejecútalo. Lo que puedes hacer entonces desde el shell de Python es tipo en importación. Ya que estabas en el mismo directorio donde creaste el archivo, puedes decir modo de importación. De acuerdo, ¿qué hizo esto? ¿Al importar mod? Has importado todos los objetos que formaban parte de ese código. Se podría decir, OK, bueno, ¿qué es? Mod dot a will mob don a. es ese lyse creado antes para mod dot S. Bueno, eso es una cuerda. Si quisieras usar la impresión, podrías decir,
bien, model.predict ahora está disponible también. El argumento es ¿Qué pasa en print_i imprime que el ARG es igual a dos lo que está arriba? Y puedes hacer un nuevo objeto llamado x usando MOD dot con clase. ¿ Qué es x? Bueno, x es un objeto con clase del módulo mod. Enfriar. Por lo que ahora tienes acceso a todos estos diferentes objetos importando ese módulo, permitiendo mucha reutilización del código. Ahora que has estado importando algo, en el siguiente video, te centrarás en dónde el intérprete busca esos archivos que estás importando.
120. El trazado de búsqueda de módulos: En este video, vas a explorar la ruta de búsqueda del módulo. Entonces de donde se puede importar un módulo desde. Cuando el intérprete ejecuta la sentencia de importación
, busca ese archivo. En tu ejemplo aquí, fue math.pi. Se va a buscar eso y directorios holísticos, las posibilidades o
el directorio actual, decir desde dónde se ejecutó el script de importación. Y también busca en la variable de entorno de ruta de Python, que tiene una lista de directorios. Cuando instalas Python, hay un conjunto de directorios que están configurados como parte de la entrega de Python. También, cuando importas desde módulos de construcción, de ahí viene el código. Y hay una manera de ver todos esos, para ver esta lista de directorios. Déjame mostrarte que en el código dentro del directorio Python 39, hay un archivo math.pi. Si guardaste tu archivo math.pi en ese directorio, puedes escribir import en mod. El archivo math.pi está justo ahí. Genial. Por lo que ahora Ahmad don a está disponible, MA dot S está disponible. Ok. Si querías ver todos esos lugares de los que se pueden importar. Actualmente, existe una herramienta llamada
módulo SYN que forma parte de la biblioteca que puedes importar. Y eso te puede mostrar la ruta actual de Python y los directorios que se configuraron en Python que se instaló, importar SY S, que es un módulo que incluye parámetros y funciones específicos del sistema a los que se puede acceder. Y uno de esos es syst dot path. Por lo que syst dot path te mostrará una lista. Oops, me olvidé el punto. Ojalá puedas ver que aquí con los corchetes que estos son todos los objetos tu intérprete va a buscar cuando escribas la palabra importar y luego busques un módulo en particular que estás importando. Este es el directorio predeterminado en el que estás, directorio actual. Por lo que buscaría ahí mismo. Entonces a partir de ahí, entra en una versión de Python que instalaste. Voy a salir de aquí. Entonces esas son todas las ubicaciones que podrías guardar un archivo, ya sea en el directorio actual o en cualquiera de estos otros directorios que ves después de ejecutar syst dot path, ¿y si quieres agregar ubicaciones para que pueda importar? Esa es una posibilidad de, para demostrar este punto. Voy a hacer que este no sea el directorio actual. Ahora si fuera a escribir import y luego mod, va a decir que no se encuentra horario, es actualmente en ese directorio o en cualquiera de las otras ubicaciones que si importamos sys y usamos esto.tab, no en ninguna de estas ubicaciones que importan está buscando dentro. Entonces, ¿dónde deberías estar poniendo tu archivo de módulo para asegurarte de que tu script que estás usando el comando de importación desde lo confinó. Tienes algunas opciones. Podrías ponerlo en el mismo directorio. El script de entrada está escrito en, que se considera un directorio generalmente el actual. Puede modificar la variable de entorno de ruta de Python, o podría ponerla en uno de los directorios que ya está en esa ruta de Python. También puedes ponerlo en uno de los directorios que están configurados como parte de tu cuota de Python. Ahora, hay otra solución que se puede hacer en tiempo de ejecución. En ese caso, en realidad podría modificar la lista de rutas del SIS. Para hacer eso, vas a usar un append a statement, igual que dependerías de cualquier otra lista. Por lo que en este caso particular, desde la ruta establecida, puede anexar. Y como argumento, vas a entrar en una cadena cruda. Por lo que comienzas con r y la cotización simple. Ahora necesitas la ruta del directorio que simplemente puedes escribir. Cerrando mis comillas ahí, esto es un error de nombre. ¿ Puedes adivinar por qué? Es porque no definieron el paquete sys. Entonces vamos a escribir punto de importación dice volver a ejecutar esta línea de código. Entonces, ¿qué hizo eso? Bueno, si nos fijamos en este camino de punto syst ahora al final de la misma, ha levantado esta ubicación en particular, este directorio en el camino. Si fuera a escribir import mod, ahora puede importarlo en. Genial. Algo que hay que recordar sin embargo, si fuera a anexar esas ubicaciones, son esos directorios para que los importe en que sólo dura para esta sesión en particular. Entonces si fueras a salir y empezar de nuevo para intentar importar mod, no está disponible porque si importas sys y vuelves a usar su ruta, puedes ver que ya no forma parte de esa lista. Por lo que eso tendría que ser parte de tu script de entradas. Entonces agregaría la ruta SIS anexa al directorio. En el siguiente video, vas a sumergirte más profundamente en esa declaración de importación.
121. La declaración de importación: En este video, tomarás una profunda inmersión en la declaración de importación. Formas rápidas. ¿Puede la declaración de importación tomar en su forma más simple? Es como lo que ya usaste en el video anterior, importar y luego el nombre del módulo. En ese caso, los contenidos del módulo no son directamente accesibles al color, por lo que es necesario utilizar la notación de puntos. El módulo crea un espacio de nombres separado. Déjame mostrarte cómo es eso. Ahora ya has practicado esto, pero puedes escribir import mod y luego importaría tu módulo. Ahora el truco para eso es que los objetos que
ya has importado no están en el mismo espacio de nombres local, no
están en la tabla de símbolos local. Entonces si fuera a escribir la letra a y luego el objeto no está disponible, S no está disponible. Print_i, cualquiera de esos objetos no está disponible. Tendría que usar una notación Don comenzando el nombre del módulo primero después de agregar el DOD. Ahora puedo acceder a un o puedes acceder a s o incluso print_i Como nota, puedes importar múltiples módulos a la vez, simplemente incluyendo una coma entre los nombres de cada uno. Como alternativa, los objetos individuales del módulo se pueden importar
así desde y luego importar el nombre del módulo, y luego importan los nombres de los objetos. Y luego usarías los nombres de objetos donde puedes usar varios con comas entre ellos. Los objetos individuales son directamente accesibles para colorear, luego se importan directamente a la tabla de símbolos de color, lo que significa que no tienes que separar el espacio de nombres En ese punto. Déjame mostrarte cómo es eso. Por lo que ahora esos han sido importados de la tabla de símbolos local. S está realmente disponible y también lo es imprimir en el espacio de nombres local no requiere que use la notación de puntos. Sin embargo, hay que tener cuidado, si fueras a crear un objeto a, y digamos que un tiene algunas cadenas en una lista. Hay un. Pero si fueras a importar un desde tu módulo de nodo, ¿qué pasa con la a local existente? Bueno, se ha sobrescrito, y así esto crea una colisión, si se quiere, sobrescribiendo el objeto existente. Entonces hay una necesidad de tener cuidado con el espacio de nombres aquí en nombres genéricos simples. Ahora también es posible importar todo desde un módulo a la vez. En ese caso, será de y luego la importación del nombre del módulo, y luego un signo de asterisco. Probablemente has visto esto antes en un guión o dos, que este lugar es todos los nombres de los objetos en la tabla de símbolos local. lo único que no se importará como cualquier cosa que comience con un guión bajo, manteniéndolo privado al propio módulo. Esto no es necesariamente recomendable a menos que conozcas todos
los nombres que no van a entrar en conflicto o sobrescribir ningún nombre existente, puedes tropezar con algunos problemas. Esto llevará todos los objetos nombrados del módulo a la SymbolTable local. Por lo que ahora clases ahí. El objeto string S. Voy a salir de nuevo. También puedes tener objetos individuales y luego tenerlos nombrados en nombre
alternativo que se vería así desde la importación del módulo, cualquiera que sea el nombre del objeto. Y luego como lo que te gustaría que el objeto se renombrara, como puedes hacerlo varias veces, lo
que hace posible colocar los nombres directamente en la SymbolTable local. Por lo tanto, evitaría conflictos con nombres existentes. Todavía debes tener cuidado con lo que elijas como nombres alternativos. En este ejemplo, todavía tienes variables
locales que se denominan a y otra llamada S, que es una cadena. Aquí están los dos objetos a y como. Entonces si importaras a y S de tu módulo, se
escribiría sobre estos dos. Y lo que puedes hacer es decir desde una importación mod pidiendo darle un nuevo nombre, tal vez nombrelo como solo cadena. Y a es una lista. Por lo que de nuevo, puedes usar esta coma para hacer múltiples importaciones a la vez. Por lo que ahora un sigue ahí y S sigue ahí. Pero string es donde lo importas. Y una lista es también lo que la importa desde el módulo. Otra posibilidad es importar todo el módulo bajo un nombre alternativo. Y en este caso, importas módulo es lo que te gustaría que fuera el otro nombre. Uno común sería importar pandas como pd, por lo tanto, no tener que deletrearlo todo el camino. Si un módulo tiene un nombre realmente largo, algunas personas les gusta acortarlo. Dirías importar mod a, mod S, y luego le darías un nombre diferente. Así que nombrelo, di mi módulo. Entonces ahora mi módulo está aquí y tiene un, un culo. También se pueden importar módulos desde dentro de una función. Déjame mostrarte cómo es eso. En este último ejemplo, crea una función y haré que la nombre importador. Dentro de la función, se podría decir desde MOD importante print_i y luego usar la impresión dentro de ella. Entonces en este momento, MOD no está aquí y print_i no está disponible. Pero si ejecutas importador y llamas a esa función, importó la impresión del módulo mod y luego lo llamas con el argumento hola a todos. A continuación, comprobarás la función DIR.
122. La función dir() función ): Este video trata sobre la función DIR. Después de aprender las diversas formas en que podrías importar un módulo o los contenidos de tu módulo y cómo eso afecta llamar a esos objetos. Te podría interesar aprender a ver
los Definir Nombres que están dentro de un espacio de nombres. Y ahí es donde entra el DIR o la función de directorio. Se trata de una función incorporada y devuelve una lista de nombres definidos en un espacio de nombres. Si no le das ningún argumento, produce una lista ordenada alfabéticamente de todos los nombres que se encuentran actualmente en la tabla de símbolos local. Echemos un vistazo a eso. Al ejecutar DIR solo, verás estos objetos. Si fueras a crear un nuevo objeto, Hacer una lista llamada gana. Y si fueras a ejecutar el DIR, ahora verás cuando hay un objeto que también está disponible como tabla de símbolos local. Si fueras a crear un equipo de nombre de clase, es una clase muy sencilla que acaba de pasar. Y tú ibas a crear el objeto, digamos, X, que es parte del equipo de clase. Ahora si escribes DIR, puedes ver aquí equipo, y luego puedes ver los otros objetos, vientos y x Así que estos son los objetos que ahora están en la tabla de símbolos local. Sus nombres son, vamos a importar el módulo MOD y teclear en DIR. Los objetos individuales son parte de este módulo mod no son parte de la tabla de símbolos local. Tendrían que ser accedidos escribiendo mod Dante o mon dot S usando sintaxis de notación o mod dot printing. Pero si importaras equipos individuales, aprenderías a hacer la última vez importar un equipo que no puedes en la importación, aparece un mensaje de error. Ahora si escribes equipo DIR, esa clase está ahí y un, ese objeto está ahí, puedes hacer un objeto Y de la clase de equipo. Está disponible. Y luego otras formas que podrías importar es importar pero con un nombre diferente. Por lo que podrías importar S y darle el nombre string. Por lo que ahora DIR traería cadena ahora está en esa tabla local también, S no lo está, no está definido, pero cadena lo es. Por lo que hasta ahora, has estado usando la función incorporada DIR sin ningún argumento. ¿ Y si le das una discusión? Bueno, una de las formas en que puedes usarlo es darle el nombre del módulo interior como argumento. Entonces en ese caso, la función DIR enumera todos los Definir nombres dentro de ese módulo. Si fueras a importar mod por sí mismo, lo
puedes ver aquí, pero no puedes ver los nombres de los objetos que se importaron al importar mod. Esos están en su propia tabla de símbolos. Para ver esos, escribe DIR abrir y cerrar paréntesis. Y luego como argumento, ponlo en mod. Tiene su propia clase de equipo y firmarlo la función de cadena, una función print_i, y la cadena S junto con su propio nombre. Te mostraré un poco más sobre nombre en el siguiente video. Y lo último que discutimos en cuanto a importar fue usar un comodín para mod import astérix, ¿Qué pone eso en el directorio? Bueno, pone todos los objetos y así está Team mod. El módulo todavía está ahí dentro desde cuando lo importas, lo antes. Pero print_i y S y a están todos ahora en la tabla de símbolos local. En el siguiente video, aprenderás sobre la ejecución de un módulo como script.
123. Ejecución de un módulo: En este video, aprenderás sobre la ejecución de un módulo como script. ¿ Un módulo también es un script de Python? Bueno, sí, cualquier archivo de punto py que contenga un módulo es esencialmente también un script de Python. Déjenme que le echen un vistazo a eso. Si tuviéramos que abrir el código para mod DOD PY, como puedes ver, es muy sencillo. ¿ Y si fueras a ejecutar pi modificado es un script. Es posible con seguridad siempre y cuando estés en el mismo directorio, pero solo es para encontrar objetos y entonces realmente no hace nada con ellos. Ahora si pudieras modificarlo, podrías imprimir como imprint un run print_i, incluso definir X como un objeto con clase y luego imprimir x. ¿De acuerdo? Por lo que estoy recibiendo, debería ser un poco más interesante. De acuerdo, corra. Por lo que imprimió la cadena, imprimió la lista, mostró el argumento para print_i Y luego muestra que cuando esto se está ejecutando, el nombre del módulo es objeto principal y con clase. ¿ Qué aspecto tiene eso cuando lo importas? Ahora, inicia el Python Shell. Si fueras a ejecutar la importación MOND, ¿qué va a pasar? Se va a ejecutar todo ese código. Una nota que podrías notar aquí
, solía guardar ese principal. Ahora dice mod y lo da salida. Ahora esto probablemente no es lo que quieres. Probablemente quieras cuando ejecutes modelo y pi para mostrar la salida. Pero cuando importas mod, es posible que no quieras que ocurra esta salida. Es posible que desee poder mostrar la salida con fines de prueba, pero es posible que no desee tener una cada vez que lo importe. Sería mucho mejor si la salida fuera opcional. Entonces hay algo que ayudar. Hay algo que puedas hacer si no quieres que ese módulo genere algún LPA cuando simplemente lo estás importando. Había una herramienta que puede ayudar con esto. Utiliza lo que se llama una variable. Do under variables son las variables que duplicarán los guiones bajos antes de sus nombres. En este caso, la variable de género es en realidad un nombre. El nombre se establecerá automáticamente en el nombre del módulo cuando se importe. Eso es diferente a cuando un script de Python se ejecuta como un script independiente. En esa circunstancia, el nombre se establece en la cadena de principal. Entonces, ¿cómo puedes usar esto? Voy a salir de aquí. Vuelve a mi punto pi. Y voy a cambiar un poco este código justo antes de que todo esto empiece. Crear una sentencia if. En la sentencia if, vas a usar esa variable que bajo variable de nombre. Entonces si ese nombre es igual a dominio, que es lo que pasó cuando se ejecuta el script por sí mismo no importando. Entonces adelante y hacer toda esta actividad. Tendré que tabulen toda esta información. Entonces sólo si el nombre es principal. Por lo que esta vez si fueras a ejecutar math.pi y se puede ver que ejecutándolo por sí mismo. El nombre es principal. Y si fueras a importar mod, no
lo hace, lo cual es bastante aseado. Entonces otra vez, vamos a volver a DIR y aquí está mod importado, ¿verdad? Pero, ¿cuál es el nombre actual? Bueno, ¿qué está funcionando aquí como sesión principal? Si fueras a decir, ¿cuál es el nombre mod? Bueno, el nombre mod es MOD. No obstante, si un archivo se ejecuta como un script independiente, nombre se va a establecer en la cadena como Maine. Y así es como puedes usar esa prueba. Bastante aseado. Una de las razones por las que puede querer ejecutar el módulo es un script independiente es probar el contenido del mismo. Entonces en este siguiente ejemplo se trata de hacer un nuevo archivo. Llámalo Hecho punto py. Y dentro de hecho DOD pi, vas a definir una función bastante simple que es factorial y simplemente llamarlo hecho de nuevo. Se puede configurar la misma sentencia condicional. Si el nombre actual es igual a la cadena principal, entonces sabes que se está ejecutando como un script independiente. Estás importando otro módulo, el CIS o módulo del sistema, y vas a usar una herramienta llamada ARG v, luego te permite usar argumentos de línea de comandos. Para poder hacer algunas pruebas. Vas a armar otra declaración if. Y aquí está buscando su argumento opcional que pueda agregar cuando ejecute el código como un script. Entonces va a imprimir la salida de esa función de hecho después de convertir este argumento en un entero de una cadena. Guarda ese archivo y para probar si puedes importar hecho, adelante e inicia una nueva sesión de shell. Por lo que los factores disponibles y se necesita un argumento de fin. Digamos que ¿cuál es el factorial de cinco? Entonces eso muestra que el hecho funciona como módulo. En el siguiente video, explorarás recargar un módulo.
124. Reloading un módulo: En este video, te mostraré sobre recargar un módulo hasta ahora, puedes simplemente importar un módulo una vez, aunque lo intentaras, un módulo solo se carga una vez por sesión de intérprete. Y eso va a funcionar bien para funciones en definiciones de
clase e importar todos esos objetos inicialmente. Pero a veces los módulos también pueden contener sentencias ejecutables. Por lo general, las sentencias ejecutables son sólo para inicialización, y tiene sentido que estas sentencias sólo se ejecuten la primera vez que se importa el módulo. Eso por lo general está bien, déjame que le eche un vistazo a eso. Adelante y reabre math.pi. Y dentro de ella, voy a tener que seguir adelante y aclarar esto si nombre es igual a main. Simplemente mantenga una declaración de impresión simple para imprimir AI hacia fuera. De hecho, modificando un poco y usa un String F. Y eso puede mostrar que cada vez que se importa este módulo, se imprimiría esto, ¿no? Así que guarde esta línea extra. De acuerdo, aquí arriba en la terminal. ¿ Qué pasó si importo mod? Bueno, lo puedes ver aquí. Inicialmente al importar mod, se adelantó e hizo la declaración de impresión por ahí usando la fuerza F. Y dentro de aquí está disponible un mod Dante. Ahora, ¿y si volvieras a importar mod dentro de la misma sesión? No pasa nada ¿se aleja montane aquí? Sí, de hecho, todos los objetos están disponibles. Entonces, ¿por qué no volvería a ejecutar este código? Will, eso es lo que pasa. Sólo lo va a importar una vez y no necesita volver a importarlo. Entonces es una especie de cosa de eficiencia. Bueno, ¿y si necesitabas recargar esto? ¿ Es posible recargar un módulo? Si realmente lo necesitabas? Aquí hay dos opciones. Por una parte, puedes reiniciar el intérprete y lo has practicado varias veces. O hay un módulo que se puede importar llamado lib, y que incluye una función llamada recarga. Déjame mostrarte cómo se ve eso. Por lo que a veces quizá quieras volver a cargar esto en, sobre todo si tal vez has cambiado el código y no quieres reiniciar el intérprete. Al igual que tal vez has cambiado un poco esto y ahorras, y ahora quieres importar mod. Esos objetos siguen ahí e importar mod no imprimió nada. Nuevamente, si estás haciendo cambios en tu módulo, necesitarías usar otra herramienta. Y esa herramienta es algo que se puede importar de import lib. Y dentro de libs de importación, una función llamada Recargar. Ahora que lo has importado, recargar va a recargar el módulo y luego volverlo a devolver. Por lo que en este caso el módulo se llama mod dos importantes lib dot recarga Maud realmente recargaría aquí. En realidad se ha vuelto a cargar desde la fuente aquí. Por lo que ahora tienes una útil herramienta que estás haciendo cambios en tu módulo. Puedes recargarlos usando import live y la carga funcionaria. En el siguiente video, comenzaremos a explorar los paquetes de Python. Gracias por ver.
125. Cómo instalar un paquete en Python utilizando PIP: Oigan a todos, de nuevo en nuestro curso de
Python, Python tiene una biblioteca estándar de paquetes, pero muchos desarrolladores han escrito sus paquetes para ampliar aún más las capacidades de Python. Se trata de paquetes de terceros. Puedes instalarlos con la ayuda de la herramienta de pipa de Python. Esta herramienta descarga e instala de forma segura paquetes de Python en tu computadora desde punto y coma HTTPS, barra
delantera barra barra delantera PY Pi.org, el sitio web de Python Software Foundation. Imagina que el índice de paquetes de Python es algún tipo de aplicación gratuita para módulos de Python. Vamos a encender la página web. Estas son las últimas actualizaciones de los paquetes o módulos de Python, si lo prefiere. Da click en navegar por proyectos desde este enlace y podrás ver miles de paquetes listos para instalarlos. Volvamos a la herramienta PIP. El archivo ejecutable para la herramienta PIP se llama pip en Windows y PIP3 en OS X y Linux. En Windows, puede encontrar Pip en el siguiente directorio. Si bien Pip viene instalado automáticamente con Python 3.9 y en Windows así como OSX, debes instalarlo por separado en línea
xAhora te mostraré cómo instalar paquetes desde Python usando Pip. Demostraré cómo desinstalar un paquete que ya no se necesita. Ahora si estás usando Windows, podrás instalar el paquete Python abriendo el símbolo del sistema de
Windows y luego escribiendo este comando. Veamos los pasos uno por 1. Primer tipo de símbolo del sistema en el cuadro de búsqueda de la ventana. Haga clic con el botón derecho en el símbolo del sistema de Windows y luego seleccione Ejecutar como administrador. Al ejecutar el símbolo del sistema como administrador, evitará
cualquier problema de permisos en el símbolo del sistema tipo barra inclinada contraria de CD, ya que este comando garantizará que su punto de partida solo tenga nombre de unidad. Presionar enter. Ahora verás tu nombre de unidad de c, localiza tu ruta de Python. La carpeta de scripts se puede encontrar dentro de la carpeta de la aplicación Python donde originalmente instalaste Python. En mi caso, si abro Windows Explorer, la ruta de Python es ésta. Entonces si hago clic derecho, puedo copiar esta dirección como texto. Ahora en el símbolo del sistema tipo cd seguido de tu ruta de Python, puedo pegar la dirección controlaría más V, presiona enter. Ahora escribe ese comando pip install para instalar tu paquete Python. Ya que en nuestro caso nos gustaría instalar el paquete pandas. A continuación, escriba el siguiente comando en el símbolo del sistema. Por último presiona Enter y notarás que el paquete aquí, es Panda, se instalará. Puedes comprobar rápidamente en el Pankaj se instaló con éxito en Python
abriendo el Python inactivo y luego ejecutando el comando importar pandas. Si no aparecen errores después de presionar F5 para ejecutar el comando Importar, entonces el paquete se instaló correctamente, misión cumplida para desinstalar un paquete usando Pip, simplemente escriba los siguientes comandos en el símbolo del sistema. No olvides establecer ruta de Python antes de escribir este comando. Por último escriba y y luego presione Enter para proceder con el retiro del paquete. Gracias por ver.
126. Paquetes de Python: Hasta ahora solo has tenido un solo módulo para importar. Pero lo que pasa es que comienzas a construir una aplicación mucho mayor voluntad, ahí es donde pueden entrar los paquetes de Python cuando estás tratando de hacer un seguimiento de un número creciente de módulos. Crear un paquete es típicamente la solución. Los paquetes permiten una estructura jerárquica a del espacio de nombres Módulo, nuevo utilizando la notación de puntos. Entonces aquí te dejamos una estructura de paquetes de ejemplo y llegarás a jugar con esto en un momento. En el nivel superior, de nuevo tienes un directorio, Y digamos que ese directorio se llama paquete pk GY. Y dentro de ella, incluye mod E1 dot pi, y luego tiene un segundo módulo, mod dos puntos py. Por lo que ahora ambos modelos están dentro de la jerarquía de directorios del paquete. Bueno, ¿cómo los importas y trabajas con estos módulos? Déjame que practiques dentro del directorio Python. Ya creé un nuevo directorio, pk G. Así que aquí está el directorio pk G e incentivo en creé dos módulos, modo uno y modo dos. Abre estos dos archivos. Entonces el modo uno va a tener una función llamada datos de carga. El dato de carga cuando
se llama, va a imprimir una línea de texto sobre el módulo. También tiene clase. Esta clase va a ser la clase de cliente. Mod dos va a tener una función llamada Clean Data module, tener una clase también. Esta clase será la clase de ubicación. Genial. Entonces desde las ventanas mostradas, ¿Por qué son las formas en que importaría paquetes o módulos de paquetes? Bueno, puedes usar la notación de puntos. De hecho, podrías importarlos a ambos a la vez. Y podrías crear un objeto y x va a ser una ubicación marcando el lugar, si quieres. Genial. Por lo que x es el objeto de ubicación de mod dos del paquete PKA G. Niza. Entonces esa es una forma es solo importarlas. Otra forma sería importar artículos individuales. Por lo que ahora dentro de aquí, los datos de
carga están en la SymbolTable local y está disponible y puedes verlo ejecutándose. Entonces de nuevo, podrías importar desde el paquete elementos
individuales desde los módulos individuales usando notación de puntos. O podría usar la técnica de nombres alternativos. Digamos que quieres importar esa clasificación. Pero en lugar de llamar a una ubicación, quieres llamarla primaria. Ahora podría crear un nuevo objeto usando esa clase. Entonces ahora y es un objeto local. Nuevamente, está usando el nombre que le diste una primaria. Otra forma en que has aprendido a importar antes era usar la sentencia from. No se puede importar directamente el modo uno, como se puede ver en este mensaje de error. Pero de P KG, podrías importar mod uno. Entonces en lugar de la denotación de tener AGE pico primero, realmente entonces simplemente usarías mod one. Y de igual manera, si quisieras, puedes cargar desde el bono de importación EKG T2 y luego le daría un nombre diferente. Digamos foo. Foo ha limpiado datos y si quisieras, podrías llamar a esa función. Es bueno volver a practicar todas estas técnicas. Gracias por ver.
127. Crea formas y formas con el módulo Turtle de Python: Como ya aprendimos, un módulo en Python proporciona código útil para ser utilizado por otro programa. Python tiene un módulo especial llamado Tortuga que podemos usar para aprender cómo las computadoras dibujan imágenes en una pantalla. El módulo tortuga como forma de programar gráficos vectoriales, dibujo con líneas simples, puntos, y curvas. En primer lugar, para usar la tortuga, vamos a importar el módulo de tortuga, utilizó el código. Ahora que hemos importado el módulo de tortuga, necesitamos crear un lienzo, un espacio en blanco para dibujar como un lienzo de artista. Para ello llamamos a la pluma desde el módulo de tortuga, que automáticamente crea un lienzo. Ingresa esto en el shell de Python. Deberías ver una caja en blanco o el lienzo con una flecha en el centro. El flecha en medio de la pantalla es la tortuga. Por supuesto que no es muy Turtle Lake. Envía instrucciones a la tortuga utilizando funciones disponibles en la variable que acabamos de crear, similares a usar la función de pluma en el módulo Tortuga. Por ejemplo, la instrucción hacia adelante le dice a la tortuga que avance, dígale a la tortuga que avance 50 píxeles, ingrese el siguiente comando. Ahora le diremos a la tortuga que gire 90 grados con el siguiente comando. El mando de la tortuga izquierda 90 apunta la flecha hacia arriba. Ahora dibujaremos una plaza y el siguiente código a las líneas que ya ingresaste. Para borrar el
lienzo, lona y vuelve a poner la tortuga en su posición inicial. También puedes usar clear, que simplemente despeja la pantalla y deja a la tortuga donde está. También podemos dar vuelta a nuestra tortuga a la derecha o moverla hacia atrás. Podemos usar hasta para levantar el bolígrafo de la página. En otras palabras, decirle a la tortuga que comience a secarse y abajo que empiece a dibujar. Estas funciones están escritas de la misma manera que las demás que hemos utilizado. Probemos otro dibujo usando algunos de estos comandos. Esta vez haremos que la tortuga dibuje dos líneas. Primero movemos la tortuga hacia atrás 100 píxeles con T hacia atrás 100, y luego usamos t up para recoger el bolígrafo y dejar de dibujar. Después con el comando t a la derecha 90, giramos la tortuga a la derecha 90 grados para apuntar hacia abajo hacia la parte inferior de la pantalla. Con t hacia adelante 20, avanzamos 20 píxeles. No se dibuja nada por el uso de comando arriba en la tercera línea. Giramos la tortuga izquierda 90 grados a fase derecha con T izquierda 90. Y luego con el comando Down, le
decimos a la tortuga que vuelva a bajar la pluma y empiece a intentarlo de nuevo. Por último, dibujamos una línea hacia adelante paralela a la primera línea que dibujamos con t hacia adelante 100, y hemos dibujado las dos líneas paralelas. Además, podrías usar un bucle for para hacer un cuadrado como este. Ahora con unos sencillos cambios a nuestro bucle, podemos crear agradable usando el código similar, podemos crear varios en forma de un cuadrado básico a una estrella espiral. Como puedes ver usando for loops, hemos hecho mucho más sencillo dibujar estas formas. Ahora tratemos de dibujar un cuadrado lleno, pero primero, limpie el lienzo para secar cuadrado lleno. En primer lugar, necesitamos definir una función cuadrada que dibuje un cuadrado. Comienza a llenar. Pon a prueba tu función llamándola con tamaño 50 y luego n llenando. Espero que aprendas a usar el módulo de tortuga para dibujar algunas formas geométricas básicas usando bucles para controlar lo que hace la tortuga en la pantalla. Si tiene alguna pregunta, por favor házmelo saber.
128. Está abierta, leerte y escribir a un archivo: Hola y bienvenidos a esta serie de video tutorial sobre trabajar con archivos y Python. A lo largo de esta sección, vas a aprender prácticamente cualquier cosa que puedas querer saber sobre unas operaciones básicas de archivos en Python. Y mis operaciones básicas de archivos, me refiero a crear, eliminar archivos y directorios, moverlos, copiarlos, renombrarlos, trabajar con archivos, trabajar con archivos temporales, atravesar directorio árboles y obtener propiedades de archivo. Esta lista sigue y sigue, pero casi todo aquí voy a cubrir e incluso algunas cosas que no están del todo en esta lista. Si buscas seguir adelante en tu propia terminal, recomendaría que echaras un vistazo a los archivos de recursos que he incluido porque eso contendrá todos estos directorios de muestra por los que voy a estar pasando en esta sección organizado por menos de, podría ser realmente conveniente para ti. Por lo que generalmente en cada lección presentaré la lección, introduzco algunas de las funciones que estaré usando. Y luego te mostraré un directorio de muestras y deberías
mirarlo en tu propia terminal para que puedas seguir adelante. Muy bien, saltemos. En esta lección, voy a cubrir Python con patrón de apertura, también
conocido como patrón de administrador de contexto, que creo que es el patrón básico más importante para trabajar con archivos y Python porque permite crear y leer de archivos existentes en su sistema de archivos. Para entender el ancho abierto como patrón, primero hay
que entender la función abierta, que es realmente bastante simple. Toma nombre de archivo y un modo, y abre el nombre de archivo dado desde el directorio actual a menos que se especifique lo contrario en el modo en el que se pasa. Y luego una vez que ese archivo está abierto, ahí es cuando puedes hacer operaciones en ese archivo o puedes pasarlo para leerlo. Entonces los modos básicos de archivo, y hay muchos más. Pero estos son los tres que te mostraré para empezar con nuestro modo de escritura w, que borra el contenido existente del archivo creando archivo que no existe y te permite escribir el archivo. Hay modo rojo, modo r, que te da un acceso de sólo lectura a los contenidos de los archivos. Y lanzaremos un error si el archivo no existe ya. Y luego está el modo de anexar a, que escribe hasta el final del archivo para que no borre el contenido del archivo existente. Por lo que las zonas son los tres modos básicos de archivo en absoluto explorados a lo largo del resto de esta lección. Entonces, vayamos a la cáscara de Python. Entonces lo que puedo hacer es decir algo como test.txt como nombre de archivo. Y luego lo abriré en modo escritura para que pueda escribirle. Y así entonces se crea porque test.txt aún no existe. Y entonces necesito decir es así con abierto como y luego le doy a esto un nombre. Normalmente me resulta conveniente decir algo como escribir archivo subrayado para que recuerde exactamente lo que estoy escribiendo dos en este caso. Entonces puedo decir algo así como derecho archivo punto derecho. O simplemente puedo escribir cualquier texto que quiera escribir. Puedo decir algo así como hola, este es un archivo. Pulse Intro y función de escritura devuelve el número de caracteres escritos aquí. Echemos un vistazo al directorio principal de Pitones. ¿ Se puede ver este expediente? Está aquí, test.txt. Se puede comprobar ese archivo diciendo con open test.txt en modo de lectura como archivo leído. Y entonces solo puedo decir imprimir, ReadFile dot read, y no leer la función solo devuelve todo el contenido de ese archivo. Entonces como puedes ver, se trata de archivos realmente existentes y sí tiene el contenido. Hola, soy un archivo. Hay un modo más que te mostré. Entonces te mostraré ahora test.txt y el modo append es el archivo correcto. Y entonces puedo decir correcto archivo, no incurra. Y pondré aquí una nueva línea para que haya una nueva línea en el expediente. Y voy a decir, aquí hay un poco más de texto. Y entonces otra vez, haré exactamente lo mismo que acabo de hacer aquí. Y como pueden ver, he anexado a ella. Pero si lo volviera a abrir en modo escritura y luego escribirle, se han borrado
todos los textos. Comprobemos el archivo desde el directorio principal de Python. Y como se puede ver que esto de hecho es cierto porque en el modo de
escritura en realidad sólo tiene derechos sobre todo lo que ya existe en el archivo, mientras que el modo de pluma simplemente se anexa al texto existente. Entonces así es como puedes abrir y leer y escribir en un archivo de un par de maneras diferentes. Una última cosa que quiero cubrir en esta lección es que es la mejor práctica cerrar siempre el archivo después de que lo abras, escribiendo right dot close. De lo contrario estará dejando
abierto este FileResource con su sistema operativo interpretará como necesidad de tener ese archivo abierto y que tipo de gruñir los recursos de su sistema operativo. Entonces así es como puedes usar el ancho abierto
como patrón para crear y leer y escribir en archivos. En la siguiente lección, cubriré cómo obtener el listado de directorios, cómo mirar todas las cosas que hay en su directorio que se han creado.
129. Cómo obtener un listado de un directorio y un archivo: En esta lección, voy a cubrir cómo obtener un listado de directorios. Simplemente ponga una lista de todas las cosas que existen en su directorio actual o en cualquier directorio que pueda elegir. Y esto es realmente importante porque prácticamente cualquier tarea que quieras hacer en Python u otro lenguaje de programación donde estés trabajando con archivos, vas a tener que hacer algo ahí dentro donde quieras mirar a través de todos los archivos de tu directorio actual y haz algo con ellos. Aquí hay algunas funciones básicas de listado de directorios a lo largo de esta serie, a menudo te
voy a mostrar un par de formas diferentes de hacer la tarea. Entonces te voy a enseñar cómo hacerlo. Entonces con todo lo dicho, la primera función aquí es el DIR lista de puntos OS, que toma un nombre de directorio y luego devuelve una lista de archivos y subdirectorios en ese directorio como una cadena. La alternativa un poco más sofisticada es OS dot scan DIR, que devuelve un iterador en lugar de una lista. Ese iterador no es de cadenas, sino más bien un objeto de archivo que tienen algunas propiedades para ellos, que los hacen un poco más fáciles de trabajar cuando realmente quieres tratarlos como archivos. Y entonces el módulo path live tiene un paradigma muy similar para escanear DIR, excepto que funciona en un objeto path. Y te mostraré cómo inicializar un objeto de ruta y trabajar con él más en el Python Challenge es el segundo. Mi directorio Python tiene un par de subdirectorios y varios archivos en él. Y cada subdirectorio tiene un par de archivos diferentes a. De acuerdo, vamos a entrar un poco en el código aquí. El primero que hay que hacer es conseguir que algunas importaciones vayan, importar OS. Y entonces también voy a decir path lib import path, solo para tener todas mis importaciones aquí arriba en un solo lugar. Entonces lo primero que puedes hacer si quieres conseguir un listado de directorios es que solo podrías decir OS dot list DIR. Y luego como puedes ver desde mi práctico shell, toma un parámetro de ruta opcional. Si no pasas la ruta, solo usará el directorio actual. Es como puedes ver si recuerdas desde mi directorio Python, tiene todos los archivos y carpetas. Pero como puedes ver aquí, todas estas son solo cuerdas desnudas y también lo es la lista de cadenas. Entonces esto no es súper flexible. Si realmente quieres obtener información sobre esto, puedes decir algo así como tal vez la ruta del sistema operativo es archivo y luego podrías llamar a eso en un archivo o lo que sea. Pero hay que hacer todo el cirriculum Kunshan para descifrar alguna información sobre este expediente. ¿ Se puede adivinar por qué es falso? Es porque no teclearon la extensión de punto py. Intentemos eso otra vez. Este no es el caso con algo como escanear DIR. Se puede decir algo así como por nombre y OS no escanear DIR. Y eso también tomará un parámetro de ruta opcional. Se puede decir Si se llama Don es Archivo. Y no estoy seguro exactamente por qué esto no tiene subrayado y esto sí tiene un subrayado. Ojalá pudiera contarte más sobre por qué es eso, pero ¿quién sabe? Para que solo te puedan atribuir directamente del objeto. Porque como se puede ver. Los objetos son entradas DIR en lugar de solo cadenas planas. Por lo que las entradas DLR tienen información dentro de ellas, mientras que las cadenas, hay que hacer un poco más de trabajo como el programador para aprender que los comandos necesarios para realmente obtener esta información sobre estas cosas. Entonces eso es algo a notar aquí, es que el DIR de escaneo de puntos OS es un poco más orientado a objetos, mientras que OS dot list DIR funciona un poco más como un sistema de archivos Linux tradicional. Somos más o menos todo es una cuerda y solo
tienes que hacer el trabajo por tu cuenta para descifrar la información al respecto. Por lo que el camino vivido toma una psicología similar, excepto que hay que crear el camino como un objeto explícito. Por lo que ruta DIR es igual a ruta. Y luego sólo pasaré en el directorio actual slash de puntos. Y luego puedes hacer exactamente las mismas cosas que puedes hacer con OS dot scan DIR. Es sólo que llamará ITER DIR directamente en el camino. Entonces es exactamente lo mismo aquí. Como se puede ver, este nombre tiene un poco de una función de impresión diferente. Pero este nombre sigue siendo un objeto donde tiene un poco más de información que solo una cadena desnuda. Entonces eso es relativamente útil. Y todas estas cosas que puedes usar en cualquier camino que te guste. No está sólo en el directorio actual. Entonces esas son tres formas diferentes de obtener un directorio que enumera el módulo del sistema operativo y el módulo de ruta lib. Todos tienen sus ventajas y desventajas. Os dot list DIR es realmente simple y fácil. Os dot scan DIR y path lib dot path tienen un poco más de matiz y puedes hacer un poco más de cosas con ellos. Pero no necesariamente tienes el mismo tipo de facilidad que haces con OS dot list DIR. Entonces todas las cosas a considerar ahora que tienes una lista con los archivos en el directorio actual. Pero, ¿qué pasa cuando realmente quieres obtener los atributos de esos archivos? Al igual que la última vez que fueron modificados o cuando fueron creados, o su tamaño o sus permisos o algo así. Existen tres opciones diferentes para obtener información de archivo. El primero es siempre dot stat, que toma en una ruta como una cadena y luego devuelve un objeto de resultado de ruta stat que tiene un archivo de datos en ella. Por lo que ese objeto de resultado stat es algo a lo que se puede acceder a los campos de ese objeto y obtener los datos del archivo. Entonces OS dot scan DIR y path lib dot path dot ITER DIR proporcionan esta información con los objetos que devuelven en sus iteradores. Entonces echemos un vistazo en el caparazón. De acuerdo, datos de archivo. ¿Cómo lo consigues? Bueno, probemos esto. En primer lugar. Yo solo quiero obtener el contenido de este directorio. Y como puedes ver, hay muchos archivos para elegir. Y el primer método que lo miro en las diapositivas con la función de
stat de punto OS que solo toma una ruta de archivo, nombre de
archivo y te da un objeto de resultado de estado de punto OS OS. A medida que los resultados, tendrás todo tipo de cosas diferentes, número de enlaces a tiempo de creación y modificación. Algunos de estos incluso diferirán por sistema en Windows, en Linux, en Mac, y algunos de estos tendrán valores diferentes. Ahora te mostraré las dos formas en las que realmente quiero obtener estos datos. Podría ahorrar para OBJ y OS dot scan DIR en el directorio actual. Y luego hagamos un poco más de una salida informativa. Digamos que algo así como el tiempo Mod es igual a OBJ Darmstadt. Y así es como obtienes las estadísticas de un objeto DIR de escaneo. Y entonces puedo decir punto STM tiempo. Y ahora podemos ver algo bonito como f archivo de comillas dobles OBJ nombre de punto fue modificado por última vez en. Y entonces podría decir tiempo punto c tiempo del tiempo mod. Y así esto debería darle a todo un bonito formato legible. Te dice cada nombre de archivo y el tiempo en que fueron Last-Modified, entonces la ruta vivida en la opción Ruta. Aquí funciona casi exactamente de la misma manera, excepto que
primero tienes que crear el objeto de ruta antes de poder comenzar a iterar a través de él. Entonces esas son tres formas diferentes de obtener estadísticas a partir de archivos usando Python. En la siguiente lección, cubriré algo que aún no he cubierto, que es cómo crear directorios.
130. Fabricación y eliminación de direcciones: En esta lección voy a venir o cómo hacer directorios e incluso árboles de directorios enteros. Como de costumbre, existen algunas formas diferentes de hacer esto con el módulo del sistema operativo. Si desea crear solo un único directorio, puede usar OS dot MKDIR make directory con el nombre del directorio, que crea un único subdirectorio con un nombre dado. Importante tener en cuenta que esto no creará un directorio y subdirectorios. Y si necesitas eso, necesitas usar OS dot, hacer DEA, IRS. Y luego puedes pasar un nombre de ruta completo con múltiples subdirectorios y se creará el árbol de directorios completo según sea necesario. Con el módulo path lib, puede usar path list.pop dot MKDIR, que funciona esencialmente de la misma manera que O S dot MKDIR, en el sentido de que tampoco creará árboles de directorio completos. En esta lección, voy a usar realmente cualquier directorio de muestra específico porque sólo
voy a estar creando directorios como los necesito. Pasemos a la derecha hacia el shell de Python. De acuerdo, hagamos algunos directorios. Os hecho. Mkdir es la primera y la forma más básica de hacerlo. Toma un parámetro de ruta y luego también puede tomar un parámetro de modo y luego el parámetro DIR IED. Entonces si quiero crear un directorio llamado test, eso es bastante sencillo de hacer. Y luego puedo usar la lista DIR para ver que se está creando. Ahora si quiero hacer algo un poco más específico, y quería decir algo como OS dot MKDIR, test2 slash subtareas. Entonces verás que en realidad no funciona porque test2 aún no existe. Por lo que las subpruebas no pueden ser creadas por MKDIR. Si necesito hacer algo así, puedo usar OS dot, hacer DEA, IRS, que hará este directorio, y luego hará todos estos. Simplemente hará todo lo que necesito para llegar a este directorio final. Entonces como puedes ver, lista DIR y prueba dos están ahí dentro. Entonces si llamo a la lista DIR en la prueba dos, entonces se puede ver que tiene carpeta de sub-pruebas justo como necesitaba. Entonces eso es realmente bastante simple e Impresionante. El motivo por el que MKDIR existe de esta manera y la razón por la que tiene el comportamiento es solo para ser realmente una especie de válvula de seguridad, un mecanismo de seguridad para asegurarte de que realmente sabes lo que está pasando con tu sistema de archivos en todo momento. Hacer DEA IRS es impresionante. Pero también puede causar un comportamiento inesperado si eres el que está en el directorio y
haces toda una cadena de subdirectorios y luego terminas en un lugar totalmente inesperado. tanto que MKDIR está construido a tipo de error L antes de que eso suceda. Para que puedas manejar esto. Algo más a tener en cuenta aquí es que ambos lanzarán una excepción si intentas crear un directorio que exista. Si digo OS dot prueba MKDIR o un west dont make DEA IRS test, entonces Python me lanzará un archivo existe error porque está tratando de crear algo que ya existe. El path lib dot path alternativo, que se puede lograr de esta manera. Puedes evitar ese problema si estás tratando de hacer eso. Para que puedas decir algo como esto. Un nuevo camino es igual a prueba de trayectoria. Y luego se puede decir un nuevo punto camino MKDIR. Y puedes usar el parámetro exist okay y
establecerlo en true si no quieres que arroje un error si ya existe. Ahora el tema es con esto, claro, es que simplemente termina por no hacer nada porque no hace directorio porque ya existe. Eso definitivamente es algo importante a tener en cuenta, es que aunque no quieras que ocurra ese error, probablemente
deberías seguir enrollándote para saber que ahí está pasando
algo porque de lo contrario, podrías encontrarte con problemas donde crees que estás creando algo nuevo, pero realmente estás creando algo y ya hay un directorio existente. Por lo que este comportamiento puedes eliminar si lo necesitas, pero quizá no quieras en todo momento. Entonces esas son las diferentes formas de crear directorios y Python. Y creo que es realmente simple y directo. Usa path dot live MKDIR si quieres usar más framework orientado a objetos, o si solo necesitas crear un directorio a la vez, usa OS dot MKDIR de lo contrario. Y luego si necesitas crear un árbol de directorios completo, los subdirectorios
usarían OS dot omega d IRS, donde puedes usar los parámetros del padre de la ruta lib dot path, dot-dot-dot, opción MKDIR. Ahora veamos cómo funcionan los directorios. Los directorios líderes. Para eliminar directorios, puedes usar OS dot ARM DIR, remove directory, donde pasas en la ruta del directorio y luego eliminas el único directorio, o eso es lo que hace la función. Se está eliminando estos directorios únicos. Si el directorio no está vacío, entonces genera un error de SO porque no quiere que elimines accidentalmente directorios completos. Quiere asegurarse de que los haya despejado antes de eliminarlos. Camino vivido en el camino na.rm. Dir es idéntico excepto que opera en un objeto de ruta como de costumbre. Así que crea primero el camino y luego llama a su método Don RM DIR. Si necesitas eliminar directorios no vacíos o todo un árbol de directorios, aún
puedes Shuttle. Tienes que importar shuttle, que es abreviatura de shell que till, y luego tiene una función de árbol de RM donde puedes llamar a eso como la ruta de directorio y eliminará todo el árbol de directorios enraizado en esta ruta. Entonces si tienes algunas subcarpetas dentro de ese directorio al que estás llamando, todas se eliminarán dos, no importa si están llenas o vacías. Entonces esta es una especie de la opción nuclear de eliminar directorios y Python. Muy bien, eliminemos algunos directorios. Entonces primero, te mostraré el sistema de archivos aquí. Entonces hagamos un primer intento aquí y solo veamos qué pasa si llamas OS na.rm DIR en Folder one. Y por supuesto tengo que poner las cadenas porque necesita ser
la ruta en lugar de que no haya ninguna variable llamada Folder one. Entonces como puedes ver, un error del sistema operativo porque el directorio no está vacío. Porque por supuesto si llamo OS dot list DIR on Folder one, tiene archivos Python en ella. Entonces eso no va a funcionar. Si realmente quiero eliminar algo usando OS dot RMD IR, voy a tener que ir muy rápidamente a hacer un nuevo directorio que todos test de llamada. Y entonces tendré que hacer una lista DIR para mostrarte que está ahí dentro. Ya existe prueba, por lo que haremos un directorio con nombre test1. Entonces ahora hay directorio test1 slash,
y este directorio test1 slash está de hecho vacío por lo que se puede eliminar. Esto podría parecer una característica poco convencional que sólo se puede eliminar con estas cosas básicas, directorios que están vacíos. Pero en realidad es solo una característica de seguridad. No quiere que elimines cosas cuando
podría haber archivos útiles dentro de ese directorio. No quiere que los dirijas sin al menos pensar en lo que hay en él. Ahora bien, puedo ver OS dot RMD. Y ahora se puede ver que ha vuelto, se ha ido otra vez. Ahora te mostraré cómo realmente puedes eliminar una de estas carpetas no vacías. Para ellos, tendrás que importar shell util, shuttle, y luego simplemente puedes decir intentaron eliminar en carpeta vacía. Por supuesto que no pude. Hagamos otro ejemplo con una carpeta de prueba. De nuevo, lo mismo. Ahora voy a eliminar una carpeta no vacía como módulos y paquetes. Y ahora si hago mi lista DIR aquí, módulos y paquetes carpeta se ha ido totalmente a pesar de que tenía contenidos en ella, ¿verdad? Y esto funciona incluso para los subdirectorios. Esta es realmente la opción de bateador pesado que simplemente elimina todo sin llevar lo que hay en ella. Y esto puede ser tan útil si sabes
que todo lo que hay en tu carpeta es basura en que puedes eliminarlo. Pero si no lo sabes, realmente
debes tener cuidado de intentar usar algunas de estas otras funciones que te avisarán lanzando un error si estás intentando eliminar algo que tenga cosas útiles en él. Entonces así es como puedes eliminar directorios en Python.
131. Borrar, copiar, mover y hacer Renaming: Ahora que sabes crear y listar archivos junto con sus atributos, sería genial si pudieras eliminarlos cada vez que terminaras con ellos. Y ese por supuesto, será el tema de esta lección. Eliminación de archivos. Para eliminar archivos, tienes algunas opciones como de costumbre, con el módulo del SO, en realidad tienes dos funciones casi idénticas. Siempre no elimines y OS dot on link, ambos tomaron la ruta del archivo string y borran ese único archivo, no un directorio, levantan un archivo no encontrado en el archivo no existe. Y la razón de que las dos funciones idénticas con nombres diferentes es sólo una cuestión de compatibilidad con diferentes paradigmas de programación. A algunas personas en sistemas antiguos o tipo de unix les gusta usar unlink como su nomenclatura preferida. tanto que algunas personas en diferentes sistemas usan remove. Es solo para asegurarse de que todos estén contentos con el módulo path lib. También tienes un método de punto en enlace, pero este es un método de objeto path. Entonces, como de costumbre, tienes que iniciar ese objeto path antes de poder llamar a dot on link. Por lo que el directorio de muestra entonces usaré para eliminar la cosa, los archivos con la sección de directorio de liderazgos hija de esta lección serán los mismos. Tengo un par de subcarpetas con archivos dentro de ellos, y luego solo tengo un par de archivos con el directorio de muestra de nivel superior. De acuerdo, echemos un vistazo a cómo funciona este archivo en la práctica. Usaré el DIR lista de puntos OS para mostrarte dónde estoy en mi sistema de archivos. Tengo un par de archivos de texto aquí y agrego un par de carpetas que podría mostrarte
también para estimar totalmente seguro que estas carpetas son lo que esperamos tener en ellas. Algunos archivos Python y algunas otras carpetas tienen algunas cosas en ellos para. En primer lugar probemos aquí la opción de eliminar puntos del SO. Simplemente lo llamaré. Y uno de estos archivos de texto de nivel superior, solo por diversión, OS dot remove. No te da ningún resultado en particular, pero confía en que es trabajo. Y puedes comprobar eso de nuevo usando la lista DIR y puedes ver test1 dot TXT se ha ido. Entonces eso es bastante bueno. Funciona justo como se esperaba. Y entonces O S dot on link funciona exactamente de la misma manera. Llamaré a esto en prueba 2.txt. Y como puedes ver, OS dot list DIR, ambos de estos archivos de texto se han ido. Todo lo que me queda son unas cuantas carpetas. Ahora les voy a decir un poco cómo copiar,
mover, y renombrar archivos y directorios. Existen varias funciones útiles para copiar y mover archivos para copiar. Hay dos opciones. En realidad hay tres opciones con el módulo de utilidades de shell Shuttle, que tendré que importar. Hay una copia que toma una ruta de archivo de origen y de destino, y copia el archivo de las rutas de origen a la ruta de destino. Por lo que el archivo fuente seguirá existiendo. Por supuesto, solo estás copiando, no
estás borrando el primer archivo. Lo importante de la copia sin embargo, es que sólo copia el archivo, el contenido del archivo, pero no sus metadatos. Entonces, por ejemplo, cosas como es hora de última modificación y así sucesivamente no se conservarán. Eso sólo se restablecerá a los valores de línea base. Si necesitabas hacer los metadatos, aún
puedes usar tional dot. Copiar a la función, que tiene sintaxis idéntica. Simplemente copia los metadatos también. Por lo que esos son casos de uso distintos. Después tienes shuttled.com P3, que copia árboles de directorio completo. Esto es lo que debes usar si quieres copiar directorios en cualquier capacidad, pero solo trata de tenerlo en cuenta mientras todo el árbol enraizaba en SRC DIR. Y luego lo copiará en el directorio de destino para mover el cambio de nombre. O porque realmente los dos son esencialmente equivalentes, tienes dos opciones. Uno con el Módulo Shuttle y otro con el SO. Trasbordador de punto movimiento. Toma de nuevo una fuente y un parámetro de destino. Y mueve el archivo o el directorio de SRC o fuente a dst, el destino. Entonces siempre renombrar realmente hace esencialmente lo mismo porque mover y renombrar son realmente dos caras de una misma moneda, por así decirlo. Se renombra el archivo o directorio con el nombre antiguo y el nuevo. Escribiré, he importado OS y shuttle ya util. El primero que hay que hacer es presumir de la funcionalidad del shuttle dot copy. Simplemente copiaré la prueba 1.2x d en un nuevo archivo y llamaré a las etiquetas de copia de seguridad. Y lo llamaré copia de seguridad 1.2x t Solo para
asegurarte de que sabes que es una copia de seguridad de Test1 TXT. Como se puede ver, el shuttle DOD copia devuelve la ruta del archivo recién copiado copia de seguridad un TXT. Y si digo ls dot list DIR, puedes ver que ahora hay una prueba 1.2x T y una copia de seguridad 1.2x T.
Así que se conservan estos archivos originales y también se
crea la nueva copia de seguridad y esos archivos serán exactamente el mismo contenido. Ahora si necesitas copiar un directorio shuttle dot copy no funcionará. Si trato de copiar la carpeta uno en Nueva carpeta uno, entonces eso no funcionará porque la carpeta One es un directorio. Para eso, necesitarás usar árbol shuttle.com, que hará exactamente lo correcto. Se copiará la carpeta uno en Nueva Carpeta uno. Yo puedo echarle un vistazo a eso. Ahí está, Carpeta uno, Nueva Carpeta, una copiada a la perfección. Puedo enumerar los contenidos de la Carpeta uno en la lista de contenidos de la nueva versión solo para asegurarme de que puedas ver que son de hecho idénticos. Tan mismo archivo, mismo todo,
todo copiado sobre simplemente bien. Sólo ten cuidado con esto porque copia todo
el árbol de directorios ahí y él subdirectorios, esos también se copiarán. A veces eso podría no ser exactamente lo que quieres. A lo mejor quieres un poco más de granularidad. Y si ese es el caso, entonces tendrás que hacer un poco más de trabajo e iterar esos a través de los directorios por tu cuenta. Entonces ahora hablemos de mover y renombrar archivos porque esos son realmente la misma operación. Entonces tus opsins son shuttled dot move, e intentemos mover test.txt a la carpeta one slash test.txt. Como puedes ver, test.txt se ha ido del directorio de nivel superior, pero aparece en la carpeta uno. Entonces eso es justo como se podría esperar que lo hiciera. Ahora, OS dot renombrar funciona casi exactamente de la misma manera si intentas mover copia de seguridad 2.txt, que es un archivo que no existe en mensaje de error aparecerá en nuestra pantalla. Entonces un montón de cosas ahí que todo funciona bien. Y ambas funciones funcionan también en directorios. Entonces eso es un que puedes copiar, renombrar y mover archivos y directorios en Python.
132. Proyecto Milestone crear un juego matemático interactivo: Bienvenidos a todos a esta sección de proyectos hito del curso. Vamos a comenzar esta sección pasando por un par de ejercicios de proyecto de calentamiento. Ya hemos cubierto suficiente programación fundamental en Python, empieza a codificar nuestro primer programa completo. En esta sección, vamos a codificar un programa que ponga a prueba nuestra comprensión
del orden matemático de las operaciones y las reglas de un cálculo aritmético, nuestro programa enviará aleatoriamente una pregunta aritmética para que respondamos. Si obtenemos mal la respuesta, el programa mostrará la respuesta correcta y preguntará si queremos una nueva pregunta, si la hacemos correcta, el programa preguntará si queremos una nueva pregunta. Además, el programa hará un seguimiento de nuestras puntuaciones y guardará las puntuaciones en un archivo de texto externo. Después de cada pregunta, podemos terminar el programa. Estaremos escribiendo a archivos para nuestro programa. Los llamaremos parte uno y segunda parte. El primer archivo o parte uno si lo prefieres, es MathFuncations dot pi. Y el segundo archivo, o la segunda parte es el juego de matemáticas dot py. He desglosado el programa en pequeños ejercicios para que puedas intentar codificar el programa tú mismo. Prueba los ejercicios antes de referirte a las respuestas. Las respuestas se proporcionan en sus archivos de recursos. Recuerda, aprender la sintaxis de Python es fácil pero aburrido. Solución de problemas es donde radica la diversión si encuentras dificultades al hacer estos ejercicios, intenta más duro. Aquí es donde la recompensa es la mayor. Si estás listo para conectar los puntos entre lo que
ya has aprendido en la creación de un programa interactivo. Vamos a sumergirnos.
133. Parte 1 importar módulos y obtener la puntuación del usuario: Para empezar, vamos a crear el archivo funciones matemáticas dot pi. Estaremos definiendo tres funciones en este archivo. El primer paso es importar dos módulos, el módulo aleatorio y el módulo OS. Me gustaría describir el uso del módulo aleatorio en Python, el módulo aleatorio proporciona acceso a funciones que soportan muchas operaciones. Quizás lo más interesante es que te permite generar números aleatorios, será usando la función randint para el módulo aleatorio. La función aleatoria genera un entero aleatorio dentro del rango proporcionado por nosotros. usaremos para generar números para nuestras preguntas más tarde se topó con acepta dos parámetros, un número más bajo y más alto. El módulo OS en Python proporciona funciones para crear y quitar un directorio o carpeta, buscar su contenido, cambiar en la identificación del directorio actual, etcétera, desde el módulo OS estará utilizando las funciones remove and renombrar . Pausa el video e intenta importar estos dos módulos. Las líneas de código correctas son las siguientes. El siguiente paso es obtener la puntuación del usuario. Aquí definiremos nuestra primera función. Esta función acepta un parámetro, tipo de nombre de usuario. Se abre el archivo usuarios puntuaciones data.txt. En nuestro modo, los usuarios puntajes don t x t se ve algo así. Cada línea registra la información de un usuario. El primer valor es el nombre de usuario del usuario y el segundo es la puntuación del usuario. A continuación, la función tiene que leer el archivo línea por línea para usar un bucle. A continuación, cada línea se divide utilizando la función de división. Dividir utiliza la coma como delimitador. Almacenemos el resultado de la función de división IIT en el contenido de la lista. A continuación, la función comprobaremos si alguna de las líneas tiene el mismo nombre de usuario es el valor que se pasa como parámetro. Si lo hay, la función cierra el archivo y devuelve la partitura junto a ese nombre de usuario. Si no lo hay, entonces la función cierra el archivo y devuelve la cadena minús1.
134. Manejo de la excepción parte 1 y actualización del resultado del usuario: Ahora necesitamos hacer algunas modificaciones a nuestro código abriría nuestro archivo previamente usamos el modo ARM. Esto ayuda a evitar cualquier cambio accidental en el archivo. No obstante, al abrir un archivo y nuestro modo en IO se produce el error si el archivo no existe ya. De ahí que cuando ejecutemos el programa por primera vez, terminaremos con un error ya que los archivos que los usuarios puntúan dot TXT no existe previamente. Para evitar este error, podemos hacer cualquiera de los siguientes. En lugar de abrir el archivo en nuestro modo, podemos abrirlo con el modo W. Al abrir con el modo W, se creará
un nuevo archivo si el archivo no existe previamente. El riesgo con este método es que podamos escribir accidentalmente en el archivo, lo que da como resultado que se borre el contenido anterior. No obstante, como nuestro programa es un programa pequeño, podemos revisar cuidadosamente a través de nuestro código para evitar cualquier escritura accidental. El segundo método es usar una instrucción try except para manejar el error IO. Haga eso, necesitamos poner todos nuestros códigos anteriores en el bloque try, luego usar excepto error IO para manejar el archivo no encontrado. Error en el bloque except informará a los usuarios que los archivos no encontrados y luego procederá a crear archivo. Utilizaremos la función abierta con el modo W para crearla. Aquí la diferencia es que el uso del modo W cuando no se encuentra el archivo. Si el archivo no existe inicialmente, no
hubo riesgo de borrar ningún contenido anterior. Después de crear el archivo, se cierra, el archivo luego devuelve la cadena de menos uno. Puedes elegir cualquiera de los métodos anteriores para completar este ejercicio, pero prefiero el segundo método. Entonces vamos a modificar el código. Ahora vamos a definir otra función llamada actualizar puntos de usuario, que toma en tres parámetros, nuevo usuario, nombre de usuario y la puntuación. El nuevo usuario puede ser verdadero o falso. Si el nuevo usuario es verdadero, la función abrirá los usuarios del archivo puntuaciones punto TXT
y modo anexar, y anexar el nombre de usuario del usuario y la puntuación al archivo cuando salga del juego. Si el nuevo usuario es falso, la función actualizará la puntuación del usuario en el archivo. No obstante, no hay ninguna función en Python que nos permita actualizar el archivo de texto. Sólo podemos escribir para anexarlo, pero no actualizado. De ahí que tengamos que crear un archivo temporal. Esta es una práctica bastante común en la programación. Llamemos a este archivo usuarios puntuaciones punto TMP y ábrelo en modo W. Ahora tendremos que recorrer en bucle los usuarios puntaje don t x t, y copiar los datos línea por línea a los usuarios force.html. No obstante, antes de copiar se comprobará
que el nombre de usuario en esa línea es el mismo que el proporcionado por el parámetro. Si es igual, cambiará la puntuación a nueva puntuación antes de escribir en el archivo temporal. Por ejemplo, si un perímetro proporcionado a la función o es falso, Andreas y 30, por ejemplo, actualizar puntos de usuario cae Andreas 30. En la siguiente tabla se muestra la diferencia entre el usuario original puntajes punto TXT y el nuevo usuario puntúa punto TMP. Después de terminar de escribir al usuario score dot TMP
cerrará ambos archivos y eliminará usuarios puntuaciones dot TXT. Por último, vamos a renombrar usuarios puntuaciones Don TMP a usuarios puntuaciones punto TXT.
135. Parte 1 Generar las preguntas y la matemática: Ahora llegamos a la parte más importante del programa, generando las preguntas matemáticas, degenerando las preguntas. Primero declaremos tres variables, dos listas en un diccionario. Nombraremos la lista de dos, lista de operando en lista de operadores. lista de operando debe almacenar cinco números con 0 es sus valores iniciales. lista de operadores debe almacenar para cadenas con espacio como sus valores iniciales. El diccionario consta de cuatro pares con los enteros uno a cuatro es las claves del diccionario y suma, resta, multiplicación y exponenciación suma los datos. Llamemos a este operador dict. En primer lugar, necesitamos reemplazar los valores iniciales de nuestra lista de operando con algunos números aleatorios generados por la función INT aleatoria. Rand INT función toma dos parámetros, inicio y fin y devuelve un entero aleatorio n es tal como que como menor o igual a n o menos igual a fin. Por ejemplo, si se llama a Rand INT1 dynein, devolverá aleatoriamente un entero de los números uno a
nueve para actualizar nuestra variable de lista de operando con números aleatorios, podemos hacerlo uno por uno, ya que la lista de operando solo tiene cinco miembros así. Cada vez que se llama rand INT una dynein, Se devolverá aleatoriamente un entero de los números uno a nueve. Pero esta no es la forma más inteligente de actualizar nuestra lista de operando. Coincidiendo con lo engorroso que sería si la lista de operando cuenta con 100 mil miembros. Una mejor alternativa es usar un bucle for como este. Genial. Ahora que tenemos los números para operar, necesitamos generar aleatoriamente para símbolos matemáticos para nuestra pregunta. Para hacer, entonces usaremos la función rand INT y el diccionario de ICT del operador D. Ran Di Andy generará la clave del diccionario, que luego se asignará al operador correcto utilizando el diccionario dict del operador. Por ejemplo, para asignar un símbolo a la lista de operadores 0, escribimos. Por lo que debes usar un bucle for para completar esta tarea. No obstante, hay un problema que hace que este ejercicio sea lo suficientemente duro. Recordemos que en Python, exponenciación o dos asterisco significa exponente por ejemplo. El problema es, es cuando tenemos dos operadores exponentes consecutivos en Python, por lo que solo dos exponentes, tres exponentes dos. En el primer caso, la respuesta es de dos a la potencia de nueve, que es de 512. En el segundo caso, la respuesta es de ocho a la potencia de dos, que es de 64. De ahí que cuando presentamos una pregunta como exponente tres, exponente a, el usuario obtendrá mal la respuesta si la interpretó así. Para evitar este problema, vamos a modificar nuestro código para que no consigamos dos signos consecutivos. En otras palabras, esta lista de operadores está bien. Pero esta lista de operadores no lo es. Este parque es lo más difícil entre todas las partes del proyecto. Intentemos encontrar una solución para evitar dos signos de exponentes consecutivos. Partiendo del segundo ítem, índice
IE igual a uno y la lista de operadores, la línea si índice mayor a 0 y el índice de lista de operadores menos uno, no igual a dos exponentes consecutivos. Señales comprueba si el elemento anterior en la lista de operadores es el símbolo exponente. Si no es el operador de declaración es igual a operador. Dick rand IN T12 cuatro se ejecutará ya que el rango se le da a la función de rand INT es de uno a cuatro, se generarán los números 123 o cuatro, ahí que los símbolos más menos multiplican nuestro exponente se asignará al operador variable. No obstante, si el símbolo anterior es exponente, el operador de declaración else igual al operador dict rand IN T1. Se ejecutará T3. En este caso, el rango dado a la función rand INT es de uno a tres. De ahí que el símbolo de exponentes, que tiene una clave de cuatro y el operador Dick no se asignará a la variable de operador.
136. Parte 1 generar una expresión matemática y evaluar el resultado: Ahora que tenemos nuestros operadores y operandos, vamos a tratar de generar la expresión matemática como una cadena. Esta expresión utiliza los cinco números de nuestra lista de operandos
y el formato de símbolos médicos de nuestra lista de operadores para formar una pregunta, tenemos que declarar otra variable llamada
Cadena de preguntas y asignar la expresión matemática a preguntas cadena. Ejemplos de preguntas cadena incluyen. Usaremos un bucle for para concentrarnos en las subcadenas individuales de la lista de operandos y la lista de operadores. Para obtener la expresión matemática. Ahora deberíamos tener la expresión matemática como una cadena asignada a la cadena de preguntas variables. Para evaluar el resultado de esta expresión, vamos a utilizar una brillante función incorporada que viene con Python. El mal. Evil interpreta una cadena como un código y ejecuta el código. Por ejemplo, si escribimos correo electrónico uno más dos más cuatro, obtendremos el número siete. De ahí que para evaluar el resultado de nuestra expresión matemática, pasamos en cuestión cadena a la función eval y asignamos el resultado a una nueva variable denominada resultado. Esta profundidad es bastante sencilla y se puede completar en una línea de código. Por último, vamos a interactuar con nuestro usuario. En este ejercicio, estaremos haciendo algunas cosas. Paso uno, mostrando la pregunta al usuario. Paso dos, solicitando al usuario una respuesta. Paso tres, evaluando la respuesta, mostrando el mensaje apropiado y devolviendo la puntuación del usuario. Para el Paso uno, necesitamos usar una función incorporada para manipular cadenas, como se mencionó anteriormente en Python, el símbolo de dos astérix significa exponente, es
decir 32, astérix tres equivale a 27. No obstante, para la mayoría de los usuarios, a astérix no tiene sentido. De ahí que si mostramos una pregunta como esta, es probable que
el usuario se confunda. Para evitar que eso reemplazará cualquier dos símbolos abstractos en cuestión cadena por un símbolo de quilates. Para ello, vamos a construir en la función reemplazar usarlo es sencillo. Justo a la derecha. Ahora puedes imprimir la expresión resultante al usuario. Para el paso dos, podemos usar la función de entrada para aceptar la entrada del usuario. Para el paso tres, deberíamos usar una declaración if para evaluar la respuesta y mostrar el mensaje correcto. Si el usuario obtiene el correcto, le
cumpliremos al usuario y le devolveremos el valor uno. Si el usuario se
equivoca, mostrará la respuesta correcta y devolverá el valor a 0. ¿ Y si la función de entrada devuelve la entrada del usuario como una cadena? En este caso, cuando se compara la entrada del usuario con la respuesta correcta, tiene
que hacer algo de tipificación para cambiar la entrada del usuario a un entero. Al cambiar la entrada del usuario a un entero. Y debes intentar usar una declaración try except para comprobar si el usuario escribió un número. Si el usuario escribió una cadena en su lugar, el programa debe informar al usuario del error y pedir al usuario que lo escriba en número. Por lo que tenemos que usar un bucle verdadero
mientras le pide al usuario un número siempre y cuando sea slash, ella no lo hace. Escribir mientras que verdadero es equivalente a escribir algo como uno igual a uno, ya que uno siempre es igual a uno, las manos siempre verdaderas. El bucle se ejecutará indefinidamente. Vamos a editar el código. El bucle mientras True seguirá en bucle ya que la condición while siempre es verdadera. Salir solo cuando el bloque try se ejecute correctamente y llegue a la sentencia return.
137. Parte 2 escribir el programa principal: Enhorabuena por completar la primera parte y bienvenidos a la segunda parte. La segunda parte va a ser una brisa ya que principalmente
solo estaremos llamando a las funciones que definimos antes. En primer lugar, vamos a encerrar nuestro programa principal en una declaración try except. Queremos manejar cualquier error imprevisto. Uno que ejecute el programa principal comenzará escribiendo el código para el bloque try. En primer lugar, tendremos que importar el módulo de funciones matemáticas. A continuación, preguntemos al usuario su nombre de usuario y asignemos el valor al nombre de usuario variable. Pasar esta variable como parámetro a la función y obtener puntuación de los usuarios. Obtener puntuación de los usuarios devolverá la puntuación
del usuario o devolverá menos una si no se encuentra al usuario. Vamos a lanzar este resultado en un entero y asignarlo a la puntuación de usuario variable. Ahora necesitamos establecer el valor de otra variable, nuevo usuario. Si no se encuentra al usuario, nuevo usuario es igual a verdadero, lo contrario nuevo usuario es falso. Si el nuevo usuario es igual a verdadero, necesitamos cambiarlo de puntuación de menos uno a 0. La siguiente parte de nuestro programa implica un bucle while. Específicamente, nuestro programa solicitará la entrada de nuestro usuario para determinar si debe terminar el programa o hacer algo más. Paso uno, necesita declarar otra variable qué opción de usuario, y darle un valor inicial de 0. Paso dos. A continuación, mientras usas un bucle while, compara la elección del usuario con una cadena de tu elección, digamos menos uno. Si la elección del usuario no es lo mismo que minús1 llamó al generador de funciones. Generar una nueva pregunta. Paso tres, pregunta de enero devolverá una puntuación que el usuario Dios para esa pregunta, utilice este resultado para actualizar la puntuación de usuario variable. Paso cuatro, finalmente, con el fin de evitar un bucle infinito, necesitamos volver a utilizar la función de entrada con el bucle while para aceptar la entrada del usuario y usarlo para actualizar el valor de elección del usuario. Por último, después de que termine el bucle while, el siguiente paso es actualizar el archivo TXT puntaje de los usuarios. Para hacerlo entonces, simplemente llamamos a la función de puntos de usuario de actualización. Eso es todo por el bloque try. Ahora el bloque excepto, simplemente
informamos al usuario que se ha producido un error y el programa saldrá. Hará terminar esta humedad, tendrás un programa completo. Ejecutemos el programa. El programa pedirá un nombre de usuario. Escribamos mi nombre. Entonces el programa genera una pregunta. La expresión matemática que tengo que calcular, no
voy a calcular los números ahora, así que pondré un número aleatorio. Por supuesto, mi respuesta está equivocada y hay una respuesta correcta. Después de eso, el programa me preguntará si quiero
continuar o tipo minús1 para terminar el programa. Haré otro ejemplo. Funciona muy bien. Emocionado. Espero que estés tan emocionado como yo. Hemos llegado al final de su Proyecto Milestone y ojalá haya codificado con éxito su primer programa. Si tiene problemas para completar algún ejercicio, por favor hágamelo saber. Pero aún no hemos terminado. Tengo un ejercicio adicional para que te retes. En ocasiones la pregunta generada puede resultar en una respuesta que es muy grande o muy pequeña. Es muy inconveniente para los usuarios calcular y clave en número muy grande o muy pequeño. De ahí que queremos evitar respuestas que sean demasiado grandes o pequeñas. Se puede modificar el programa para evitar preguntas que den como resultado respuestas mayores a 10 mil y menores a las negativas 10 mil. Intenta modificar el código y comprueba el código de tus archivos de recursos. Gracias por ver.