Variables con Python

Podemos decir que las variables en Python son contenedores de la aplicación en los que almacenaremos datos. Aunque, en realidad, las variables de Python son una forma cómoda de acceder a determinadas posiciones de la memoria para consultar qué datos hay almacenados.

La variable es un componente básico en el desarrollo de cualquier tipo de software. En Python no es necesario declararlas antes de utilizarlas.

variable = 'Soy una variable'
otra_variable = 10 * 10
otra_mas = 0.123421

Aunque podemos utilizar distintas formas para nombrar las variables, debemos tener en cuenta algunas normas. Hay que recordar que Python distingue entre mayúsculas y minúsculas:

  • Pueden tener nombres cortos de una sola letra, pero se recomienda que sus nombres sean descriptivos.
  • No pueden comenzar con un número, deben comenzar con el guión bajo _ o una letra.
  • Solo admiten caracteres alfanuméricos y guiones bajos.

La declaración de las siguientes variables no cumple con la normativa de Python. (Debajo de cada declaración he comentado el error que muestra la consola cuando intentamos declararlas).

1_variable = 'Variable ilegal'
# SyntaxError: invalid decimal literal

otra-variable = 'Declarada ilegalmente'
# SyntaxError: cannot assign to expression here. Maybe you meant '==' instead of '='?

otra mas = 'No '
# SyntaxError: invalid syntax. Perhaps you forgot a comma?

Tipos de variables

Aunque existen diferentes tipos de variables, en Python no es necesario declarar la variable ni tampoco indicar el tipo de datos que contendrá antes de utilizarla. Es más, se puede incluso cambiar el tipo de datos de una variable durante la ejecución de la aplicación (tipado dinámico).

Ejemplo de declaración de una variable de tipo string para después modificar su valor a tipo boolean. Inmediatamente después de cada asignación de valor, consultaremos mediante la función type() el tipo de valor que contiene dicha variable. De esta forma, puede verse claramente cómo cambia.

mi_variable = 'Soy una cadena de texto'
print(type(mi_variable))
# <class 'str'>

mi_variable = True
print(type(mi_variable))
# <class 'bool'>

Las líneas comentadas mediante # <class ‘str’> y # <class ‘bool’> son el resultado que muestra la consola después de ejecutar estas instrucciones.

He llamado a la función print() únicamente para que sea más sencillo de leer, pero debemos tener en cuenta que no es necesario.

mi_variable = 'Soy una cadena de texto'
print(type(mi_variable))
# <class 'str'>

type(mi_variable)
# <class 'str'>

Colocando el print y sin colocarlo, la consola nos devuelve el mismo valor. Los ejemplos aparecerán siempre con la función print(), pues creo que les puede resultar útil a las personas que están empezando a familiarizarse con el código escrito en Python.

Imprimir variables en una cadena

Para intercalar el valor de una variable dentro de una cadena de texto, se puede hacer de varias formas:

Utilizar las f-string es la que más me gusta.

cadena_de_texto = 'Hola mundo!'
print(f'Esto es un mensaje: {cadena_de_texto}')

# Esto es un mensaje: Hola mundo!

También puede hacerse de esta forma:

cadena_de_texto = 'Hola mundo!'
print('Esto es un mensaje: ', cadena_de_texto)

# Esto es un mensaje: Hola mundo!

O de esta otra:

cadena_de_texto = 'Hola mundo!'
print('Esto es un mensaje: {0}'.format(cadena_de_texto))

# Esto es un mensaje: Hola mundo!

Tipos de datos en Python

En Python existen diferentes tipos de datos. Aunque en próximas entradas los conoceremos mucho más a fondo con definiciones claras y ejemplos, ya debemos entender que dentro de nuestras variables vamos a tener almacenados diferentes tipos de datos.

# <class 'str'>
texto = 'Soy un texto'
  • Númericos: int, float y complex
# <class 'int'>
soy_int = 10

# <class 'float'>
soy_float = 10.2341

# <class 'complex'>
soy_complex = 3 + 4j

Desde aquí puedes aprender mucho más sobre números complejos en Python.

  • Secuencia: list, tuple y range
# <class 'list'>
mi_lista = ['artículo1', 'artículo2', 'artículo3']

# <class 'tuple'>
mi_tupla = ('artículo1', 'artículo2', 'artículo3')

# <class 'range'>
mi_rango = range(10)
  • Tipo de mapeo: set y frozenset

La gran diferencia entre set y frozenset es que frozenset no puede ser modificado una vez declarado.

# <class 'set'>
mi_lista = [1, 9, 9, 2, 3, 4, 12, 4, 4, 5, 6, 6, 6]
lista_seteada = set(mi_lista)
lista_seteada.add(199)
print(lista_seteada)
# {1, 2, 3, 4, 5, 6, 199, 9, 12}

# <class 'frozenset'>
mi_lista = [1, 9, 9, 2, 3, 4, 12, 4, 4, 5, 6, 6, 6]
lista_frozenset = frozenset(mi_lista)
print(lista_frozenset)
# frozenset({1, 2, 3, 4, 5, 6, 9, 12})
  • Diccionarios: dict
# <class 'dict'>
mi_diccionario = {
    'nombre': 'Luis', 
    'ciudad': 'Badajoz',
    'estado': 'feliz'
}
print(mi_diccionario)
# {'nombre': 'Luis', 'ciudad': 'Badajoz', 'estado': 'feliz'}
  • Booleanos: bool
# <class 'bool'>
conectado = True
print(conectado)
# True
  • Binarios: bytes (inmutable), bytearray (tipo mutable de bytes).
# <class 'bytes'>
mi_byte = b'Soy un byte'
# b'Soy un byte'

# <class 'bytearray'>
mi_bytearray = bytearray(b'soy un bytearray') 
mi_bytearray[1] = 48 # 48 es el valor de 0 en Ascii
print(mi_bytearray)
# bytearray(b's0y un bytearray')
  • Ninguno: Nonetype
# <class 'NoneType'>
ninguno = None
print(ninguno)
# None

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *