Saltar a contenido

1. Fundamentos básicos de programación

Un programa hace que una computadora sea utilizable.

Sin un programa, una computadora, incluso la más poderosa, no es más que un objeto. Del mismo modo, sin un pianista, un piano no es más que una caja de madera

Las acciones que debe realizar un programa se describen utilizando un lenguaje.

Lenguajes

¿Qué compone un lenguaje?

  • Alfabeto, cirílico, occidental, árabe…
  • Léxico. Palabras, diccionario
  • Sintaxis - se encarga de establecer reglas, gramática
  • Semántica - ¿Tiene sentido?

Lenguajes naturales

Son aquellos lenguajes que hablan los seres humanos.

Lenguajes de programación

Son aquellos lenguajes que utilizamos para realizar programas.

La lengua materna de una computadora es el lenguaje "Máquina". Este lenguaje está muy lejos de las lenguas humanas, por lo que necesitamos un lenguaje común en el que los humanos podamos escribir los programas y un lenguaje que las máquinas puedan entender. Tales lenguajes son llamados lenguajes de programación de alto nivel.

Un programa escrito en un lenguaje de programación de alto nivel se llama código fuente, en contraste con el código máquina ejecutado por las computadoras.

El archivo que contiene el código fuente se llama archivo fuente.

Los lenguajes de programación de alto nivel son aquellos más cercanos a los naturales.

Finalmente todo se traduce a código máquina (lenguaje máquina) muy alejado de los lenguajes humanos.

Código máquina es el código que es ejecutado por la máquina.

Compilación e interpretación

COMPILACIÓN - El programa fuente se traduce una vez (sin embargo, cada vez que se modifique el código fuente se debe realizar la traducción de nuevo) obteniendo un archivo (por ejemplo, un archivo .exe si el código está diseñado para ejecutarse en MS Windows) que contiene el código máquina; ahora puedes distribuir el archivo en todo el mundo; el programa que realiza esta traducción se llama compilador o traductor y el resultado es el programa compilado o distribuible.

Ventajas e inconvenientes de la compilación:

  • La ejecución del código traducido suele ser más rápida.

  • Solo el programador debe tener el compilador; el usuario final puede usar el código sin él.

  • El código traducido se almacena en lenguaje máquina, ya que es muy difícil de entender, es probable que tus propios inventos y trucos de programación sigan siendo un secreto.

  • La compilación en sí misma puede llevar mucho tiempo; es posible que no puedas ejecutar tu código inmediatamente después de cualquier modificación.

  • Tienes que tener tantos compiladores como plataformas de hardware en las que deseas que se ejecute tu código. Se ha de compilar una vez para cada plataforma

INTERPRETACIÓN - Un programa especial llamado intérprete traduce el código fuente cada vez que se ejecuta; También significa que el usuario final necesita tener el interprete instalado en su máquina

Ventajas e inconvenientes de la interpretación:

  • Puedes ejecutar el código en cuanto lo completes; no hay fases adicionales de traducción.

  • El código se almacena utilizando el lenguaje de programación, no el de la máquina; esto significa que puede ejecutarse en computadoras que utilizan diferentes lenguajes máquina; no se compila el código por separado para cada arquitectura diferente.

Python es un lenguaje interpretado.

¿Como funciona el intérprete?

El intérprete lee el código de arriba hacía abajo y de izquierda a derecha. Hay algunas excepciones: se cubrirán más adelante en el curso.

En primer lugar, el intérprete verifica si todas las líneas subsiguientes son correctas en cuanto a los puntos anteriores:

  • Alfabeto
  • Léxico
  • Sintaxis
  • Semántica

Si el intérprete encuentra un error, termina su trabajo inmediatamente. El único resultado en este caso es un mensaje de error.

Si la línea es correcta, el intérprete intenta ejecutarla

(nota: cada línea generalmente se ejecuta por separado, por lo que el trío "Lectura - Verificación - Ejecución", puede repetirse muchas veces, más veces que el número real de líneas en el archivo fuente, debido a que algunas partes del código pueden ejecutarse más de una vez).

¿Qué es Python?

Image Python

Python es un lenguaje de programación de alto nivel, tipado dinámico, interpretado, orientado a objetos y de uso generalizado con semántica dinámica, que se utiliza para la programación de propósito general en una gran variedad de dominios de aplicación.

El nombre del lenguaje de programación Python proviene de una vieja serie de comedia de la BBC llamada Monty Python's Flying Circus.

