República Bolivariana de Venezuela Ministerio del Poder Popular para la Educación Superior Teoría del Lenguaje de programación: Python Prof. Lcdo. Alberto Veronese Materia: Programación Ver 1.2 – Mayo 2023 ÍNDICE Pág. ¿Qué es Python? ¿Qué es un programa multiparadigma? ¿Qué es un programa tipado dinámico? ¿Qué es un programa tipado dinámico? ¿Qué es IDE y algunos de sus editores Python? - Los IDE de Python más conocidos 6) ¿Qué es un programa? 7) ¿Qué es un código fuente? 8) ¿Qué es un código interprete? 9) Variables y sus tipos 10) Operadores lógicos y de comparación 11) Operadores aritméticos 12) Formato de impresión 13) Estructura de un programa 14) 15) 1) 2) 3) 4) 5) Página | 2 A.J.S. - Prof. Lcdo. Alberto Veronese INTRODUCCIÓN Python es un lenguaje de programación interpretado de tipado dinámico cuya filosofía hace hincapié en una sintaxis que favorezca un código legible. Se trata de un lenguaje de programación multiparadigma y disponible en varias plataformas. Detectan los errores en tiempo de ejecución. Por medio del programa de Python muchos usuarios pueden ejecutar programas fácilmente, solamente con la asesoría de algunos tutoriales y así lograr el éxito como programador. Para ello es necesario indagar acerca de su historia, conocer algunas definiciones como multiparadigma y multiproposito; así como también cada uno de los operadores que se utilizan y su lenguaje. Dada la popularidad que ha adquirido en la última década, cabría esperar que se trate de un lenguaje nacido a comienzos de este siglo. Nada más lejos de la realidad: su origen se remonta a finales de los años 80 y principios de los 90. Su implementación comenzó en diciembre de 1989 cuando Guido van Rossum, trabajador del CWI (un centro de investigación holandés de carácter oficial) decidió empezar el proyecto como un pasatiempo dándole continuidad al lenguaje de programación ABC desarrollado por el equipo del que había formado parte en el CWI. Su nombre se debe a la afición de Van Rossum al grupo Monty Python y su concepción se enfocaba en que fuera fácil de usar y aprender sin que esto penalizara sus capacidades. La causa de que no llegara a adquirir la suficiente importancia en su momento fue la falta de recursos en el hardware de la época. El avance en las tecnologías de hardware ha sido una condición necesaria para el repunte de su popularidad. No obstante, la generalización del Big Data en los últimos años, seguida de la explosión de la inteligencia artificial, el machine learning, el deeplearning y el surgimiento de la ciencia de datos o data science como una nueva área de trabajo con especialistas propios han revolucionado el panorama. Y es que muchas de las nuevas herramientas que han surgido, y que son explotadas por los ingenieros de datos y los científicos de datos, han sido desarrolladas en Python o nos ofrecen Python como la forma predilecta de interactuar con ellas. Página | 3 A.J.S. - Prof. Lcdo. Alberto Veronese 1. ¿QUÉ ES PYTHON? Python es un lenguaje de programación de alto nivel que se utiliza para desarrollar aplicaciones de todo tipo. A diferencia de otros lenguajes como Java o .NET, se trata de un lenguaje interpretado, es decir, que no es necesario compilarlo para ejecutar las aplicaciones escritas en Python, sino que se ejecutan directamente por el ordenador utilizando un programa denominado interpretador, por lo que no es necesario “traducirlo” a lenguaje máquina. Es un lenguaje sencillo de leer y escribir debido a su alta similitud con el lenguaje humano. Además, se trata de un lenguaje multiplataforma de código abierto y, por lo tanto, gratuito, lo que permite desarrollar software sin límites. Con el paso del tiempo, Python ha ido ganando adeptos gracias a su sencillez y a sus amplias posibilidades, sobre todo en los últimos años, ya que facilita trabajar con inteligencia artificial, big data, machine learning y data science, entre muchos otros campos en auge. El lenguaje de programación Python utiliza módulos de código que son intercambiables en lugar de una larga lista de instrucciones que era estándar para los lenguajes de programación funcional. La implementación estándar de Python se llama «cpython«. En definitiva, no convierte su código en lenguaje de máquina o código máquina, algo que el hardware puede entender. En realidad, lo convierte en algo llamado código de byte. Este código de bytes no puede ser entendido por la CPU. Así que necesitamos un intérprete llamado Máquina Virtual Python (PVM) que ejecuta los códigos de bytes. El intérprete de Python realiza las siguientes tareas para ejecutar un programa: Paso 1: El intérprete lee un código o instrucción Python. Luego verifica que la instrucción esté bien formateada, es decir, comprueba la sintaxis de cada línea. Si encuentra algún error, detiene inmediatamente la traducción y muestra un mensaje de error. Pasó 2: Si no hay ningún error, es decir, si la instrucción o el código python están bien formateado, el intérprete lo traduce a su forma equivalente en un lenguaje intermedio llamado «código Byte». Así, después de la ejecución exitosa de la escritura o el código Python, se traduce completamente en código Byte. Paso 3: El código del byte se envía a la Máquina Virtual Python, donde de nuevo se ejecuta el código del byte en PVM. Si se produce un error durante esta ejecución, ésta se detiene con un mensaje de error. Página | 4 A.J.S. - Prof. Lcdo. Alberto Veronese 2. ¿QUÉ ES UN PROGRAMA MULTIPARADIGMA? La Programación Multiparadigma es una práctica que emerge como resultado de la coexistencia de los paradigmas orientado a objetos, procedural, declarativo y funcional buscando mejorar la producción en el desarrollo de proyectos. Python es un lenguaje de programación Multiparadigma. Esto significa que más que forzar a los programadores a adoptar un estilo particular de programación, permite varios estilos: programación orientada a objetos, programación imperativa y programación funcional. 3. ¿QUÉ ES UN PROGRAMA ES MULTIPLATAFORMA? Un lenguaje de programación multiparadigma se define como un lenguaje de programación que puede ser: ORIENTADO A OBJETOS, FUNCIONAL O ESTRUCTURADO. Esto significa que el lenguaje permite al programador combinar los diversos paradigmas para resolver un problema de diferentes maneras. El resultado es un código más flexible y menos dependiente de un único estilo de programación. Ejemplo, un lenguaje de programación multiparadigma puede permitir que un programador combine la programación orientada a objetos con la programación estructurada para escribir código que está optimizado para los objetos y también sea eficiente al usar estructuras de datos apropiadas para la tarea. Esto significa que el programador no tiene que elegir entre los dos para escribir un programa exitoso. Esto también puede permitir al programador cambiar fácilmente entre los diferentes paradigmas, según las necesidades del programa. Los programas multiplataforma además son aplicaciones que se caracterizan por ser creadas bajo un único lenguaje de programación que facilita su exportación y su visualización en cualquier tipo de dispositivo independientemente de su sistema operativo (iOS o Android). Por ejemplo, una aplicación multiplataforma puede ejecutarse sin problema alguno, tanto en Microsoft Windows en la arquitectura x86, como en Linux en la arquitectura x86 y Mac OS X, ya sea en el Power PC o sistemas Apple Macintosh basados en x86. En general, una aplicación multiplataforma se puede ejecutar tanto en todas las plataformas existentes o como mínimo dos plataformas. El término de (Python lenguaje multiplataforma) hace referencia a la capacidad de un software o lenguaje de programación, capaz de ejecutarse en diferentes plataforma o sistemas operativos. Página | 5 A.J.S. - Prof. Lcdo. Alberto Veronese 4. ¿QUÉ ES UN PROGRAMA TIPADO DINÁMICO? Los programas de tipado dinámico son aquellos donde el intérprete asigna a las variables un tipo durante el tiempo de ejecución basado en su valor en ese momento. Un lenguaje tipado dinámicamente es donde los programadores no tienen que anunciar que tipos de variables es cuando escriben el código porque Python los determina en el tiempo de ejecución. Debido a esto, es posible escribir programas de Python con mayor rapidez. El lenguaje de programación es dinámicamente tipado si una variable puede tomar valores de distintos tipos. La mayoría de lenguajes de tipado dinámico son lenguajes interpretados, como Python o Ruby. Un lenguaje que no es dinámicamente tipado se dice que es de tipado estático, o estáticamente tipado. 5. ¿QUÉ ES IDE Y ALGUNOS DE SUS EDITORES PYTHON? Un entorno de desarrollo integrado (IDE) es un software que brinda a los desarrolladores las herramientas que necesitan para escribir, editar, probar y corregir código en un único lugar. Proporciona un entorno de desarrollo donde todas las herramientas están disponibles en una única interfaz gráfica de usuario (GUI) fácil de usar. Un IDE incluye principalmente: • Editor de código para escribir los códigos de software • Automatización de construcción local • Depurador de programas Los IDE de Python más conocidos son: Thonny: Es un excelente IDE de Python, especialmente para principiantes. Su desarrollo principal se llevó a cabo en el Instituto de Ciencias de la Computación en la universidad de Estonia - Universidad de Tartu. Junto al Frambuesa Pi Foundation apoyó varios desarrollos de características en Thonny v3.0. Desde 2018, Cybernetica apoya parcialmente el desarrollo de Thonny. Viene equipado con Python v3.x incorporado, por lo que necesita un instalador simple para comenzar. Su interfaz de usuario es básica y simple que los principiantes pueden entender fácilmente sin distracciones. Le permite ejecutar programas paso a paso usando Ctrl + F5, sin necesidad de puntos de interrupción. Página | 6 A.J.S. - Prof. Lcdo. Alberto Veronese PyCharm: conoce todos los aspectos de su código. Por lo tanto, puede confiar en esta solución para la verificación de errores sobre la marcha, la finalización de código inteligente, la navegación de proyectos sin esfuerzo y la rápida corrección de errores. Ayuda a los desarrolladores a escribir códigos limpios y mantenibles y a regular el control de calidad a través de comprobaciones PEP8, refactorización inteligente, inspecciones y asistencia en las pruebas. PyCharm tiene un editor de código inteligente que ofrece el mejor soporte de su clase no solo para Python sino también para JavaScript, TypeScript, CoffeeScript, entre otros. KDevelop: se basa en tecnología moderna de código abierto, que ofrece un entorno de desarrollo fluido a los desarrolladores que trabajan en proyectos de cualquier tamaño. En esencia, se encuentra una combinación de un editor sofisticado y un análisis de código semántico, que ofrece una rica experiencia de programación. Slickedit: Admite más de 70 lenguajes de programación, edita hasta 2 TB rápidamente, es altamente personalizable, tiene un gran soporte y tiene un foro de usuarios activo. Visual Studio Code: Codifique de forma más inteligente y rápida con el mejor IDE de su clase de Microsoft: Visual Studio Code. Ofrece un rendimiento mejorado a través de IntelliSense para programas C ++. Le permite escribir variables de forma precisa y rápida mediante sugerencias de código. Mantenga la velocidad y supere las complejidades mientras navega hacia un archivo, miembro, tipo o símbolo. Mantenga la velocidad y supere las complejidades mientras navega hacia un archivo, miembro, tipo o símbolo. También puede mejorar los códigos con bombillas, sugiriendo acciones como agregar parámetros, renombrar funciones, etc. Con CodeLens, encuentre información esencial como los cambios realizados en el código, sus impactos y para verificar si el método está probado por unidad o no. LiClipse: Admite alrededor de 30 idiomas, incluidos Java, JavaScript, CSS, PHP, PERL, C, C ++, HTML, Go, Ruby, Django Templates, científico robusto de Python diseñado para desarrolladores, científicos de datos e ingenieros. Tiene una sorprendente combinación de edición avanzada, creación de perfiles y depuración con exploración de datos, inspección profunda, hermosa Página | 7 A.J.S. - Prof. Lcdo. Alberto Veronese visualización y ejecución interactiva. Spyder permite trabajar de manera eficiente utilizando un editor en varios idiomas. Atom: Es un editor gratuito desarrollado por GitHub que admite la codificación en varios lenguajes de programación, incluido Python. Mediante el uso de Atom, los desarrolladores pueden trabajar directamente con GitHub, el sitio web en el que puede guardar su código de forma centralizada. Atom ofrece las siguientes características: Posibilidad de utilizarlo con muchos sistemas operativos. Instalación o creación fáciles de nuevos paquetes. Compleción automática de código más rápida. Posibilidad de buscar archivos y proyectos. Fácil personalización de la interfaz. Vim: es una aplicación que funciona en el ámbito de la consola, necesaria en un terminal de texto. Este editor es para usuarios intermedios y avanzados, tiene una curva de aprendizaje moderada. Vim, fue desarrollado bajo la filosofía del software libre, es decir, puedes entrar a su núcleo y mejorar sus funcionalidades. Está disponible para Windows, Mac y para todas las distribuciones de Linux, en consecuencia, es una alternativa interesante para empezar a desarrollar aplicaciones clientes – servidor, soporta conexiones SSH. Lo anterior permite crear códigos para crear conexiones con un hosting para comprobar su estado, acceder a una base de datos, etc. Wing: es usado por los programadores de aplicaciones que utilizan Python como su lenguaje de programación principal. Este editor permite a los desarrolladores crear códigos de pruebas, análisis de datos, depuraciones, control de versiones, automatización, etc. Es un programa versátil, por ello, es uno de los más populares en el mercado, simplifica la tarea de crear un programa. Es oportuno mencionar que la aplicación ofrece a los usuarios una versión gratuita y otra de pago. La versión gratuita brinda lo siguiente: Desarrollo de aplicaciones web y móvil: Ofrece todas las herramientas para que elabores tu programa, compiles, y puedas ejecutarlo. Es un editor muy poderoso y versátil, incluso puedes diseñar aplicaciones móviles, muy solicitadas por las empresas de software. Página | 8 A.J.S. - Prof. Lcdo. Alberto Veronese Refactorización o modificación del código: El programa permite al programador realizar cambios al código fuente sin alterar el comportamiento de una aplicación, es un proceso común en el ciclo de desarrollo de un software. Depuración: El editor permite al programador depurar las líneas de código de una manera sencilla, identificando los errores. La versión pago ofrece lo siguiente: Elaboración de informes: Esto es muy importante al momento de documentar el software, el editor genera un informe detallado de la estructura y estado del programa. En cuanto a número de líneas de códigos, tamaño del archivo, clases, etc. Test de compatibilidad: Otra función que permite medir el desempeño del software desarrollado, puedes medir su comportamiento en diferentes entornos como sistemas operativos, navegadores, etc. Modelado de datos: Es otro aspecto a destacar del editor, es capaz de crear la estructura de datos de la aplicación, recuerda que Python es un lenguaje orientado a objetos. Si eres un usuario con presupuesto y vas a desarrollar aplicaciones robustas, te recomiendo que elijas la versión pago. Spyder Python: Este IDE permite identificar los errores lógicos, sintaxis, edita variable desde la misma interfaz. Además de ejecutar fragmentos de códigos desde el editor de la consola, ejecución pasó a paso, etc. Se caracteriza por ofrecer un nivel avanzado de funciones, depuración, explorador de datos y edición. Tiene una buena integración con la consola, e interactúa y modifica las variables sobre la marcha Página | 9 A.J.S. - Prof. Lcdo. Alberto Veronese 6. ¿QUÉ ES UN PROGRAMA? Un programa informático o programa de computadora es una secuencia de instrucciones u órdenes basadas en un lenguaje de programación que una computadora interpreta para resolver un problema o una función específica. Python es un lenguaje de programación de alto nivel que se utiliza para desarrollar aplicaciones de todo tipo. 7. ¿Qué es un código fuente? Un código fuente es básicamente un archivo, al igual que un archivo de Microsoft (. doc.), pero ligeramente diferente. Es un archivo de texto sin procesar, escrito en editores muy simples, como el Bloc de notas de Windows. El código fuente debe guardarse en un archivo, que se pasa como entrada al traductor. 8. ¿QUÉ ES UN CÓDIGO INTERPRETE? Un intérprete es un programa informático que procesa el código fuente de un proyecto de software durante su tiempo de ejecución. Existen dos maneras de usar el intérprete de Python: en modo de comandos y en modo de guión. En modo de comandos se escriben sentencias en lenguaje Python en el intérprete de comandos de Python y éste muestra el resultado inmediatamente: 9. VARIABLES Y SUS TIPOS En Python, existen varios tipos de datos que se pueden asignar a una variable, incluyendo: • Enteros: representan números enteros sin decimales y se pueden representar utilizando la clase int. Por ejemplo, x = 10. • Flotantes: representan números decimales y se pueden representar utilizando la clase float. Por ejemplo, x = 3.1416. • Cadena de caracteres: representan texto y se pueden representar utilizando la clase str. Las cadenas se pueden crear utilizando comillas simples o dobles. Por ejemplo, x = "Hola, mundo!". • Booleanos: representan valores de verdadero o falso y se pueden representar utilizando la clase bool. Los valores booleanos se pueden obtener a partir de comparaciones o utilizando los valores literales True o False. Por ejemplo, x = True. • Listas: representan una colección de elementos ordenados y modificables y se pueden representar utilizando la clase list. Los elementos de una lista pueden ser de cualquier tipo de datos, incluso otras listas. Por ejemplo, x = [1, 2, 3, "cuatro"]. Página | 10 A.J.S. - Prof. Lcdo. Alberto Veronese • Tuplas: representan una colección de elementos ordenados e inmutables y se pueden representar utilizando la clase tuple. Al igual que con las listas, los elementos de una tupla pueden ser de cualquier tipo de datos, incluso otras tuplas. Por ejemplo, x = (1, 2, 3, "cuatro"). • Conjuntos: representan una colección no ordenada y sin elementos duplicados y se pueden representar utilizando la clase set. Los elementos de un conjunto pueden ser de cualquier tipo de datos, excepto listas o conjuntos, ya que estos no son hashable. Por ejemplo, x = {1, 2, 3}. • Diccionarios: representan una colección de pares clave-valor y se pueden representar utilizando la clase dict. Las claves y valores pueden ser de cualquier tipo de datos, incluso otras listas o diccionarios. Por ejemplo, x = {"nombre": "Juan", "edad": 25}. 10. OPERADORES LÓGICOS O DE COMPARACIÓN Otro tipo de operadores fundamentales en programación son los operadores lógicos o de comparación. Se usan para comparar dos variables o expresiones y obtener un valor verdadero o falso. Como operadores de comparación disponemos de: SÍMBOLO SIGNIFICADO EJEMPLO = Igual que A=B > Mayor que A>B < Menor que A<B >= Mayor o igual que A >= B <= Menor o igual que A <= B <> Distinto que A <> B Página | 11 A.J.S. - Prof. Lcdo. Alberto Veronese 11. OPERADORES ARITMÉTICOS Un operador es un signo o símbolo que especifica el tipo de cálculo que se realiza en una expresión. Hay operadores matemáticos, de comparación, lógicos y de referencia. Access admite diversos operadores, incluidos los operadores aritméticos como +, -, de multiplicación (*) y división (/), además de los operadores de comparación para comparar valores, los operadores de texto para concatenar texto y los operadores lógicos para determinar valores verdaderos o falsos. En este artículo se proporciona información sobre el uso de estos operadores. Siguiente tabla se describen a continuación: OPERADOR DESCRIPCIÓN USO ( + ) Realiza Adición entre los operandos, 12 + 3 = 15 ( - ) Realiza Substracción entre los operandos, 12 - 3 = 9 ( * ) Realiza Multiplicación entre los operandos, 12 * 3 = 36 (/) Realiza División entre los operandos, 12 / 3 = 4 (%) Realiza un módulo entre los operandos, 16 % 3 = 1 (**) Realiza la potencia de los operandos, 12 ** 3 = 1728 (//) Realiza la división con resultado de número entero, 18 // 5 = 3 12. FORMATO DE IMPRESIÓN Python usa un estilo de formato de cadenas parecido a C para crear nuevas cadenas de texto. Cuando se trabaja con datos es usual querer imprimir salidas estructuradas (tablas, etc.). Por ejemplo: Nombre Cajones Precio ---------- ---------- ----------Lima 100 32.20 Naranja 50 91.10 Caqui 150 103.44 Mandarina 200 51.23 Formato de cadenas: Una excelente manera de darle formato a una cadena en Python es usando f-strings . >>> nombre = 'Naranja' >>> cajones = 100 >>> precio = 91.1 >>> f'{nombre:>10s} {cajones:>10d} {precio:>10.2f}' Página | 12 A.J.S. - Prof. Lcdo. Alberto Veronese ' Naranja 100 91.10' La parte {expresion:form} va a ser reemplazada. Usualmente los f-strings se usan con print 1 nombre = 'Naranja' 2 cajones = 100 3 precio = 91.1 4 F'{nombre:>10s} {cajones:>10d} {precio:>10.2f}' 5 print(f'{nombre:>10s} {cajones:>10d} {precio:>10.2f}') Python 3.7.9 (bundled) >>> %Run 'formato de printf.py' Naranja 100 91.10 >>> print(f'{nombre:>10s} {cajones:>10d} {precio:>10.2f}') Códigos de formato: Los códigos de formato (lo que va luego de: dentro de {}) son similares a los que se usan en el printf() del lenguaje C. Los más comunes son: d Entero decimal b Entero binario x Entero hexadecimal f Flotante como [-]m.dddddd e Flotante como [-]m.dddddde+-xx g Flotante, pero con uso selectivo de la notación exponencial E. s Cadenas c Carácter (a partir de un entero, su código) Los modificadores permiten ajustar el ancho a imprimir o la precisión decimal (cantidad de dígitos luego del punto). Ésta es una lista parcial: :>10d Entero alineado a la derecha en un campo de 10 caracteres :<10d Entero alineado a la izquierda en un campo de 10 caracteres :^10d Entero centrado en un campo de 10 caracteres :0.2f Flotante con dos dígitos de precisión Formato a diccionarios: Se podrá usar el método format_map() para aplicarle un formato a los valores de un diccionario: >>> s = { 'nombre': 'Naranja', 'cajones': 100, 'precio': 91.1 } >>> '{nombre:>10s} {cajones:10d} {precio:10.2f}'.format_map(s) ' Naranja 100 91.10' Página | 13 A.J.S. - Prof. Lcdo. Alberto Veronese Usa los mismos códigos que los f-strings pero toma los valores que provee el diccionario. El método format(): Existe un método format() que permite aplicar formato a argumentos. >>> '{nombre:>10s} {cajones:10d} cajones=100, precio=91.1) ' Naranja 100 {precio:10.2f}'.format(nombre='Naranja', 91.10' >>> '{:10s} {:10d} {:10.2f}'.format('Naranja', 100, 91.1) ' Naranja 100 91.10' La verdad es que format() nos resulta un poco extenso y preferimos usar f-strings . 13. ESTRUCTURA DE UN PROGRAMA Un programa informático es una secuencia de acciones (instrucciones) que manipulan un conjunto de objetos (datos). Existen dos partes o bloques que componen un programa: Bloque de declaraciones: en este se detallan todos los objetos que utiliza el programa (constantes, variables, archivos, etc.). Bloque de instrucciones: conjunto de acciones u operaciones que se han de llevar a cabo para conseguir los resultados esperados. El bloque de instrucciones está compuesto a su vez por tres partes, aunque en ocasiones no están perfectamente delimitadas, y aparecerán entremezcladas en la secuencia del programa, podemos localizarlas según su función. Estas son: a) Entrada de datos: instrucciones que almacenan en la memoria interna datos procedentes de un dispositivo externo. b) Proceso o algoritmo: instrucciones que modifican los objetos de entrada y, en ocasiones, creando otros nuevos. c) Salida de resultados: conjunto de instrucciones que toman los datos finales de la memoria interna y los envían a los dispositivos externos. Página | 14 A.J.S. - Prof. Lcdo. Alberto Veronese