Contenido del capítulo

Antes de empezar a programar, necesitas leer este capítulo. Se trata de un capítulo dedicado a las normas y convenciones para los nombres de variable, no todas, ya que hay muchas en Python, pero sí algunas de las más importantes.

Duración estimada de todo el contenido:
Duración del vídeo:
Contiene 3 ejercicios de Python para resolver. Contiene 1 vídeo.
Tabla de contenidos
Logo

    Introducción al código limpio en programación

    Normas y convenciones de variables
    Normas y convenciones de variables

    En muchas ocasiones verás que se denomina a las normas de nombres, como “normas de nomenclatura”.

    Normas de nombres se dice en inglés naming rules.

    Empezando con este tema, tenemos que tener en cuenta que aparte de reglas obligatorias, contamos con una serie de convenciones. Estas convenciones son buenas prácticas que deberás seguir. Con ellas te adaptarás al estilo de código de la comunidad Python.

    Espacio publicitario

    Para que nos entendamos bien. Si hablo de regla, estoy hablando de una norma obligatoria. Si no la cumples tendrás errores en tus programas Python.

    En cambio, cuando hable de convenciones, me estaré refiriendo a esas buenas prácticas que todos deberíamos seguir para hacer un código limpio, y muy fácil de leer por las personas.

    Convenciones se dice en inglés conventions.

    Por ejemplo, si decimos convenciones de nombres, en inglés será naming conventions.

    Reglas en los nombres de variables

    Empecemos por las reglas obligatorias sobre los nombres de variables en Python.

    Sensible a mayúsculas y minúsculas

    Python es un lenguaje sensible a mayúsculas y minúsculas. Esto quiere decir, que deberás escribir los nombres de los elementos respetándolas.

    Aquí tienes tres variables que el intérprete de Python considerará como diferentes:

    nombre_variable
    NOMBRE_VARIABLE
    Nombre_Variable

    Hay lenguajes de programación donde no importan las mayúsculas y minúsculas.

    En Python, siempre importan.

    Para nombrar a las variables, utiliza únicamente letras, números y el carácter guion bajo (_), ya que los nombres de estas solo pueden estar formados por estos caracteres.

    Los siguientes ejemplos son nombres de variables válidos en Python:

    numero1
    fecha_actual
    resultado

    En cambio, estos tres ejemplos, son incorrectos:

    1numero
    $resultado
    nombre-usuario

    Quizás te extrañe que sea incorrecto el primer nombre de variable, del último ejemplo (1numero). Puesto que he dicho que se admiten nombres con números y letras. Esto es debido a una norma más, la cual viene a continuación.

    Empezar por un número

    Los nombres de variables en Python, no pueden empezar por un valor numérico. A partir del segundo carácter del nombre, puedes poner los que quieras, pero el primero, debe ser sí o sí, un guion bajo o una letra.

    Aquí tienes un par de ejemplos más de nombres correctos a nivel de regla:

    _n0c3e
    a1_b2_c3

    Y digo “correctos a nivel de regla”, porque son nombres poco correctos para llevar unas buenas prácticas, ya que no representan un nombre descriptivo con su cometido.

    ¿Se te ocurre qué dato guardar en una variable como a1_b2_c3?

    Guion bajo (_), en inglés se dice underscore.

    Espacio publicitario

    Palabras reservadas en los nombres

    El término “palabra reservada”, viene del cometido de estas palabras.

    Tales palabras hacen funcionar partes muy importantes del lenguaje de programación, de modo que se reservan para que no las puedas utilizar en tus propios elementos del código. Acción que crearía múltiples problemas.

    Recuerda que tienes las palabras reservadas en el capítulo anterior. Si ves que en algún momento tienes algún error, fíjate en que no hayas puesto una de esas palabras, por ejemplo, como nombre de variable.

    Convenciones en los nombres de las variables

    Pasemos a ver diferentes convenciones que tiene Python a la hora de crear nombres para las variables.

    Tal y como he indicado al principio de este capítulo, las convenciones son buenas prácticas que deberás utilizar, aunque no sean estrictamente obligatorias.

    Utiliza nombres de variables descriptivos

    Una de las cosas más importantes a la hora de escribir código limpio, es escribir nombres de variables descriptivos con los valores que van a almacenar.

    Por ejemplo, mira el poco sentido que tienen las siguientes variables:

    fecha = "Hola"
    nombre = 7
    a = 10034.5657

    Estas variables no van a dar error, pero constituyen una mala práctica, ya que en un futuro, cuando leas de nuevo tu programa, para modificar algo, o lo hagan otras personas, va a ser un completo caos.

    Imagínate entender la lógica de quizás un centenar, o varios millares de variables, en un programa con nombres de este tipo.

    ¿No te parece mejor así?

    saludo = "Hola"
    numero = 7
    numero_preciso = 7.5657

    Puedes ver que la variable saludo contiene un valor con un saludo, que la variable numero lleva un valor numérico y que numero_preciso, tiene un número con decimales, el cual da cierta precisión decimal. Son nombres que se correlacionan con su contenido almacenado.

    Si que es cierto que en algunos ejemplos del curso, utilizaré variables con nombres simples como a, b, c, etc., con el fin de simplificar las explicaciones. En ejemplos pequeños de código, ayudan a ver mejor el flujo de la lógica y a comprender los conceptos básicos. Pero recuerda siempre que, en proyectos más grandes y aplicaciones reales, es importante utilizar nombres de variables más descriptivos para que el código sea fácil de leer por las personas.

    Por ejemplo, cuando te explique de qué forma funciona una sencilla función de suma, podría hacerlo con variables como a y b, con el fin de simplificar el código y las explicaciones.

    Por ejemplo:

    def sumar(a, b):
        return a + b

    La frase que te podría dar para explicarte esta función, sería algo como “La función sumar() devuelve el resultado de la suma entre los valores de a y b.”

    La especificación de nombres en cada programa que hagas en el futuro, quedará de tu parte. Con la experiencia adquirida, cada día lo harás mejor y te saldrá con más facilidad, sin detenerte demasiado a pensar nombres de variables.

    Espacio publicitario

    Nombres en minúsculas

    Por convención, los nombres de las variables deberán escribirse completamente en minúsculas, sin excepción.

    Nombres compuestos y el guion bajo

    Otra convención muy característica de Python, es la de separar los nombres compuestos de las variables con la convención snake_case, que se basa en que cada palabra de un nombre de variable (que tiene más de una), debe ser separado con un guion bajo.

    Aquí tienes unos ejemplos:

    nombre_completo
    hora_actual
    variable_con_varias_palabras

    El nombre snake_case proviene de la forma en que quedan los nombres, como el zigzagueo de una serpiente. Algo que encaja genial con el nombre Python.

    El término snake case no tiene una traducción exacta al español, personalmente lo traduzco como escritura de serpiente. Algo que suena un poco raro, pero realmente, describe lo que es.

    ¿Cómo lo traducirías tú?

    El nombre Python se traduce al español como pitón. Este lenguaje de programación, desde hace mucho tiempo se ha identificado con su logo de dos serpientes de Pitón. Aunque inicialmente se le dio el nombre por el grupo de comedia Monty Python. El logo con las serpientes, llegaría más tarde.

    Evolución del logo de Python a lo largo del tiempo

    No escribas los nombres en mayúsculas

    He explicado que los nombres de variable deben ir por convención en minúsculas. Sin embargo, tenemos otro tipo de “variables”, que se deben escribir completamente en mayúsculas. Se trata de las constantes.

    Las constantes de Python, en realidad son solo variables con el nombre escrito en mayúsculas, es un tema que explicaré en otro capítulo.

    PI = 3.14159 # Constante
    numero = 10 # Variable

    La forma de distinguir un tipo de contenedor del otro, es siguiendo las convenciones de nombres.

    Espacio publicitario

    No escribas acentos u otros caracteres especiales

    Algo que no deberías hacer, es poner acentos, diéresis u otros símbolos, en los nombres de variable.

    A nivel de sintaxis, van a funcionar, pero no se recomienda por problemas de compatibilidad sobre diferentes sistemas, problemas en cuanto a trabajo en equipo internacional, etc.

    Imagina que algún desarrollador, te envía código como el de siguiente imagen:

    Python escrito en Japonés

    En Python funciona, pero no es legible para ti (si no conoces este idioma).

    Por otro lado, tendrás que ir copiando y pegando los nombres de variable, si no tienes a mano todos esos símbolos.

    Imagina esto mismo, pero con un programa complejo. Se puede volver algo tedioso.

    Entonces, en Python se recomienda escribir siempre en inglés, seas de donde seas, y tengas el idioma materno que tengas. Por eso, he decidido incluir un montón de notas de traducción, para que te vayas acostumbrando.

    Si no sabes todavía nada, o casi nada de inglés, no te preocupes, empieza con los nombres en español, sin utilizar acentos u otros caracteres especiales como la letra ñ, y con el tiempo, ya aprenderás a escribir código completamente en inglés.

    También se recomienda dejar de usar acentos en los comentarios, pero esto ya no afecta de la misma forma, ya que los comentarios, son ignorados por el intérprete, no los tendrá que usar para escribir código otra persona, aunque sí para entenderlo. Entonces, insisto en utilizar el idioma inglés cuando sepas lo suficiente.

    Código básico de Python

    En este curso, no voy a dar por hecho que sepas inglés, de modo, que todos los ejemplos serán en español, sin símbolos en el propio código, pero con acentos en los comentarios.

    Espacio publicitario




    Espacio publicitario


    Ejercicios de Python para resolver

    8. ¿Cuáles de estos nombres de variable son correctos en cuanto a reglas? Es decir, que el programa no ejecutaría con dichos nombres (errores de sintaxis). También, piensa si son correctas las convenciones usadas.

    1. Apellidos
    2. nombre_cliente
    3. multiplicación
    4. a_70
    5. b-80
    6. fecha Nacimiento
    7. $dinero$
    8. 1er_apellido
    1. Nombre correcto en cuanto a sintaxis. No respeta las convenciones de Python, ya que tiene la letra A mayúscula.
    2. Nombre correcto en cuanto a sintaxis y convenciones.
    3. Nombre correcto en cuanto a sintaxis. No respeta las convenciones de Python, por el hecho de que tiene un acento en la letra ó.
    4. Nombre correcto en cuanto a sintaxis. No respeta las convenciones de Python, al tener un nombre poco, o nada descriptivo.
    5. Nombre incorrecto en cuanto a sintaxis. Tiene un guion. Símbolo no permitido en nombres de variables. Hablando de convenciones, también es un nombre poco, o nada descriptivo.
    6. Nombre incorrecto en cuanto a sintaxis. Utiliza un espacio para separar las palabras. Este carácter no está permitido en nombres de variable. Por convenciones, también incumple por tener una letra N mayúscula.
    7. Nombre incorrecto en cuanto a sintaxis. Caracter $ no válido para nombres de variable.
    8. Nombre incorrecto en cuanto a sintaxis. Empieza por un número. Por lo demás, en cuanto a convenciones, sería correcto. Se podría corregir así: primer_apellido.

    9. Los siguientes ejemplos, no tienen errores de sintaxis. Sin embargo, ¿cuáles no cumplirían las convenciones para un código legible de Python? ¿Sabrías indicar por qué en cada caso?

    1. Nombre
    2. EdadUsuario
    3. edad_usuario
    4. división
    5. apellidos
    6. cumpleaños
    7. a64b
    8. nombre_completo
    1. No cumple las convenciones de Python. El formato está en PascalCase (otra convención diferente, que no utiliza Python para los nombres de las variables). Corrección: nombre.
    2. No cumple las convenciones de Python. El formato está en PascalCase, no en snake_case. Corrección: edad_usuario.
    3. Cumple las convenciones de Python. Está con letras minúsculas y con guion bajo como separador de palabras. Además, se trata de un nombre descriptivo.
    4. No cumple las convenciones de Python. No debes poner acentos en los nombres de las variables. Corrección: division.
    5. Cumple las convenciones de Python. Todo son letras en minúsculas y el nombre es descriptivo.
    6. No cumple las convenciones de Python. No debes poner caracteres especiales como la ñ. Corrección: birthday. Si lo pongo en español, quedaría un tanto raro: cumpleanos; aunque ponlo como quieras.
    7. No cumple las convenciones de Python. Es un nombre para nada descriptivo. La corrección será relativa al contenido que lleve la variable, ya que por el nombre no se sabe qué podría ser.
    8. Cumple las convenciones de Python. Está con letras minúsculas, y con guion bajo como separador de palabras. Además, se trata de un nombre descriptivo.

    10. ¿Cuál es el tipo de error que nos dará el intérprete de Python si utilizamos una palabra reservada del lenguaje como nombre de variable?

    Por ejemplo, esto:

    class = 10

    La respuesta es un error de sintaxis:

    class = 10
    Error en la consola
    SyntaxError: invalid syntax
    Error de sintaxis: sintaxis inválida.

    En este caso, estoy utilizando class como nombre de variable. Esto es incorrecto, ya que es una palabra reservada del lenguaje.



    Espacio publicitario