Python fue creado por Guido van Rossum, nacido en 1956 en Haarlem, Países Bajos. Por supuesto, Guido van Rossum no desarrolló y evolucionó todos los componentes de Python.

La velocidad con la que Python se ha extendido por todo el mundo es el resultado del trabajo continuo de miles de (muy a menudo anónimos) programadores, testers, usuarios (muchos de ellos no son especialistas en TI) y entusiastas, pero hay que decir que la primera idea (la semilla de la que brotó Python) llegó a una cabeza: la de Guido.

Python es a menudo comparado con Tcl, Perl, Ruby, Scheme o Java.

Algunas de sus características distintivas clave incluyen:

  • Una sintaxis muy clara y legible
  • Fuerte capacidad de introspección
  • Orientación a objetos intuitiva
  • Expresión natural del código procesal
  • Modularidad completa con soporte de paquetes jerárquicos
  • Manejo de errores basado en excepciones
  • Tipado de datos dinámicos y de muy alto nivel
  • Bibliotecas estándar y módulos de terceros para prácticamente todas las tareas
  • Ampliable fácilmente mediante extensiones y módulos en C, C + + (o Java para Jython, o. NET para IronPython)
  • Integrable dentro de las aplicaciones como una interfaz de scripting

Objetivos de Python

En 1999, Guido van Rossum definió sus objetivos para Python:

  • Un lenguaje fácil e intuitivo tan poderoso como los de los principales competidores.
  • De código abierto, para que cualquiera pueda contribuir a su desarrollo.
  • El código ha de ser tan comprensible como el inglés simple.
  • Adecuado para tareas cotidianas, permitiendo tiempos de desarrollo cortos.

https://pypl.github.io/PYPL.html

https://www.tiobe.com/tiobe-index/

Ventajas e inconvenientes de Python

  • Es fácil de aprender, es posible comenzar la programación real más rápido.
  • Es fácil de enseñar: la carga de trabajo de enseñanza es menor que la que necesitan otros lenguajes; esto significa que el profesor puede poner más énfasis en las técnicas de programación generales (independientes del lenguaje), no gastando energía en trucos exóticos, extrañas excepciones y reglas incomprensibles.
  • Es fácil de utilizar: para escribir software nuevo; a menudo es posible escribir código más rápido cuando se emplea Python.
  • Es fácil de entender: a menudo, también es más fácil entender el código de otra persona más rápido si está escrito en Python.
  • Es fácil de obtener, instalar y desplegar: Python es gratuito, abierto y multiplataforma; no todos los lenguajes pueden presumir de eso.

Por supuesto, Python también tiene sus inconvenientes:

  • No es un demonio de la velocidad: Python no ofrece un rendimiento excepcional.
  • En algunos casos puede ser resistente a algunas técnicas de prueba simples, lo que puede significar que la depuración del código de Python puede ser más difícil que con otros lenguajes. Afortunadamente, el cometer errores es más difícil en Python.

Python juega bien con los demás

Python se puede integrar con COM,. NET y objetos CORBA. Para las bibliotecas de Java, utilice Jython, una implementación de Python para la Máquina Virtual de Java.

Python también es compatible con el motor de Internet Communications (ICE) y muchas otras tecnologías de integración.

Si encuentras algo que Python no puede hacer, o si necesitas el alto rendimiento que proporciona el código de bajo nivel, puedes escribir módulos de extensión en C o C + +

¿Rivales de Python?

Python tiene dos competidores directos, con propiedades y predisposiciones comparables. Estos son:

  • Perl: un lenguaje de scripting originalmente escrito por Larry Wall.
  • Ruby: un lenguaje de scripting originalmente escrito por Yukihiro Matsumoto.

El hecho de que la documentación inicial de Ruby fuera en japonés, dificultó su adopción.

Python 2 está estancado, solo se mantiene para solucionar errores o bugs de seguridad graves, no se recomienda migrar las aplicaciones realizadas en python 2 , solo mantenerlas.

Python 3 tiene su propia evolución y no es compatible con v2

En el curso usaremos python 3

Varios Pythons

Además hay Pythons que son mantenidos por la Python Software Foundation, creada teniendo como ref a apache foundation, lideran la evolucion del lenguaje.

Python también se conoce como CPython por que usó C para implementar python. Cpython es el standard

Tenemos Cython, una posible solución a la lentitud de python al ser interpretado. Escribe en python y traduce a C que es mas rápido.

Jython → permite que la maquina virtual de java trabaje con python solo disponible para python 2

pypy → Es un python dentro de python, el código se traduce a C y luego se ejecuta por separado.

