Link Search Menu Expand Document

Sintaxis Python

A continuaci贸n veremos la sintaxis de Python, viendo como podemos empezar a usar el lenguaje creando nuestras primeras variables y estructuras de control.

El termino sintaxis hace referencia al conjunto de reglas que definen como se tiene que escribir el c贸digo en un determinado lenguaje de programaci贸n. Es decir, hace referencia a la forma en la que debemos escribir las instrucciones para que el ordenador, o m谩s bien lenguaje de programaci贸n, nos entienda.

En la mayor铆a de lenguajes existe una sintaxis com煤n, como por ejemplo el uso de = para asignar un dato a una variable, o el uso de {} para designar bloques de c贸digo, pero Python tiene ciertas particularidades.

La sintaxis es a la programaci贸n lo que la gram谩tica es a los idiomas. De la misma forma que la frase 鈥淵o estamos aqu铆鈥 no es correcta, el siguiente c贸digo en Python no ser铆a correcto, ya que no respeta las normas del lenguaje.

if ($variable){
    x=9;
}

Lo veremos a continuaci贸n en detalle, pero Python no soporta el uso de $ ni hace falta terminar las l铆neas con ; como en otros lenguajes, y tampoco hay que usar {} en estructuras de control como en el if.

Por otro lado, de la misma forma que un idioma no se habla son simplemente saber todas sus palabras, en la programaci贸n no basta con saber la sintaxis de un lenguaje para programar correctamente en el. Es cierto que sabiendo la sintaxis podremos empezar a programar y a hacer lo que queramos, pero el uso de un lenguaje de programaci贸n va mucho m谩s all谩 de la sintaxis.

Para empezar a perderle el miedo a la sintaxis de Python, vamos a ver un ejemplo donde vemos cadenas, operadores aritm茅ticos y el uso del condicional if.

El siguiente c贸digo simplemente define tres valores a, b y c, realiza unas operaciones con ellos y muestra el resultado por pantalla.

# Definimos una variable x con una cadena
x = "El valor de (a+b)*c es"

# Podemos realizar m煤ltiples asignaciones
a, b, c = 4, 3, 2

# Realizamos unas operaciones con a,b,c
d = (a + b) * c

# Definimos una variable booleana
imprimir = True

# Si imprimir, print()
if imprimir:
    print(x, d)

# Salida: El valor de (a+b)*c es 14

Como puedes observar, la sintaxis de Python es muy parecida al lenguaje natural o pseudoc贸digo, lo que hace que sea relativamente f谩cil de leer. Otra ventaja es que no necesitamos nada m谩s, el c贸digo anterior puede ser ejecutado tal cual est谩. Si conoces otros lenguajes como C o Java, esto te resultar谩 c贸modo, ya que no es necesario crear la t铆pica funci贸n main().

Comentarios

Los comentarios son bloques de texto usados para comentar el c贸digo. Es decir, para ofrecer a otros programadores o a nuestro yo futuro informaci贸n relevante acerca del c贸digo que est谩 escrito. A efectos pr谩cticos, para Python es como si no existieran, ya que no son c贸digo propiamente dicho, solo anotaciones.

Los comentarios se inician con # y todo lo que vaya despu茅s en la misma l铆nea ser谩 considerado un comentario.

# Esto es un comentario

