Python para principiantes: aprende Python en una semana | Andreas Exadaktylos | Skillshare
Buscar

Velocidad de reproducción


1.0x


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

Python para principiantes: aprende Python en una semana

teacher avatar Andreas Exadaktylos, Teacher | Expert Computer Scientist | Entrepreneur

Ve esta clase y miles más

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

Ve esta clase y miles más

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

Lecciones en esta clase

    • 1.

      INTRODUCCIÓN

      1:27

    • 2.

      ¿Por qué aprender Python?

      2:02

    • 3.

      Cinco (5) consejos para principiantes para aprender a programar con Python

      6:55

    • 4.

      INTRODUCCIÓN: descarga e instala Python 3 (2024)

      1:25

    • 5.

      Descarga e instala Python 3 (Windows)

      6:55

    • 6.

      Cómo usar el shell de Python

      2:19

    • 7.

      Configuración de Python (resumen)

      1:11

    • 8.

      Editores de código

      2:15

    • 9.

      Tu primer programa Python: introducción

      1:09

    • 10.

      Cómo escribir nuestro primer programa de Python

      9:12

    • 11.

      Cometamos algunos errores

      6:31

    • 12.

      Crear una variable

      13:45

    • 13.

      Agregar comentarios

      4:06

    • 14.

      DESAFÍO: interactuar con IDLE (shell de Python)

      4:44

    • 15.

      Cómo encontrar ayuda

      3:06

    • 16.

      Cómo escribir tu primer programa de Python (Resumen)

      1:06

    • 17.

      Cuerdas y métodos para hacer cuerdas (introducción)

      1:23

    • 18.

      Qué es una cuerda

      5:47

    • 19.

      EJERCICIO: qué es una cuerda

      2:18

    • 20.

      SOLUCIÓN: qué es una cuerda

      5:38

    • 21.

      Manipulación de cadenas con métodos

      11:55

    • 22.

      EJERCICIO: cambia el caso

      1:09

    • 23.

      SOLUCIÓN: cambia el caso

      3:20

    • 24.

      EJERCICIO: elimina los espacios en blanco

      1:08

    • 25.

      SOLUCIÓN: elimina el espacio en blanco

      2:17

    • 26.

      Indexación de cadenas

      2:36

    • 27.

      Rebanado de cuerdas

      3:30

    • 28.

      EJERCICIO: cortar cuerdas

      0:28

    • 29.

      SOLUCIÓN: cortar cuerdas

      2:40

    • 30.

      Concatenación de cadenas

      2:18

    • 31.

      EJERCICIO: concatenación de cadenas

      0:38

    • 32.

      SOLUCIÓN: concatenación de cadenas

      2:38

    • 33.

      Formato de cadena

      3:50

    • 34.

      Cadenas en F: una sintaxis mejorada para el formato de cadenas

      7:04

    • 35.

      EJERCICIO: optimiza tus impresiones

      1:06

    • 36.

      SOLUCIÓN: optimiza tus impresiones

      4:39

    • 37.

      Interactuar con la entrada del usuario()

      4:53

    • 38.

      EJERCICIO: interactúa con la información del usuario

      0:46

    • 39.

      SOLUCIÓN: interactuar con la entrada del usuario

      4:57

    • 40.

      Trabajar con cadenas y números

      13:55

    • 41.

      EJERCICIO: trabaja con cuerdas y números

      1:07

    • 42.

      SOLUCIÓN: trabaja con cuerdas y números

      6:58

    • 43.

      Métodos de formato de impresión()

      7:43

    • 44.

      Encontrar una cuerda dentro de otra cuerda

      9:18

    • 45.

      EJERCICIO: encuentra una letra en una cadena

      0:47

    • 46.

      SOLUCIÓN: encuentra una letra en una cadena

      4:10

    • 47.

      Cuerdas y métodos para hacer cuerdas (RESUMEN)

      0:57

    • 48.

      PROYECTO: crea un programa de impresión de recibos

      12:21

    • 49.

      Números y matemáticas (resumen)

      1:26

    • 50.

      Tipos numéricos en Python

      4:50

    • 51.

      Enteros

      6:50

    • 52.

      EJERCICIO: define literales enteros

      1:17

    • 53.

      SOLUCIÓN: define literales enteros

      4:07

    • 54.

      Números de punto flotante

      7:38

    • 55.

      Operadores aritméticos y de comparación

      5:15

    • 56.

      Operadores de comparación lógicos (booleanos) y en cadena

      2:46

    • 57.

      Error de representación de punto flotante

      6:02

    • 58.

      Funciones matemáticas y métodos numéricos

      9:32

    • 59.

      Números con formato de cadena

      4:15

    • 60.

      EJERCICIO: muestra un porcentaje

      0:19

    • 61.

      SOLUCIÓN: muestra un porcentaje

      1:04

    • 62.

      Numbers complejos

      4:40

    • 63.

      El operador del resto (porcentaje módulo)

      6:25

    • 64.

      Lectura de números con la función de entrada

      8:11

    • 65.

      Números y matemáticas (RESUMEN)

      1:24

    • 66.

      DESAFÍO: calcular un porcentaje

      3:21

    • 67.

      DESAFÍO: calcular un promedio

      5:15

    • 68.

      DESAFÍO: convertir una fórmula matemática en una declaración de programación

      5:47

    • 69.

      Fechas y horas

      4:18

    • 70.

      Qué es una lista

      5:50

    • 71.

      Trabajo con listas

      3:44

    • 72.

      Cómo hacer listas numéricas

      1:41

    • 73.

      Impresión de listas

      2:07

    • 74.

      Tupulos

      4:00

    • 75.

      Proyecto de tuplas, empacado y desempaquetado

      4:00

    • 76.

      Trabajar con diccionarios

      4:07

    • 77.

      Conjuntos

      4:25

    • 78.

      Declaraciones If

      3:38

    • 79.

      EJEMPLOS de usar la declaración if en una solicitud

      10:19

    • 80.

      Para bucles

      2:09

    • 81.

      EJEMPLOS de uso de la declaración para

      6:12

    • 82.

      Bucles mientras

      3:35

    • 83.

      Romper y continuar

      2:25

    • 84.

      PROYECTO: juego de adivinanzas

      6:27

    • 85.

      Cómo usar declaraciones if con listas

      1:42

    • 86.

      Cómo usar bucles con listas

      2:02

    • 87.

      Cómo usar un bucle de tiempo con listas y diccionarios

      3:03

    • 88.

      Crear pilas con listas

      4:04

    • 89.

      Búsqueda y clasificación de listas

      4:34

    • 90.

      Bucle a través de un diccionario

      2:14

    • 91.

      Cómo reemplazar la declaración de interruptor con un diccionario

      3:33

    • 92.

      Trabajar con el objeto de contraposición

      2:25

    • 93.

      Qué son las funciones

      2:13

    • 94.

      Funciones incorporadas

      2:09

    • 95.

      Cómo definir tu función

      2:57

    • 96.

      Más funciones integradas

      9:37

    • 97.

      Ámbitos globales y locales

      4:54

    • 98.

      PROYECTO: juego de adivinanzas mejorado (versión 2) - PARTE 1

      7:14

    • 99.

      PROYECTO: juego de adivinanzas mejorado (versión 2) - PARTE 2

      4:29

    • 100.

      PROYECTO: juego de adivinanzas mejorado 3 (versión 2) - PARTE 3

      9:16

    • 101.

      Cómo manejar los errores

      3:22

    • 102.

      Problemas comunes de sintaxis

      8:40

    • 103.

      Conviértete en un cazador de recompensas de insectos

      9:10

    • 104.

      Manejo básico de excepciones

      5:57

    • 105.

      Manejo de varias excepciones

      7:26

    • 106.

      Cómo generar excepciones

      2:28

    • 107.

      Cómo hacer depuraciones en IDLE 2021

      3:27

    • 108.

      Roca, papel, tijeras

      1:49

    • 109.

      Roca, papel, tijeras con entradas y bucles de Python

      7:46

    • 110.

      Piedra, papel, tijeras con Python: cómo determinar un ganador

      13:24

    • 111.

      Qué es la programación orientada a objetos (OOP)

      3:16

    • 112.

      Clases en Python

      2:50

    • 113.

      Atributos de clase e instancia

      5:18

    • 114.

      Cómo agregar atributos a una clase de Python

      6:44

    • 115.

      Añadir métodos a una clase de Python

      6:00

    • 116.

      Introducción a la herencia de OOP

      3:52

    • 117.

      Ejemplo de herencia

      9:15

    • 118.

      Escritos de comandos, módulos, paquetes y bibliotecas 2022

      4:18

    • 119.

      Escribir un módulo

      2:44

    • 120.

      La ruta de búsqueda del módulo

      4:42

    • 121.

      La declaración de importación

      6:08

    • 122.

      La función dir()

      3:52

    • 123.

      Ejecuta un módulo

      5:41

    • 124.

      Recargar un módulo

      3:16

    • 125.

      Cómo instalar un paquete en Python utilizando PIP

      3:18

    • 126.

      Paquetes de Python

      4:33

    • 127.

      Crea gráficos y formas con el módulo Turtle de Python

      5:56

    • 128.

      Python abrir, leer y escribir en un archivo

      5:49

    • 129.

      Cómo obtener una lista de directorio y atributos de archivos

      7:56

    • 130.

      Cómo crear y eliminar directorios

      10:28

    • 131.

      Eliminar, copiar, mover y renombrar archivos

      7:37

    • 132.

      Proyecto de hitos Crea un juego de matemáticas interactivo

      1:30

    • 133.

      Parte 1: importar módulos y obtener la puntuación del usuario

      3:44

    • 134.

      Parte 1: manejo de excepciones y actualización de la puntuación del usuario

      7:15

    • 135.

      Parte 1: generar las preguntas y las matemáticas

      6:16

    • 136.

      Parte 1: generar una expresión matemática y evaluar el resultado

      6:03

    • 137.

      Parte 2: escribir el programa principal

      5:48

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

Generado por la comunidad

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

1111

Estudiantes

5

Proyectos

Acerca de esta clase

Un curso práctico de programación de Python 3 para principiantes absolutos: aprende a codificar en Python (+proyectos de Python)

¡Empieza a programar en Python inmediatamente!   

Si eres principiante en la programación, este curso te ayudará a aprender a programar en Python rápidamente.

Python es un lenguaje increíblemente eficiente: tus programas harán más en menos líneas de código de lo que requerirían muchos otros lenguajes. También se usa en campos científicos para la investigación académica y el trabajo aplicado.   

Mi objetivo era crear un curso para personas de cualquier edad que nunca hayan programado en Python o que nunca hayan programado, para que puedan crear programas que funcionen.   

El curso está lleno de ejemplos y proyectos que se eligen cuidadosamente para demostrar cada concepto y así puedas comprender mejor el idioma. Está diseñado para servir como un recurso de aprendizaje único e integral para todos los principiantes de Python, ya sea que utilicen Python 2.X, Python 3.X o ambos   

La programación en Python para principiantes también es perfecta para los profesores de secundaria y bachillerato que quieran ofrecer a sus estudiantes una introducción a la programación basada en proyectos.  

¿Quieres aprender la programación práctica en Python que puedas usar al instante? Si es así, entonces este es el curso para ti. Está totalmente basada en proyectos y está llena de ejemplos que están completamente explicados y son fáciles de entender. Se ha grabado en Full HD 1080p.

 Python es un lenguaje genial para aprender, ¡así que inscríbete en este curso y comencemos!

Conoce a tu profesor(a)

Teacher Profile Image

Andreas Exadaktylos

Teacher | Expert Computer Scientist | Entrepreneur

Profesor(a)

LinkedIn: https://www.linkedin.com/in/andreasexadaktylos

Hi, I am Andreas and I'm a teacher. I really love learning and teaching whenever i can.

I have over 16 years of experience in teaching as an instructor. I have my own computer learning school, called Futurekids, from 2001 to now. I am the founder of Mellon Training, an online video tutorials learning school.

I have a Masters Degree in Computer Science and a Degree in Electronic Engineering.

I always wanted to create my own business. Being your own boss is an incredibly liberating experience but difficult as well.

I have a passion for software products that make people's lives easier. I love to create websites and optimizing them with Search Engine optimization techniques. I created my online e-sh... Ver perfil completo

Level: Beginner

Valoración de la clase

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

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

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

Transcripciones

1. INTRODUCCIÓN: Hola 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.