spyder → herramienta de desarrollo python para mac

Windows - VsCode, pycharm y otros

Linux -> vsCode, eclipse

IDLE -> Integrated development learning environment

En Idle tendremos 2 ventanas, una para el resultado y otra donde tendremos el archivo (Abrir nueva ventana desde el menú archivo de idle)

Podemos ejecutar el archivo con f5

print(“Hola mundo!”)

los string van delimitados por comilla doble o simple hay triple comilla también, lo veremos

Python funciona en todas partes

Python está disponible para los principales sistemas operativos: Windows, Linux / Unix, OS / 2, Mac, Amiga, entre otros. Incluso hay versiones que se ejecutan en. NET y la máquina virtual de Java. Te gustará saber que el mismo código fuente funcionará sin cambios en todas las implementaciones.

En sistemas Linux Python suele venir instalado, en máquinas windows puedes instalarlo descargando desde http://www.python.org/getit/ el binario de Python.

Python es amable … y fácil de aprender

El grupo de noticias Python es conocido como uno de los más agradables de Internet. Los desarrolladores conforman una comunidad de usuarios entusiasta y dinámica, dicha comunidad mantiene un wiki, organiza conferencias internacionales y locales y contribuye a los repositorios de código en línea.

Python también viene con documentación completa integrada en el lenguaje y en páginas web independientes. Hay tutoriales en línea centrados tanto en el programador avanzado como en el recién llegado. La disponibilidad de libros de primer nivel completa el conjunto de aprendizaje.

Python es abierto

La implementación de Python está bajo una licencia de código abierto que hace que sea de libre uso y distribuible, incluso para uso comercial. La licencia de Python es administrada por la Python Software Foundation y es compatible con la licencia GPL

Recursos Formativos

Curso Python para principiantes → https://edube.org/study/pe1

Convenciones pep8 para código Python → https://pep8.org

Documentación oficial → https://docs.python.org/3/

Existe más de un Python

Existen dos tipos principales de Python, llamados Python 2 y Python 3.

Python 2 es una versión anterior del Python original. Su desarrollo se ha estancado intencionalmente, aunque eso no significa que no haya actualizaciones. Por el contrario, las actualizaciones se emiten de forma regular, pero no pretenden modificar el idioma de manera significativa. Prefieren arreglar cualquier error recién descubierto y agujeros de seguridad. La ruta de desarrollo de Python 2 ya ha llegado a un callejón sin salida, pero Python 2 en sí todavía está muy vivo.

Python 3 es la versión más nueva (para ser precisos, la actual) del lenguaje. Está atravesando su propio camino de evolución, creando sus propios estándares y hábitos.

Estas dos versiones de Python no son compatibles entre sí. Las secuencias de comandos de Python 2 no se ejecutarán en un entorno de Python 3 y viceversa, por lo que si deseas que un intérprete de Python 3 ejecute el código Python 2 anterior, la única solución posible es volver a escribirlo, no desde cero, por supuesto. Grandes partes del código pueden permanecer intactas, pero tienes que revisar todo el código para encontrar todas las incompatibilidades posibles. Desafortunadamente, este proceso no puede ser completamente automatizado.

Es demasiado difícil, consume mucho tiempo, es demasiado caro y es demasiado arriesgado migrar una aplicación Python 2 antigua a una nueva plataforma. Es posible que reescribir el código le introduzca nuevos errores. Es más fácil y mas sensato dejar estos sistemas solos y mejorar el intérprete existente, en lugar de intentar trabajar dentro del código fuente que ya funciona.

El concepto de Python 2 frente a Python 3

Python 3 no es solo una versión mejorada de Python 2, es un lenguaje completamente diferente, aunque es muy similar a su predecesor. Cuando se miran a distancia, parecen ser el mismo, pero cuando se observan de cerca, se notan muchas diferencias.

Si estás modificando una solución de Python existente, entonces es muy probable que esté codificada en Python 2. Esta es la razón por la que Python 2 todavía está en uso. Hay demasiadas aplicaciones de Python 2 existentes para descartarlo por completo.

Nota

Si se va a comenzar un nuevo proyecto de Python, deberías usar Python 3.

Es importante recordar que puede haber diferencias mayores o menores entre las siguientes versiones de Python 3 (p. Ej., Python 3.6 introdujo claves de diccionario ordenadas de forma predeterminada en la implementación de CPython).

La buena noticia es que todas las versiones más nuevas de Python 3 son compatibles con las versiones anteriores de Python 3.


Última actualización: 2022-10-30