Al igual que en otros lenguajes de programaci贸n, podemos tambi茅n comentar varias l铆neas de c贸digo. Para ello es necesario hacer uso de triples comillas bien sean simples ''' o dobles """. Es necesario usarlas para abrir el bloque del comentario y para cerrarlo.

'''
Esto es un comentario
de varias l铆neas
de c贸digo
'''

Identaci贸n y bloques de c贸digo

En Python los bloques de c贸digo se representan con identaci贸n, y aunque hay un poco de debate con respecto a usar tabulador o espacios, la norma general es usar cuatro espacios.

En el siguiente c贸digo tenemos un condicional if. Justo despu茅s tenemos un print() identado con cuatro espacios. Por lo tanto, todo lo que tenga esa identaci贸n pertenecer谩 al bloque del if.

if True:
    print("True")

Esto es muy importante ya que el c贸digo anterior y el siguiente no son lo mismo. De hecho el siguiente c贸digo dar铆a un error ya que el if no contiene ning煤n bloque de c贸digo, y eso es algo que no se puede hacer en Python.

if True:
print("True")

Por otro lado, a diferencia de en otros lenguajes de programaci贸n, no es necesario utilizar ; para terminar cada l铆nea.

# Otros lenguajes como C
# requieren de ; al final de cada l铆nea
x = 10;

Sin embargo en Python no es necesario, basta con un salto de l铆nea.

x = 5
y = 10

Pero se puede usar el punto y coma ; para tener dos sentencias en la misma l铆nea.

x = 5; y = 10

M煤ltiples l铆neas

En algunas situaciones se puede dar el caso de que queramos tener una sola instrucci贸n en varias l铆nea de c贸digo. Uno de los motivos principales podr铆a ser que fuera demasiado larga, y de hecho en la especificaci贸n PEP8 se recomienda que las l铆neas no excedan los 79 caracteres.

Haciendo uso de \ se puede romper el c贸digo en varias l铆neas, lo que en determinados casos hace que el c贸digo sea mucho m谩s legible.

x = 1 + 2 + 3 + 4 +\
    5 + 6 + 7 + 8

Si por lo contrario estamos dentro de un bloque rodeado con par茅ntesis (), bastar铆a con saltar a la siguiente l铆nea.

x = (1 + 2 + 3 + 4 +
     5 + 6 + 7 + 8)

Se puede hacer lo mismo para llamadas a funciones

def funcion(a, b, c):
    return a+b+c

d = funcion(10,
23,
3)

Creando variables

Anteriormente ya hemos visto como crear una variable y asignarle un valor con el uso de =. Existen tambi茅n otras formas de hacerlo de una manera un poco m谩s sofisticada.

Podemos por ejemplo asignar el mismo valor a diferentes variables con el siguiente c贸digo.

x = y = z = 10

O tambi茅n podemos asignar varios valores separados por coma.

x, y = 4, 2
x, y, z = 1, 2, 3

Nombrando variables

Puedes nombrar a tus variables como quieras, pero es importante saber que las may煤sculas y min煤sculas son importantes. Las variables x y X son distintas.

Por otro lado existen ciertas normas a la hora de nombrar variables:

  • El nombre no puede empezar por un n煤mero
  • No se permite el uso de guiones -
  • Tampoco se permite el uso de espacios.

Se muestran unos ejemplos de nombres de variables v谩lidos y no v谩lidos.

# V谩lido
_variable = 10
vari_able = 20
variable10 = 30
variable = 60
variaBle = 10

# No v谩lido
2variable = 10
var-iable = 10
var iable = 10

Una 煤ltima condici贸n para nombrar a una variable en Python, es no usar nombres reservados para Python. Las palabras reservadas son utilizadas por Python internamente, por lo que no podemos usarlas para nuestras variables o funciones.

import keyword
print(keyword.kwlist)

# ['False', 'None', 'True', 'and', 'as', 'assert',
# 'async', 'await', 'break', 'class', 'continue',
# 'def', 'del', 'elif', 'else', 'except', 'finally',
# 'for', 'from', 'global', 'if', 'import', 'in', 'is',
# 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise',
# 'return', 'try', 'while', 'with', 'yield']

De hecho con el siguiente comando puedes ver todas las palabras clave que no puedes usar.

import keyword
print(keyword.kwlist)

Uso de par茅ntesis

Python soporta todos los operadores matem谩ticos m谩s comunes, conocidos como operadores aritm茅ticos. Por lo tanto podemos realizar sumas, restas, multiplicaciones, exponentes (usando **) y otros que no vamos a explicar por ahora. En el siguiente ejemplo realizamos varias operaciones en la misma l铆nea, y almacenamos su resultado en y.

x = 10
y = x*3-3**10-2+3

Pero el comportamiento del c贸digo anterior y el siguiente es distinto, ya que el uso de par茅ntesis () da prioridad a unas operaciones sobre otras.

x = 10
y = (x*3-3)**(10-2)+3

El uso de par茅ntesis no solo se aplica a los operadores aritm茅ticos, sino que tambi茅n pueden ser aplicados a otros operadores como los relacionales o de membres铆a que vemos en otros posts.

Variables y alcance

Un concepto muy importante cuando definimos una variable, es saber el alcance o scope que tiene. En el siguiente ejemplo la variable con valor 10 tiene un alcance global y la que tiene el valor 5 dentro de la funci贸n, tiene un alcance local. Esto significa que cuando hacemos print(x), estamos accediendo a la variable global x y no a la x definida dentro de la funci贸n.

x = 10

def funcion():
    x = 5

funcion()
print(x)

No te preocupes si no lo has entendido. Es un concepto un poco complicado de pillar al principio, pero lo veremos m谩s adelante. Te recomendamos leer los siguientes posts para entender mejor las funciones y el alcance de las variables:

Uso de la funci贸n print()

Por 煤ltimo, en cualquier lenguaje de programaci贸n es importante saber lo que va pasando a medida que se ejecutan las diferentes instrucciones. Por ello, es interesante hacer uso de print() en diferentes secciones del c贸digo, ya que nos permiten ver el valor de las variables y diferente informaci贸n 煤til.

Existen muchas formas de usar la funci贸n print() y te las explicamos en detalle en este post, pero por ahora basta con que sepas lo b谩sico.

Como ya hemos visto se puede usar print() para imprimir por pantalla el texto que queramos.

print("Esto es el contenido a imprimir")

Tambi茅n es posible imprimir el contenido de una variable.

x = 10
print(x)

Y separando por comas , los valores, es posible imprimir el texto y el contenido de variables.

x = 10
y = 20
print("Los valores x, y son:", x, y)
# Salida: Los valores x, y son: 10 20