Software">
[Go to site: main page, start]

0% encontró este documento útil (0 votos)
4 vistas33 páginas

Introducción a Python: Características y Usos

Python es un lenguaje de programación de alto nivel, interpretado y multiparadigma, ampliamente utilizado en diversas áreas como desarrollo web, ciencia de datos y ciberseguridad. Su sintaxis clara y concisa, junto con su fuerte comunidad y soporte para múltiples plataformas, lo hacen popular entre desarrolladores. Desde su creación en 1989, ha evolucionado a través de varias versiones, siendo la actual Python 3.x, y se puede instalar fácilmente en diferentes sistemas operativos.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas33 páginas

Introducción a Python: Características y Usos

Python es un lenguaje de programación de alto nivel, interpretado y multiparadigma, ampliamente utilizado en diversas áreas como desarrollo web, ciencia de datos y ciberseguridad. Su sintaxis clara y concisa, junto con su fuerte comunidad y soporte para múltiples plataformas, lo hacen popular entre desarrolladores. Desde su creación en 1989, ha evolucionado a través de varias versiones, siendo la actual Python 3.x, y se puede instalar fácilmente en diferentes sistemas operativos.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

¿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.
La definición puede asustar un poco, pero veremos cada uno de estos conceptos en profundidad
para comprender qué es y qué ofrece Python.

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.

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 [Link](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 estilos.
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

¿Cómo instalar Python?


Cuando se habla de Python se suele confundir varios conceptos, por un lado el lenguaje de
programación y por otro un intérprete que permite ejecutar código de este lenguaje. Veremos como
instalar el intérprete de Python.

¿Que es el intérprete de Python?


El intérprete de Python es un programa encargado de analizar cualquier código escrito en el
lenguaje de programación Python, interpretarlo y ejecutarlo sobre la máquina virtual de Python.
Existen diferentes versiones de intérpretes orientadas a mejorar alguna funcionalidad en particular,
aunque el más comúnmente utilizado es CPython.
 CPython: intérprete oficial, utilizado por defecto, escrito en C y recomendado a usar.
 PyPy: intérprete con un JIT (Just in Time compiler) orientado a dar el mejor rendimiento que
CPython.
 IronPython: implementación del intérprete de Python utilizando el framework .Net. Permite una
buena integración con aplicaciones .Net pudiendo compartir librerías.
 Jython: implementación del intérprete en Java. Permite ejecutar código Python en la máquina
virtual de Java con código Java.

¿Cómo instalar el intérprete de Python?


El intérprete de Python cuenta con múltiples componentes, por un lado el intérprete y por otro la
máquina virtual, pero todos los componentes se instalan fácilmente desde la web oficial de Python
si no están ya instalados en el sistema. Se puede descargar python gratis aquí.

Instalación Python en windows


La instalación en Windows es sencilla, el propio instalador de Python sirve de guia para instalar
todas las dependencias y requisitos. Python se puede descargar gratis para windows aquí.
Es importante seleccionar que Python se incluya en el path para facilitar la ejecución de módulos
desde consola.
De esta forma se ha instalado el intérprete de Python y el IDE simple IDLE, el cual permite realizar
los primeros programas en Python.
Instalar en Linux
Python se encuentra instalado por defecto en la mayoría de distribuicioes de linux, pero quizas la
versión instalada no es la que se desea.
Para instalar una versión diferente en linux se puede buscar en el gestor de dependencias y paquetes
del sistema por la versión específica a instalar, o se puede instalar directamente desde el código
fuente compilando la versión específica.
# Ubuntu (apt-get)
$ sudo apt-get update
$ sudo apt-get install python3.9

# Centos/Fedora (yum)
$ sudo yum install gcc openssl-devel bzip2-devel libffi-devel
## Instalación desde código fuente
$ cd /tmp
$ wget [Link]
$ tar xzf [Link]
$ cd Python-3.9.0
$ sudo ./configure --enable-optimizations
$ sudo make altinstall
Cuando se instala una nueva versión a nivel de sistema es importante utilizar make altinstall en vez
de make install para instalar de forma alternativa a la versión instalada y utilizada en el sistema.
Instalación de Python en Mac os X
Python se encuentra instalado en MacOS X por defecto aunque seguramente no esté instalada la
última versión o la versión que se desee utilizar.
Se puede instalar Python en Mac OS X descargando el archivo .pkg aquí y el instalador te guia
fácilmente.
Este proceso instala tanto el intérprete que se puede acceder por cualquier terminal, el programa
IDLE para desarrollar aplicaciones de Python y un lanzador que permite ejecutar módulos de
Python desde Finder.
Sin embargo, también se puede También se puede instalar Python usando el gestor de paquetes brew
utilizando los siguientes comandos en una consola.
# instalar brew
$ /bin/bash -c "$(curl -fsSL [Link]

# instalar python
$ brew install python

Usar Python desde una distribución


También se puede instalar Python usando una distribución que contenga no solo el intérprete, sino
muchas otras herramientas como puedan ser librerías o incluso algún IDE.
Como ejemplos de distribuciones se pueden encontrar:
 Anaconda Python: es una de las distribuciones más comunes y se enfoca en desarrollo científico.
Se puede descargar Anaconda gratis aquí o ver más información en Anaconda Python.
 ActivePython: es una distribución de Python de carácter general orientada a las grandes
organizaciones. Es distribuida por ActiveState Software Inc y ofrecen una versión gratuita y una
versión de pago. Se puede descargar ActivePython gratis aquí.
 WinPython: es una distribuición orientada a tener Python, Spyder y SciPy de forma fácil
corriendo de forma aislada en windows. Es recomendable para quien quiera utilizar estas
herramientas y busque una distribución liviana para trabajar. Se puede descargar WinPython
gratis aquí.

Usar la shell de Python (REPL Python)


Gracias al carácter interpretado de Python existen muchos REPL (read-eval-print-loop)
disponibles. Los REPL son programas que están a la espera de que se les escriba comandos
para ser ejecutados continuamente, de ahí el nombre de lectura-evaluación-impresión-bucle.
Se utilizan para lanzar sentencias Python para ser evaluadas rápidamente y es una de las
herramientas más potentes que tiene el lenguaje. A continuación se muestran algunos REPL
populares.
Para realizar este tutorial se puede utilizar cualquier REPL o cualquier IDE que soporte ejecución
de código Python.
Cuando se quiere expresar que algún código debe de ejecutarse en un REPL de Python se muestran
tres caracteres > (>>>):
>>> 2 + 4
6
>>> 'HellO'.lower()
'hello'

REPL por defecto de Python


Se ejecutan desde cualquier consola de comandos llamando a un intérprete de Python simplemente
lanzando el comando python en cualquier terminal del sistema. (CMD en windows, Terminal en
linux/mac).
$ python
En este REPL se pueden describir variables, funciones, clases o cualquier tipo de dato de Python. Se
suele utilizar para ejecutar partes aisladas de un programa y como complemento a un IDE
tradicional.
IPython
Es un REPL mucho más avanzado, y quizás el más utilizado después del oficial gracias a todas sus
funcionalidades. Se puede instalar usando:
$ pip install ipython
Algunos comandos útiles de IPython son:
 ?: permite acceder a la documentación de IPython.
 Tab: permite activar el autocompletado.
 objeto? o objeto??: permite saber información sobre la variable guardada en el objeto.
 funciones mágicas: IPython tiene muchas funciones creadas para el REPL que son muy útiles
como se puede ver a continuación:
 %timeit: permite medir el tiempo en segundos que tarda una ejecución.
 %save: permite guardar las líneas seleccionadas en un fichero externo.
 %macro: permite definir macros de código a ser ejecutadas.
 %colors: permite cambiar la combinación de colores utilizados.
 %history: permite examinar el historial de comandos ejecutados.
 %pastebin: permite publicar en pastebin que estará disponible por defecto 7 días.
 %debug: permite añadir puntos de ruptura y depurar partes del código.
 Comandos generales de shell: se pueden ejecutar comandos como curl o ping usando el prefijo !
curl o !ping
Para más información sobre los comandos se puede consultar la documentación oficial o el ipython
cookbook.
bpython
bpython es un REPL avanzado construido sobre ncurses, por lo que es un REPL orientado a ofrecer
una buena experiencia visual.
Se puede instalar utilizando pip install bpython y entre muchas de sus características destacan:
 Autocompletado: tanto de código como de sentencias introducidas anteriormente.
 Reescritura de comandos previos: se pueden reescribir los comandos que se han ejecutado
anteriormente usando Ctrl-R, es una característica muy útil cuando se ha declarado cierta lógica que
se quiere reescribir.
 Edición en editor: se puede salir rápidamente del REPL para definir alguna función o clase en un
editor normal y será introducido de nuevo en el REPL al guardar.
 Publicación en pastebin: permite guardar en pastebin de forma simple usando F8.
 Impresión de documentación: permite ver la documentación tanto de parámetros como de
funciones definidas.

ptpython
ptpython es un REPL que presenta funcionalidades avanzadas como:
 Autocompletado: tiene un autocompletado de código y de argumentos de funciones.
 Representación de objetos para pt: permite que se haga una representación especial para el
REPL al definir el método __pt__repr__ de una clase.
 Edición de multilínea: usando las flechas del teclado se puede cambiar líneas insertadas
anteriormente.
 Soporte de teclas de Vi y de Emacs: permite utilizar la configuración de edición rápida utilizada
en vi y emacs para editar rápidamente el código.
 Soporte de ratón: permite utilizar el ratón para navegar por el menu.
 Soporte para comandos de ipython: si se instala ipython permite acceder a las funciones
mágicas usando ptipython en vez de ptpython.
 Integración del REPL en código: permite fácilmente integrar el REPL dentro de código python
usando.
from [Link] import embed
embed(globals(), locals())
Se puede instalar utilizando pip y la documentación oficial se encuentra aquí.
pip install ptpython

Opinión personal: bpython, junto con ipython son los que más uso en mi dia a dia, siendo una
alternativa a tener en cuenta sobre el REPL que trae Python por defecto, el cual es de gran ayuda
también.
Los comandos de navegación en REPL y shells
 Ctrl-a y Ctrl-e: mueve el cursor hasta el inicio o el final de la línea.
 Ctrl-b y Ctrl-f: mueve el cursor un carácter hacia adelante o hacia atrás.
 Ctrl-d: elimina el siguiente carácter.
 Ctrl-k y Ctrl-u: corta los caracteres desde el cursor hasta el final de la línea o hasta el inicio de la
misma.
 Ctrl-y: pega el código copiado anteriormente.
 Ctrl-p y Ctrl-n: para acceder al anterior o al siguiente comando ejecutado.
 Ctrl-r: permite buscar algún comando ejecutado anteriormente.
 Ctrl-c y Ctrl-d: interrumpe la ejecución y sale del programa respectivamente.
Editores para programar en Python
Cuando necesitamos una herramienta más completa para trabajar en forma más intensiva con
Python el entorno IDLE nos puede quedar limitado.

Veremos ahora otros editores que facilitan la programación en Python y elegiremos uno de ellos
para continuar estudiando Python:

PyCharm: Es un entorno de desarrollo creado por la empresa Jet Brains. Viene en dos versiones, la
básica que es open source y la podemos descargar del sitio de: JetBrains
En la misma página tenemos el enlace para registrarnos y comprar la versión profesional.

PyDev IDE: Este entorno de desarrollo es una adaptación del editor Eclipse. Lo podemos descargar
del sitio de: pydev
Es open source al igual que el editor Eclipse.

Wing: Es un entorno para trabajar con Python con numerosas herramientas para programar y
depurar programas. Hay una versión gratuita, pero la que tiene todas las herramientas es comercial.
Podemos descargar este entorno del sitio: wingware

VS Code: Es un editor de texto que agregando extensiones podemos trabajar con Python con
herramientas para programar y depurar programas. Es creado y mantenido por la empresa
Microsoft. Es open source y multiplataforma (Windows, Linux y Mac)

En el último año se esta convirtiendo en el editor de texto más utilizado por los programadores
profesionales de todo el mundo.

Otro dato que nos puede hacer dimensionar el empleo de Visual Studio Code para programar con
Python es la cantidad de descargas de la extensión:
Instalación del editor Visual Studio Code (VSCode) y de la
extensión para Python

El editor de texto VSCode ha sido creado y es mantenido por Microsoft. Lo distribuye con licencia
Open Source y por lo tanto en forma gratuita. Lo debemos descargar del sitio
[Link], como podemos comprobar está disponible tanto para Windows, Mac y
Linux:

Una vez descargado procedemos a instalarlo siguiendo los pasos del asistente:
Ya tenemos instalado y funcionando VSCode:

El tema o aspecto visual por defecto es el oscuro, pero para que se vea más fácil en este tutorial lo
cambiaremos por un aspecto más claro.
Para cambiar el tema presionamos el botón del engranaje en la parte inferior izquierda y
seleccionamos "Tema de color":
Yo seleccionaré el tema "Light + (default light)":
Podemos cerrar la pestaña de bienvenida y tendremos el editor VSCode en su mínima expresión:
El resultado sin pestañas abiertas es:
Como vemos en el fondo del editor aparecen los 5 comandos más comunes que tenemos que hacer
normalmente cuando trabajamos con el editor de texto VSCode como puede ser "Abrir archivo" con
el atajo de teclas Ctrl + O.

Descarga de la extensión de Python para el editor VS Code.


Una de las opciones fundamentales del editor de texto VSCode es la posibilidad de agregar
características mediante las "extensiones".
Existen miles de "extensiones" con objetivos tan diversos como:
•Lenguajes de programación (en nuestro caso Python)
•Depuradores
•Formateadores de código fuente
•Temas
•Teclas de acceso rápido de otros editores
Para consultar la tienda de extensiones para VSCode podemos visitar
[Link]/vscode.
La popularidad de las extensiones la podemos comprobar cuando vemos la cantidad de descargas de
las mismas (la extensión de Python tiene más de 57 millones de descargas):

Instalación de una "Extensión"


Procederemos a instalar la extensión de Python en VSCode. Desde la "Barra de actividades" a
través del ícono:

Cuando seleccionamos una extensión se nos muestra una pestaña con toda la información de dicha
extensión:
Procederemos a su instalación presionando el botón "instalar" que aparece dentro de la pestaña de la
extensión, una vez instalada aparece un nuevo botón para que se recargue el VSCode y comience a
funcionar la extensión:

Ya tenemos todo listo para probar nuestro primer programa en Python utilizando el editor VS Code,
procedemos a crear un archivo '[Link]' y codificar:
Programa: [Link]
lado=input("Ingrese la medida del lado del cuadrado:")

lado=int(lado)

superficie=lado*lado

print("La superficie del cuadrado es")

print(superficie)

Podemos ahora abrir la opción de depurar y proceder a ejecutar nuestra aplicación en Python:

Acotaciones
Hemos visto en forma resumida los pasos para la instalación del editor VS Code y de la extensión
para trabajar con Python.

PEP 8 – Guía de estilos en Python


En la Propuesta de mejora de Python número 8, PEP 8, se define la guía de cómo escribir Python de
forma correcta, a modo de guía de estilos del lenguaje, pero ¿Qué puntos componen la guia y cómo
aplicarlos?
Diseño del código
Se definen las claves de cómo debería de escribirse el código Pythónico en sí, definiendo conceptos
como la indentación, la longitud de las líneas, las líneas en blanco y la guía de importación de otros
paquetes entre otros conceptos.
Reglas de indentación en PEP 8
Python define la lógica de su código utilizando bloques indentados, por lo tanto se recomienda
indentar usando 4 espacios, dado que los espacios ocupan el mismo tamaño en casi todos los
tipos de fuente y 4 es un número aceptable para la separación visual de los bloques.
Una alternativa común a los espacios son el uso de tabulaciones pero acarrea el problema que
según se defina el tamaño de las tabulaciones en cada editor, el código se verá diferente
haciéndolo incluso ilegible, por lo que NO se recomienda su uso.
# Usando 4 espacios
def es_par(num):
if num % 2 == 0:
return True
return False

La indentación tambien se aplica a sentencias que ocupen más de una línea como llamadas a
funciones o definiones de tipos de datos, los cuales deben de respetar una indentación visual
apropiada que distinga la sentencia del código siguiente
# Mal - no se distingue los argumentos
# y el codigo de la funcion
def mi_funcion_con_argumentos(argumento1,
argumento2,
argumento3):
print(argumento1)

# Bien
def mi_funcion_con_argumentos(argumento1,
argumento2,
argumento3):
print(argumento1)

# o con indentacion extra


def mi_funcion_con_argumentos(
argumento1, argumento2,
argumento3):
print(argumento1)
En Python 3 no está permitida la mezcla de espacios y tabuladores, y en Python 2 se podian
obtener avisos usando los parámetros -t o -tt para identificar las zonas conflictivas.
Longitud de líneas
La longitud de las líneas es un tema controvertido y permite cierta flexibilidad:
 79 caracteres por línea por defecto y para la librería estandar.
 72 caracteres por línea de comentarios o documentación.
 99 caracteres para equipos que acuerden utilizar líneas más largas pero la limitación de
comentarios y documentación sigue siendo 72.
El propósito principal de estas limitaciones es posibilitar el uso de dos ventanas de un editor, una
al lado de la otra, sin que tenga que añadirse saltos de líneas por el editor, mejorando así la
lectura.
Para seguir en la siguiente línea no siempre es necesario añadir ningún carácter especial, por
ejemplo cuando se definen cadenas de caracteres, documentación, o se definen funciones.
Cuando se pretenda hacer un salto de línea se utiliza el carácter \, y se indentará correctamente.
def mi_funcion(primer_parametro, segundo_param='opcional_realmente',
tercer_parametro=None):
return True

if peso > 93 and dias_hasta_verano < 100 \


and destino_vacaciones == 'Playa':
hacer_ejercicio()

Posición de los operadores


Cuando se tienen muchos operadores en nuevas líneas, las líneas deben de comenzar con el
operador.
# Mal
patas_totales = (num_patas_gato +
num_patas_pato +
num_patas_perro)

# Bien
patas_totales = (num_patas_gato
+ num_patas_pato
+ num_patas_perro)

Posición de líneas en blanco


Cuando se definen conceptos y lógica en Python, es relevante el uso de líneas en blanco a añadir.
 2 líneas en blanco: rodeando a funciones de nivel principal y definición de clases.
 1 línea en blanco: definición de métodos dentro de una clase.
 1 línea extra: entre bloques lógicos de código diferentes.
 1 línea en blanco al final del fichero: todos los módulos en Python deben de terminar con una
línea en blanco al final de cada módulo si tienen contenido.
 control-L (^L): se utiliza para separar páginas aunque algunos editores de texto lo omiten.
Uso de espacios siguiendo reglas del PEP 8CONSTANTE = 'inicio'

def mi_funcion(a):
return a + 4

class Perro:
peso = 1.7

def ladra(self):
print('guau')

def come(self):
if [Link] < 1.5:
[Link] = 1.9
else:
[Link] += 0.2

print('Guau - que rico!')

Importaciones de código
Para las importaciones de paquetes existen algunas reglas también.
 El uso de import debe de ser en líneas separadas.
 El orden de importación es: librería estándar, librerías de terceros, librerías propias o locales.
 Las importaciones absolutas son los recomendados.
 Los importaciones relativas solo pueden ser explícitas y preferiblemente simples y cortas.
 Importaciones usando * (wildcard) deben de ser evitadas.
# Mal
import json, sys

# Bien
import json
import sys

# Bien
from json import dump, load

# importacion absoluta
import [Link]
from pkg import funciones
from [Link] import mi_funcion

# importacion relativa
from . import funciones
from .funciones import mi_funcion

# evitar!
from pkg import *

Variables de módulo
Las variables de módulo definen ciertos aspectos generales:
__all__: define qué objetos se importarán al hacer uso de import *.
__author__: define el autor del módulo.
__version__: define la versión del módulo actual.
Todas estas definiciones han de hacerse al comienzo del módulo, justo debajo del bloque de
importaciones.
Cadenas de caracteres
Python soporta diferentes tipos de caracteres para crear cadenas de caracteres siendo simples o
triples, comillas simples o dobles.
 Comillas simples o dobles: para cadenas de caracteres de una línea o varias.
 Triples comillas dobles: para cadenas de documentación y bloques de cadenas de caracteres.
Para escapar con facilidad las comillas simples o dobles se pueden utilizar un tipo u otro.
def mi_funcion():
"""Sección de documentación con triples comillas dobles"""
pass

a = "Ander's car" # escapando ' al usar "


cita = 'Iba por "la acera" con el coche' # escapando " al usar '

Espacios en blanco
Los espacios en blanco en Python se utilizan para aclarar o remarcar partes del código, pero hay que
hacer un uso contenido de los mismos definiendo las siguientes reglas:
 Añadir espacios: entre elementos separados por comas, en los lados de una evaluación
operacional, en una asignación o separando bloques de operaciones.
 Evitar espacios: en slicings, entre los nombres de funciones y la llamada, entre las variables y el
acceso interno usando [], operaciones logicamente unidas o en parentesis vacios.
# Bien
mi_funcion(param1, [1, 2])
a += 1
i=i+1
b = a*2 - 1
c = (a+i) * (a-i)

if a == b:
print(a + 'es igual que' + b)

lst[1:2], lst[4:], lst[5:34:2]


lst[inicio + mid : mid + fin]
lst[inicio::fin]

gato = 1
perro = 2
elefante_marron = 4

# Mal
mi_funcion ( param1, [ 1, 2] )

a +=1
i=i+1
b=a*2-1
c = (a + i) * (a - i)

if a==b:
print (a+'es igual que' + b)

lst[ 1:2 ], lst[ 4:], lst[5 : 34 : 2]


lst[inicio + mid:mid + fin]
lst[inicio : : fin]

gato =1
perro =2
elefante_marron = 4

Comas finales
El uso de comas al final de una variable debe de hacerse en una nueva línea, y hay que recordar que
las comas al final de una variable crean tuplas, por tanto hacerlas explicitamente es mejor.
# Bien
variable = ('123',)
mi_funcion(param1,
param2,
)

# Mal
variable = '123', # creará una tupla de forma implicita
mi_funcion(param1, param2,) # la ultima coma sobra

Otra buena razon por la que en listas y tuplas es bueno dejar la coma al final, si el lenguaje lo
soporta, es para que cuando se editen añadiendo nuevos elementos, no se modifica la línea que
ya existia, dejando intacto el historial de cambios.
Comentarios
La PEP 8 contempla muchas reglas sobre cómo tratar los comentarios que se pueden ver a
continuación:
 Los comentarios pueden ser contradictorios, y requiren que se actualicen con el código, por tanto
si se pueden evitar haciendo código más claro, mejor.
 Deben de componerse de frases completas.
 Deben de comenzar en mayuscula a no ser que comiencen con el nombre de un identificador, el
cual se respetará siempre su tamaño.
 Los bloques de comentarios se componen de varios parrafos terminados en puntos, y terminar en
dos espacios en blancos salvo la ultima frase.
 Los comentarios deben de ser en Ingles a no ser «que se esté 120%» seguro de que se leeran
siempre en otro idioma y serán claros.
 Los bloques se aplican al código justo despues de donde se encuentran y con la misma
indentación.
 Los comentarios de línea comienzan con al menos 2 espacios y un # y un espacio después.
 Las cadenas de documentacion (docstrings) deben de añadirse en clases, funciones y métodos que
sean públicos siguiendo el PEP 257.
# Comentario de una línea antes del código principal
def funcion(primer_parametro, segundo_parametro):
"""Docstring para describir qué hace la función

primer_parametro -- descripcion del primer parámetro


segundo_parametro -- descripcion del segundo parámetro
"""
pass

Convenciones de nombres
Las siguientes reglas aplican para los nombres de cada tipo de objeto.
 Caracteres a evitar: o, O, l y L (letra O y letra L) dado que se pueden confundir con un 0 o un 1
dependiendo del tipo de fuente usada.
 Caracteres ASCII: se utilizan en la librería estándar siempre.
 Nombre de modules y paquetes: se escriben en minúsculas y se desaconseja el uso de barras
bajas, manteniendo los nombres lo más cortos posibles.
 Nombrado de clases: se usan el FormatoCapital, donde la primera letra de cada palabra es
mayúscula.
 Nombres de tipos de variables: en FormatoCapital.
 Excepciones: igual que el de clases pero con el sufijo «Error».
 Nombres de variables y funciones: se usan palabras en minúscula separadas por barras bajas.
 Métodos en clases: el primer parámetro para métodos de instancia es self y para métodos de clase
cls.
 Constantes: en mayúsculas.
from vehiculos import Coche

MAXIMO_AVANZAR = 500

class LimiteDeKilometrosAlcanzadoError(Exception):
pass

class Saet(Coche):
posicion = 0

def avanza(self, num_km):


nueva_posicion += num_km

if nueva_posicion > MAXIMO_AVANZAR:


[Link] = MAXIMO_AVANZAR
raise LimiteDeKilometrosAlcanzadoError
else:
[Link] = nueva_posicion

Anotaciones de variables
Desde la PEP 526 se introdujeron las anotaciones para las variables y se escriben como:
 Declaracion: <nombre_variable>: <tipo>
 Declaracion + inicializacion: <nombre_variable>: <tipo> = <valor_por_defecto>
# Bien
num_patas: int

class Coche:
num_ruedas: int = 4
# Mal
num_patas:int

class Coche:
num_ruedas: int=4

¿Como detectar errores de PEP 8 automáticamente?


Existen librerías que permite detectar errores/violaciones de reglas del PEP 8 denominadas linters y
suelen estar incluidas en IDEs de Python (por ejemplo en PyCharm)
Algunos IDEs actuales pueden sugerir el cambio necesario automáticamente antes de realizar un
commit en Git.
Se puede utilizar el programa pycodestyle (anteriormente llamado pep8), para comprobar si el código
sigue las reglas de correctamente. Este programa se puede instalar usando pip y ejecutarse en
consola sobre cualquier módulo python.
$ pip install pycodestyle
$ pycodestyle --first nombre_fichero.py
...
$ pycodestyle --show-source --show-pep8 nombre_fichero.py
...
$ pycodestyle --statistics -qq nombre_fichero.py
...


También podría gustarte