Está en la página 1de 8

Fundamentos de Pyton 3.

x Programación - 11º

ESTRUCTURA GENERAL
"Una convención universal proporciona toda la capacidad de mantenimiento, claridad,
consistencia y una base para buenos hábitos de programación también. Lo que no hace es
insistir en que la sigas contra tu voluntad. ¡Eso es Python!"

—Tim Peters en comp.lang.python, 2001-06-16

Existen convenciones o guías de estilo para la codificación en Python, tales como los conocidos
PEPs (Python Enhancement Proposal) en español: Propuesta de Mejora de Python. Un PEP es
un documento de diseño que proporciona información, describe características y sugiere
buenas prácticas de codificación.

3.1. SINTAXIS (Syntax)


Con sintaxis nos referimos como en todo lenguaje, al correcto uso y orden de las
palabras que utilizamos para comunicarnos. En la escritura de código en Python es
igual, es necesario cumplir ciertos requisitos a la hora de expresarnos para evitar
errores de comprensión del intérprete. Inicialmente, debes aprender ciertas palabras
en inglés, su significado y el uso adecuado dentro del lenguaje. Todos los lenguajes de
programación utilizan palabras del idioma inglés en sus instrucciones. A lo largo de
todo el camino de aprendizaje estarás aprendiendo la sintaxis, es decir, que no es cosa
de una sola lección, cada expresión en particular tiene su forma correcta de escritura y
agrupas conforman un bloque de código.
La sintaxis en Python es el correcto orden y uso de las palabras para indicar una instrucción al
intérprete.
En Python, al igual que otros lenguajes de programación, si cometemos un error de
sintaxis nos mostrará un mensaje que dice: Sintax Error.
En los siguientes temas iremos aprendiendo diferentes instrucciones y con ellas se
mostrarán los formatos de su sintaxis. Es muy importante que aprendas bien la sintaxis
de cada instrucción para no cometer errores frecuentemente. Muchos de los errores
que ocurren durante la ejecución del código fuente se deben a la mala escritura o a
errores de sintaxis. Los errores de sintaxis y otros tipos de errores se muestran en
inglés, ya que internamente el lenguaje y el IDE son programados en inglés.

~ 13 ~
Fundamentos de Python 3.x Bachiller en Tecnología Informática

Ejemplo de Sintaxis (Instrucción if-else):


if condición:
instrucción1
else:
instrucción2

Como puedes observar en el ejemplo anterior, existen ciertas reglas en la sintaxis de la


instrucción if-else, como que todo if debe tener una condición (comparación lógica),
debe terminar en dos puntos (:) la línea; en la línea de abajo, debe haber una sangría
de 4 espacios para que el bloque de instrucciones pertenezca a la condición cierta.
Bueno esas son algunas reglas de sintaxis que irás aprendiendo en las lecciones.

3.2. ESPACIO EN BLANCO EN EXPRESIONES Y DECLARACIONES


El uso del espacio en blanco debe usarse con moderación y de forma correcta para
evitar confundir visualmente. A continuación, veremos algunas sugerencias.
Evite espacios en blanco extraños en las siguientes situaciones:
 Inmediatamente antes o entre paréntesis, corchetes o llaves:
CORRECTO 
spam(ham[1], {eggs: 2})
ham(5)

INCORRECTO 
spam( ham[ 1 ], { eggs: 2 } )
ham (5)

 Entre una coma al final y un paréntesis cerrado siguiente:


CORRECTO 
foo = (0,)

INCORRECTO 
foo = (0, )

 Inmediatamente antes de una coma, punto y coma o dos puntos:


CORRECTO 
if x == 4: print x, y; x, y = y, x

INCORRECTO 
if x == 4 : print x , y ; x , y = y , x

Otras recomendaciones:
 Siempre rodear estos operadores binarios con un solo espacio a cada lado:
asignación (=), asignación aumentada (+=, -= etc.), comparaciones
(==, <, >, !=, <>, <=, >=, in, not in, is, is not), Booleanos (and, or, not).

14 Prof. Claudio J. Varela A.


Área 2: Estructuras Básicas del Lenguaje Programación – 11º

 Si se utilizan operadores con diferentes prioridades, considere agregar espacios en


blanco alrededor de los operadores con la (s) prioridad (es) más baja. Use su propio
juicio; sin embargo, nunca use más de un espacio y siempre tenga la misma cantidad
de espacios en blanco en ambos lados de un operador binario:
CORRECTO 
i = i + 1
submitted += 1
x = x*2 - 1
hypot2 = x*x + y*y
c = (a+b) * (a-b)

INCORRECTO 
i=i+1
submitted +=1
x = x * 2 - 1
hypot2 = x * x + y * y
c = (a + b) * (a - b)

Para más sugerencias puedes leer el PEP para la Guía de Estilo para la Codificación en
Pyton disponibles en: https://www.python.org/

