¿Qué es Python?

Python es un lenguaje de programación dinámico, intuitivo, moderno, muy utilizado en la industria y en auge. Aunque la definición formal es: un lenguaje de alto nivel, interpretado, de propósito general, dinámicamente tipado, fuertemente tipado, de código libre, multiparadigma y multiplataforma. (casi nada 😀)
La definición puede asustar un poco, pero veremos cada uno de estos conceptos en profundidad para comprender qué es y qué ofrece Python.
Contenido
Características de Python
A continuación se describe brevemente cada característica formal del lenguaje y algunas no tan formales:
- Lenguaje de alto nivel: este lenguaje pertenece a uno de los más alejados del código máquina que existe. Este tipo de abstracción permite no tener que hacer gestión de memoria, tener tipado dinámico, tener una máquina virtual o ser interpretado, etc.
- Interpretado: permite desarrollar código sin tener que compilar el mismo para cada sistema, mejorando así el tiempo de desarrollo.
- De propósito general: se puede utilizar en diferentes áreas de la informática. Algunos ejemplos pueden ser el desarrollo web, de escritorio, ciencia, ciencia de datos, ciberseguridad, desarrollo de videojuegos, etc.
- Multiparadigma: soporta diferentes paradigmas de programación como la programación imperativa, programación orientada a objetos (poo) y programación funcional.
- Multiplataforma: gracias a su máquina virtual, puede ser ejecutado en diferentes sistemas operativos. Ejemplos como: windows, ubuntu, debian (linux en general, macos X o más exóticos como android.
- Dinámicamente tipado: permite que las variables cambien de tipo de dato dinámicamente, y que no haya que definir a priori el tipo del mismo.
- Fuertemente tipado: las variables instanciadas son de un tipo único, y no se pueden actuar o interactuar con otros tipos no soportados. Ej: ‘1’ + 1 dará error en vez de 2.
Y otras características no tan formales pero muy importantes:
- De sintaxis clara y concisa: permite escribir código como si se tratase de una receta en inglés, más que un lenguaje de programación.
- Con reglas de estilos: gracias al PEP 8, los desarrolladores de python tienen unas reglas de estilos marcadas. Su uso lo que permite que todo el código producido sea consistente.
- En auge: aunque se creó en la década de los 90, hoy día se utiliza como lenguaje principal en muchos desarrollos. Cada día se utiliza más y la demanda de programadores cualificados está en aumento.
- De prototipado rápido: permite crear programas rápidamente, lo que supone mejora de costes de producción para empresas.
- De código libre y con una gran comunidad: tiene una de las mejores comunidades del mundo. Constantemente se comparte conocimiento y hay una gran voluntad por usar código libre.
Campos en los que se usa Python
Gracias a ser un lenguaje de carácter general, Python se utiliza en múltiples campos como:
- Ciencia: para el cálculo científico se utiliza gracias a su fácil aprendizaje y su gran potencial.
- Ciencia de datos: uno de los pilares fundamentales, en los que se usa para Machine Learning, Inteligencia Artificial, visión por computador, data mining, etc.
- Desarrollo web: otro de los pilares fundamentales con ejemplos como Pinterest, Instagram o miles de compañías. Estas compañías usan principalmente Django o Flask para sus principales aplicaciones y negocios.
- Aplicaciones de escritorio: multitud de aplicaciones escritas en python usando pyGTK, pyQT o tkinter. La gran mayoría para linux pero también para otros sistemas operativos.
- Desarrollo de videojuegos: para pequeños video juegos utilizando pygame.
- Ciberseguridad: gracias a su facilidad de uso se integra fácilmente con otras herramientas, scrapping, análisis de programas, de malwares y muchos otros puntos.
- Finanzas: es uno de los campos en auge para Python, tanto en criptomonedas, trading, o análisis de datos financieros, creación de gráficos.
- Scripting: uno de los principales usos que tiene este lenguaje es la integración de pequeñas o grandes tareas de sistemas más complejos. Este tipo de pequeños programas se denomina scripts y son utilizados extensivamente.
Historia de Python y sus versiones
Python se empieza a crear a finales del año 1989 y la primera versión vio la luz a principios del año 1992. Fue desarrollada por Guido Van Rossum y gracias a eso se le conoce como Belnevolente Ditador Vitalicio.
Ramas y versiones del lenguaje:
- Rama 1.x: en el 1994 salió la primera versión estable llamada Python 1.0. La rama 1.x llegó hasta el año 2000 finalizando en Python 1.6.
- Rama 2.x: python 2.0 aparece en el año 2000 y ha llegado hasta enero del 2020. La última versión ha sido la 2.7 y actualmente ya no recibe actualizaciones.
- Rama 3.x: la versión 3.0 aparece a finales de 2008 y es la actual. Hay que destacar Python 3.5 donde se hicieron mejoras significativas y desde entonces ha habido muchos cambios. Las versiones Python 3.7, Python 3.8 y Python 3.9 han supuesto nuevos operadores, mejoras significativas de velocidad y un largo etcétera.
Para instalar python puedes ver el siguiente enlace:
Sintaxis de Python
A continuación se muestra la sintaxis y conceptos básicos del lenguaje
Indentación
Toda la lógica del lenguaje se define según la indentación del código.
A diferencia de otros lenguajes en los que se utilizan caracteres de apertura y cierre de bloques lógicos (como {} o begin-end), Python solo utiliza la cantidad de indentación para definir la lógica.
>>> def counter(x, times, step):
... for i in range(times):
... x += step
... return x
...
>>> counter(5, 2, 4)
13
>>> if 'a' in 'hello':
... print('Yes')
... else:
... print('No')
...
No
La PEP 8 regula que las indentaciones deben de hacerse utilizando 4 caracteres espacio, y desde Python 3 no se permite mezclar tabulaciones con espacios.
Expresividad
Una de las particularidades de Python es su gran expresividad y claridad que aporta su sintaxis.
La consecuencia de tener una clara y concisa es que al leer el lenguaje da la sensación de estar leyendo una receta de cocina en inglés más que leyendo un código de programación
import random
def number_of_steps(max_steps=10):
return random.randint(max_steps)
def move(position):
return position + number_of_steps()
if __name__ == '__main__':
initial_pos = 0
curr_position = initial_pos
for step in range(3):
next_position = move(curr_position)
curr_position = next_position
print(f'Posición actualizada a {curr_position}')
print(f'La posición final es {curr_position}')
# Posición actualizada a 3
# Posición actualizada a 9
# Posición actualizada a 16
# La posición final es 16
Gracias a la PEP 8, Python está muy bien definido a nivel de nombres permitiendo que las
Comentarios
Los comentarios en Python se añaden utilizando el caracter # y se añaden de la siguiente forma:
- Comentarios de línea: se añaden en la misma línea con 2 espacios antes y uno después del carácter #.
- Comentarios de varias líneas: se añaden con literales de cadenas de caracteres definidos con 3 caracteres de comillas simples o dobles. Siempre se añaden con la primera letra en mayúscula salvo que sea un nombre de identificador.
- Docstring: un tipo especial de comentario es los usados como documentación de funciones. Estos comentarios se añaden en la primera línea de cada función y se pueden acceder como __doc__ o con la función doc.
def greater_than(a, b):
"""Checking if a is greater than b"""
return a > b
"""comment
multi line
"""
if __name__ == '__main__':
print(greater_than.__doc__)
print(greater_than(5, 6))
# Checking if a is greater than b
# False
Libros recomendados para aprender Python
Estos son los libros que pueden ayudarte a aprender Python, aprender a programar, tipos de datos, algoritmia y mucho más.