3.3. CÓDIFICACIÓN (Encoding)


Existen algunas convenciones de líneas de código que suelen colocarse en las primeras
líneas de código. La primera es la siguiente:
#! /usr/bin/env python

Usualmente vemos esta línea de código en los programas ejecutables interpretados, a


continuación de los caracteres #! se coloca la ruta completa del intérprete. Esta línea
de código se utiliza cuando se programa para sistema operativos basados en Unix o en
Mac, en el caso de Windows simplemente ignora esta línea.
El código en la distribución central de Python siempre debe usar UTF-8 (o ASCII en
Python 2).
Los archivos que utilizan ASCII (en Python 2) o UTF-8 (en Python 3) no es necesario
una declaración de codificación.
Normalmente la segunda línea de codificación es la siguiente:
# -*- coding: utf-8 -*-

En la biblioteca estándar, las codificaciones no predeterminadas se deben usar solo


para propósitos de prueba o cuando un comentario o cadena de documentación
necesite mencionar un nombre de autor que contenga caracteres que no sean ASCII; de
lo contrario, el uso de escapes \x , \u, \U o \N es la forma preferida de incluir datos no
ASCII en literales de cadena.
Para Python 3.0 y más allá, la siguiente política se prescribe para la biblioteca estándar
(ver PEP 3131 ): Todos los identificadores en la biblioteca estándar de Python DEBEN
usar identificadores solo ASCII, y DEBERÍAN usar palabras en inglés siempre que sea

Estructura General del Lenguaje 15


Fundamentos de Python 3.x Bachiller en Tecnología Informática

posible (en muchos casos, abreviaturas y se usan términos que no son


ingleses). Además, los literales de cadena y los comentarios también deben estar en
ASCII. Las únicas excepciones son (a) casos de prueba, que prueban las características
que no son ASCII y (b) los nombres de los autores.
Se recomienda que los proyectos de código abierto con una audiencia global que
adopten una política similar.
Se recomienda que se escriba el código de una instrucción en líneas separadas para
mejor legibilidad del código. Y se deje una línea en blanco para separar ciertos bloques
de códigos y colocar comentarios para documentar el código.

3.4. LONGITUD MÁXIMA DE LÍNEA


Limita todas las líneas a un máximo de 79 caracteres.
Para flujos largos de bloques de texto con menos restricciones estructurales (cadenas
de documentación o comentarios), la longitud de la línea debe limitarse a 72 caracteres.
Limitar el ancho de la ventana del editor requerido, permite tener varios archivos
abiertos lado a lado, y funciona bien cuando se usan herramientas de revisión de código
que presentan las dos versiones en columnas adyacentes.
El ajuste predeterminado en la mayoría de las herramientas interrumpe la estructura
visual del código, lo que hace que sea más difícil de entender. Los límites se eligen para
evitar el ajuste en los editores con el ancho de la ventana establecido en 80, incluso si
la herramienta coloca un glifo marcador en la columna final al ajustar las líneas. Es
posible que algunas herramientas basadas en la web no ofrezcan el ajuste dinámico de
líneas.
La biblioteca estándar de Python es conservadora y requiere limitar las líneas a 79
caracteres (y las cadenas de documentación / comentarios a 72).
La forma preferida de ajustar líneas largas es mediante el uso de la continuación de
la línea implícita de Python entre paréntesis, corchetes y llaves. Las líneas largas se
pueden dividir en varias líneas envolviendo expresiones entre paréntesis. Estos se
deben usar en lugar de usar una barra invertida para la continuación de la línea.

3.5. IDENTACIÓN DEL CÓDIGO (Sangría)


Para codificar programas que tenga más de una línea de instrucciones se usa un
software IDE (Ambiente de Desarrollo Integrado) para Python. Es una combinación de
un Editor y funciones para revisar y ejecutar el código. Cuando programamos en
Python necesitaremos seguir algunas reglas.
El lenguaje de programación Python usa identación
(sangría) como parte de su codificación. A diferencia
de otros lenguajes que usan identificadores que
indican el fin de un bloque de instrucciones, en
Python se usa 4 espacios por nivel de sangría.

16 Prof. Claudio J. Varela A.


Área 2: Estructuras Básicas del Lenguaje Programación – 11º

Las líneas de continuación deben alinear los elementos envueltos verticalmente


mediante la línea implícita de Python, que se une entre paréntesis, corchetes y llaves,
o mediante una sangría colgante. Al usar una sangría colgante se debe considerar lo
siguiente; no debe haber argumentos en la primera línea y se debe usar una sangría
adicional para distinguirse claramente como una línea de continuación.
A continuación, veremos unos ejemplos cuando la línea de código es más larga que la
longitud máxima sugerida de 79. Los ejemplos muestran identación correcta e
incorrecta:

Sí: (Correcto) 

# Alineado con delimitador de apertura.


foo = long_function_name (var_one, var_two, var_three, var_four,
var_five, var_six)

# Agrega 4 espacios (un nivel adicional de sangría) para


# distinguir los argumentos del resto.
def long_function_name (
var_one, var_two, var_three,
var_four, var_five, var_six):
print (var_one)

# Las sangrías colgantes deben agregar un nivel.


foo = long_function_name (
var_one, var_two, var_three,
var_four, var-five, var_six)

No: (Incorrecto) 

# Argumentos prohibidos en la primera línea cuando no se


# usa alineación vertical.
foo = long_function_name (var_one, var_two,
var_three, var_four)
# Se requiere sangría adicional ya que la sangría no es
# distinguible.
def long_function_name (
var_one, var_two, var_three,
var_four):
print(var_one)

Estructura General del Lenguaje 17


Fundamentos de Python 3.x Bachiller en Tecnología Informática

Opcional:

# Las sangrías colgantes * pueden * estar sangradas en otros


# 4 espacios.
foo = long_function_name (
var_one, var_two,
var_three, var_four)

Cuando la parte condicional de una declaración if es lo suficientemente larga como


para requerir que se escriba en varias líneas, vale la pena señalar que la combinación
de una palabra clave de dos caracteres (es decir, if) más un espacio, más un paréntesis
de apertura crea una Sangría de 4 espacios para las siguientes líneas del condicional
multilínea. Esto puede generar un conflicto visual con el conjunto de códigos sangrados
anidados dentro de la sentencia if, que también se sangraría naturalmente en 4
espacios. Las opciones aceptables en esta situación incluyen, pero no se limitan a:

# Sin sangría extra.


if (esta_es_una_cosa and
esa_es_otra_cosa):
hacer_algo()

# Agregar un comentario, que proporcionará alguna distinción


# en los editores que admiten el resaltado de sintaxis.
if (esta_es_una_cosa and
esa_es_otra_cosa):
# Dado que ambas condiciones son ciertas, podemos ajustar.
hacer_algo()

# Agrega una sangría extra en la línea de continuación condicional.


if (esta_es_una_cosa
and esa_es_otra_cosa):
hace_algo()

El corchete / paréntesis / llave de cierre en construcciones de varias líneas puede


alinearse bajo el primer carácter que no sea un espacio en blanco de la última línea de
la lista, como en:

mi_lista = [
1, 2, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12

]
resultado = alguna_funcion_que_toma_argumentos(
'a', 'b', 'c',
'd', 'e', 'f',
)

18 Prof. Claudio J. Varela A.


Área 2: Estructuras Básicas del Lenguaje Programación – 11º

o puede alinearse debajo del primer carácter de la línea que comienza la construcción
multilínea, como en:

mi_lista = [
1, 2, 3,
4, 5, 6,
]
resultado = alguna_funcion_que_toma_argumentos(
'a', 'b', 'c',
'd', 'e', 'f',
)

¿Tabulaciones o Espacios?
Los espacios son el método de sangría preferido. Las tabulaciones se deben usar
únicamente para mantener la coherencia con el código que ya está sangrado con las
tabulaciones.
Python 3 no permite mezclar el uso de tabulaciones y espacios para la sangría.
El código Python 2 sangrado con una combinación de tabulaciones y espacios debe
convertirse en espacios exclusivamente.

3.6. INSTRUCCIONES (Instructions)


Una instrucción es un conjunto de datos insertados en una secuencia estructurada para
ordenar al intérprete realizar una operación determinada.

Las instrucciones o sentencias son la combinación de palabras reservadas en


combinación con datos que el intérprete recibe para llevar a cabo ciertas operaciones.
Cada instrucción tiene su propia sintaxis y definición.

De acuerdo a su complejidad, existen instrucciones: simples y compuestas.

Instrucciones simples:
Son aquellas órdenes (sentencias) que Python comprende respetando su sintaxis que
comienzan y culminan en una sola línea.

Ejemplo:
print(“El valor de la suma es: “, S)

Estructura General del Lenguaje 19


Fundamentos de Python 3.x Bachiller en Tecnología Informática

Instrucciones compuestas:
Son aquellas donde su sintaxis es más compleja, utiliza más de una línea código.
Comienzan expresión seguida de dos puntos (:), y el resto continúa debajo con
una identación (4 espacios) conformando así un bloque de código.
if S == 0:
C = C +1
print(C)

Como podemos ver, la instrucción utiliza más de una línea de código. Después de la
línea principal, las líneas de abajo guardan la identación (sangría) debida de 4
espacios. Lo que le indica al intérprete de Python que forman parte de la instrucción
if. El uso correcto de la identación es muy importante para el funcionamiento
adecuado del programa y la correcta interpretación por Python de las instrucciones.

20 Prof. Claudio J. Varela A.

También podría gustarte