Variables en Python

Última actualización: septiembre 2024

Las variables en Python pueden contener distintos tipos de datos básicos:

  • Cadenas de texto
  • Booleanos (True o False)
  • Numéricos: enteros, decimales y complejos
  • Colecciones: listas, tuplas, conjuntos, diccionarios.

Como veremos más adelante algunos de estos tipos de variables se pueden modificar (tipos mutables) y otros no se pueden modificar (inmutable)

Al añadir módulos, aparecen nuevos tipos como fechas u otros tipos de colecciones o estructuras de datos El objetivo es emplear el tipo de dato o estructura que mejor se ajuste a los datos con los que vamos a trabajar.

Creación de variables

La creación de variables en Python es sencilla, directamente asignamos un valor a la variable e internamente Python le asigna el tipo (entero, cadena, lista..). Es decir, no tenemos que declarar e inicializar las variables, sino que directamente las inicializamos asignándoles un valor y Python infiere el tipo de la variable en función del valor asignado, es lo que se conoce como tipado dinámico.

Internamente las variables son referencias a los objetos. Una variable es una especie de etiqueta para referirnos al objeto. En el siguiente ejemplo, creamos dos variables: curso (cadena de texto) y numero_horas (entero).

curso = “Python”
numero_horas = 20

Es posible asignar asignación múltiple:

a, b = 6, 8
c = d = e = 7

Para conocer el tipo de una variable, empleamos la función type:

curso ="Python"
tipo=type(curso)
print(tipo)

Resultado: <class ‘str’>

Los nombres de las variables deben ser secuencias de letras y números. La secuencia debe empezar por letras. También es válido el carácter: “_”.

Ahora que sabemos como conocer el tipo de una variable, podemos experimentar el tipado dinámico. En el ejemplo siguiente, a una misma variable, se le asigna primero un valor numérico y luego un valor de texto, y vemos como Python cambia el tipo de la variable.

variable =99
print(type(variable))
variable ="Python"
print(type(variable))

Resultado:

&lt;class 'int'>
&lt;class 'str'>

Variables numéricas

Las variables de tipo numéricas almacenan números y pueden ser de tres tipos:

int: valores enteros.

float: valores con decimales (separador punto).

complex: números complejos.

edad = 35
margen = 22.75

Operaciones combinando números enteros y flotantes:

Dividiendo siempre obtendremos un número flotante, aunque numerador y denominador sean enteros y el resultado sea exacto (resto 0)

Python por defecto devolverá un flotante para no perder precisión cuando operamos con un entero y un flotante.

numero_1= 77
numero_2=10
print(numero_1/numero_2)

Resultado: 7.7

Guiones en números:

Trabajando con números largos podemos agrupar los dígitos utilizando guiones bajos para leerlos mejor:

numeroWebs=3_876_345_765
print("numero de webs en el mundo: ",numeroWebs)

Resultado:

numero de webs en el mundo:  3876345765

Operadores aritméticos

Los operadores aritméticos los emplearemos para realizar operaciones con variables numéricas. El siguiente cuadro muestra una lista de los principales operadores aritméticos y la operación que implementan:

OperadorOperación aritmética
X + YSuma
X – YResta
X * YProducto
X / YDivisión
X // YDivisión entera
X % YResto
X ** YX elevado a Y
X +=1Incremento
Operadores aritméticos

Ejemplos de operaciones:

numero1=2
numero2=3
print("Numero 1 : ",numero1)
print("Numero 2 : ",numero2)
print("La suma del Numero 1 y del Numero 2 es: ",numero1+numero2)
print("división del Numero 1 entre el Numero 2 es: ",numero1/numero2)
print("Numero 1 elevado al Numero 2 es: ",numero1**numero2)
print("La división del Numero 1 entre el Numero 2 tiene un resto de: ",numero1%numero2)

Resultado:

Numero 1 :  2
Numero 2 :  3
La suma del Numero 1 y del Numero 2 es:  5
división del Numero 1 entre el Numero 2 es:  0.6666666666666666
Numero 1 elevado al Numero 2 es:  8
La división del Numero 1 entre el Numero 2 tiene un resto de:  2

Variables de tipo cadena

Las variables de tipo cadena o string guardan cadenas de caracteres y se representan con comillas simples o dobles.

ciudad1 = ‘Madrid’
ciudad2 = “Valencia”

Función len( ): devuelve la longitud de la cadena que se le pasa como parámetro.

ciudad="Madrid"
longitud=len(ciudad)
print(longitud)

Resultado: 6

Concatenar cadenas: sencillamente utilizamos el signo “+”, como si estuviéramos sumando números.

ciudad1="Madrid"
ciudad2="Cadiz"
print(ciudad1+" - "+ciudad2)

Resultado:

Madrid – Cadiz

Acceder a los caracteres de una cadena: Las cadenas se pueden acceder elemento a elemento mediante índices. Obteniendo caracteres sueltos o subcadenas de la cadena principal:

ciudad="Cadiz"
print(ciudad[0])
print(ciudad[1:3])

Resultado:

C
ad

La primera posición de la cadena, correspondiente al primer carácter, se corresponde con el índice 0.

Cuando marcamos un rango, el número superior del rango no se incluye. En el ejemplo, el rango [1:3], incluye los caracteres con índices 1 y 2.

Las cadenas son inmutables no puedo modificar un elemento. El código:

ciudad="Cadiz"
ciudad[1]="w"

Arroja el error:

TypeError: 'str' object does not support item assignment

Las variables de tipo cadena tienen una serie de métodos asociados para realizar distintas operaciones (dividir, buscar, reemplazar…).Cada clase de Python tiene métodos asociados y las cadenas son una clase más.

Algunos de los métodos más utilizados son:

split([sep]): Divide una cadena en subcadenas utilizando el carácter separador indicado por el parámetro sep

saludo="Buenos-dias-hoy"
lista=saludo.split(sep="-")
for trozo in lista:
    print(trozo)

Resultado:

Buenos
dias
hoy

lower( ) y upper( ): convierte los caracteres de la cadena a minúsculas o mayúsculas respectivamente:

saludo="Buenos dias"
print(saludo.lower())
print(saludo.upper())

Resultado:

buenos dias
BUENOS DIAS

cad.rstrip( ): Elimina los caracteres en blanco al final de la cadena

cad.lstrip( ): Elimina los caracteres en blanco al comienzo de la cadena

cad.strip( ): Elimina los caracteres en blanco al comienzo y al final de la cadena

saludo="  Buenos dias  "
print("--",saludo.rstrip(),"--")
print("--",saludo.lstrip(),"--")
print("--",saludo.strip(),"--")

Resultado:

--   Buenos dias --
-- Buenos dias   --
-- Buenos dias --

cad.title( ): Pone la inicial de cada palabra a mayúscula

saludo="buenos dias  "
print(saludo.title())

Resultado:

Buenos Dias

Cadenas de texto formateadas: Son las conocidas como cadenas f, ya que se coloca una f antes de las comillas de comienzo de la cadena y Python reemplaza cualquier variable entre llaves por su valor.

nombre="Pedro"
apellidos="Garcia Martinez"
saludo=f"Buenos días, {nombre} {apellidos}"
print(saludo)

Resultado:

Buenos días, Pedro Garcia Martinez

Caracteres de escape: Fundamentalmente emplearemos dos:

\n: nueva línea

\t: tabulador

texto="Asistentes:\n\tPedro\n\tMaria\n\tJuan"
print(texto)

Resultado:

Asistentes:
	Pedro
	Maria
	Juan

Variables de tipo booleano

Las variables de tipo booleano o tipo de dato lógico representan valores de lógica binaria, esto es 2 valores, que normalmente representan falso (False) o verdadero (True).

Por ejemplo, un booleano puede guardar el resultado de una comparación:

a=7
b=3
comparacion=(a==b)
print(comparacion)

Resultado: False

Conversión de tipos

Hemos visto diferentes tipos de variables entre las que es frecuente tener que realizar conversiones de tipo para pasar un valor almacenado en un tipo de variable a otro tipo de variable. Las funciones que realizan estas conversiones tienen el mismo nombre que el tipo de variable de destino. Por ejemplo si pasamos un valor a cadena (str) la función es str().

numero= 77
print(f"{numero} es de tipo {type(numero)}")
numero= str(numero)
print(f"{numero} es de tipo {type(numero)}")
numero=int(numero)
print(f"{numero} es de tipo {type(numero)}")
numero=float(numero)
print(f"{numero} es de tipo {type(numero)}")

Resultado:

77 es de tipo <class 'int'>
77 es de tipo <class 'str'>
77 es de tipo <class 'int'>
77.0 es de tipo <class 'float'>

Comentarios

Para realizar comentarios en Python tenemos dos opciones básicas:

  • Comentario de una línea, para el que emplearemos el carácter almohadilla.
  • Comentario para un bloque, donde emplearemos tres comillas al comienzo del bloque y otras tres al final.
#linea de comentario
"""
primera linea del bloque de comentarios
este bloque tiene tres lineas de comentarios
ultima linea del bloque
"""

NOTA:

Este post es parte de la colección “Python”. Puedes ver el índice de esta colección aquí.

Introducción a Python

Última actualización: septiembre 2024

Python es uno de los lenguajes de programación más extendidos y que más está creciendo, empleado en multitud de campos como el análisis de datos, la inteligencia artificial o el desarrollo de juegos.

Es además un software libre administrado por Phyton Software Foundation: www.python.org

Versiones Python

Actualmente se mantienen dos versiones de Python en paralelo:

  • Versiones 2.x (desde el año 2.000)
  • Versiones 3.x (en paralelo con 2.x desde 2.008)

Existen algunas diferencias notables entre la versión 3 y la 2. En este curso, nos centraremos en la versión 3, la versión 2 está prácticamente en desuso.

Vamos a trabajar con la versión 3.11, que es la más actual que aparece como segura desde el punto de vista de mantenimiento:

Estado de las distintas versiones de Python (septiembre 2024)

Características y ventajas principales

Phyton tiene importantes ventajas sobre otros lenguajes:

  • Es de propósito general.
  • Interpretado.
  • Tipado dinámico.
  • Open source.
  • Lenguaje multiparadigma: procedural, funcional, POO.
  • Multiplataforma: Linux, Windows, OSX.
  • Python busca: simplicidad, elegancia y legibilidad.
  • Gran comunidad de usuarios.
  • Es el lenguaje que más rápido ha crecido en los últimos años por delante de lenguajes como Javascript, Java, PHP, C++

Cuando empiezas a programar con Python es habitual que te llegue información del PEP 20, que es la «filosofía» empleada en el diseño de este lenguaje de programación. Los principios de esta filosofía, conocida como el Zen de Python, fueron declarados por Tim Peters, el creador de la primera versión de Python: CPython.

A mi modo de ver es recomendable dedicar unos minutos a leer estos principios antes de sumergirse en la tarea de aprender Python, según vayamos aprendiendo el lenguaje iremos apreciando la implementación de estos principios. Por ello te reproduzco aquí los principios del Zen de Python:

El Zen de Python, por Tim Peters

Lo bonito es mejor que lo feo.
Lo explícito es mejor que lo implícito.
Lo simple es mejor que lo complejo.
Lo complejo es mejor que lo complicado.
Lo plano es mejor que lo anidado.
Lo disperso es mejor que lo denso.
La legibilidad cuenta.
Los casos especiales no son lo suficientemente especiales como para romper las reglas.
Aunque la practicidad vence a la pureza.
Los errores nunca deben pasar en silencio.
A menos que se silencien explícitamente.
En caso de ambigüedad, rechaza la tentación de adivinar.
Debería haber una, y preferiblemente solo una, forma obvia de hacerlo.
Aunque esa forma puede no ser obvia al principio, a menos que seas holandés.
Ahora es mejor que nunca.
Aunque nunca es mejor que *ahora mismo*.
Si la implementación es difícil de explicar, es una mala idea.
Si la implementación es fácil de explicar, puede que sea una buena idea.
Los espacios de nombres son una gran idea, ¡hagamos más de ellos!

Si quiere leer un poco más de este tema, puedes echar un ojo a este post.

Instalando Python

Obviamente, antes de empezar a trabajar con Python, lo primero que tenemos que hacer es instalarlo en nuestro ordenador. La instalación es distinta dependiendo del sistema operativo que empleemos.

Pero antes de lanzarte a instalar Python, mi recomendación es que mejor te instales el paquete Anaconda, que además de Python incluye herramientas muy útiles para trabajar con este lenguaje de programación. Si vas a instalarte Anaconda directamente, pasa a la sección de Instalando Anaconda.

Instalación en Windows

Es posible que ya tengamos instalado Python porque lo hayamos hecho con alguna aplicación, así es que empezaremos por comprobar si ya lo tenemos instalado. Para ello abrimos una ventana de comandos (tecleamos cmd en la ventana de aplicaciones) e introducimos el comando:

python --version

Si lo tenemos instalado, veremos la versión de Python que tenemos instalada:

C:\ProgramData\anaconda3>python --version
Python 3.12.4

Posteriormente, cuando trabajemos en proyectos y nos creemos un entorno específico para cada proyecto, veremos que podemos instalar la versión del interprete que queramos para ese proyecto.

Si NO lo tenemos instalado, veremos algo similar a:

C:\Users\Jegarcia>python - -version
No se encontr¾ Python; ejecuta sin argumentos para instalar desde Microsoft Store o deshabilita este acceso directo en Configuraci¾n > Administrar alias de ejecuci¾n de la aplicaci¾n.

Aunque también puede ocurrir que no tengamos la ruta de Python en la variable de entorno Path, por lo que para ejecutar Python tendríamos que colocarnos en la carpeta donde estuviera el ejecutable.

Si no lo tenemos instalado y tecleamos directamente «Python» en la ventana de la consola. Dependiendo de la versión de Windows, es posible que te dirija a Microsoft Store y te permita obtenerlo desde ahí:

Descarga de Python 3.12 desde Microsoft Store
Descarga de Python desde Microsoft Store

También podemos ir a descargarlo directamente desde la web oficial: downloads

Descarga de Python desde la web Oficial (septiembre 2024)

Las versiones de Python tienen tres valores separados por puntos. El primero indica la versión principal, el segundo una versión secundaria y el tercero la versión micro. En este caso, lo importante es que trabajemos con la versión principal 3, ya que hay diferencias notables con la versión principal 2. Idealmente iremos a la última versión en estado: “security”, lo que indica que la versión está segura, que en nuestro caso es 3.11 (septiembre 2024)

Ahora procederíamos a instalarlo y una vez instalado, comprobamos en una ventana de comandos la versión instalada, como indicaba al principio de este apartado.

Con Python ya instalado, lo único que necesitaríamos hacer es instalarnos un IDE de nuestra elección para empezar a programar. Algunos de los más utilizados con Python son: Jupyter Notebook, Visual Studio Code y Spyder.

Instalando Anaconda

No obstante, Python es un lenguaje de propósito general que tiene múltiples campos de aplicación: ciencia en datos, aprendizaje automático, etc, para los que emplearíamos otras aplicaciones y librerías. Por ello, nos puede resultar más interesante instalarnos una distribución de Python que incluya varias de estas herramientas. La más popular sin duda es Anaconda.

Herramientas disponibles en el repositorio Anaconda

Podemos descargar Anaconda desde el repositorio oficial: descarga Anaconda

Nos descargamos Anaconda y así además de Spyder, tenemos Jupyter, pero también un montón de librerías que emplearemos luego en ciencia en datos, como Numpy, Pytorch, pandas y matplotlib. Además, tendríamos tensorFlow por si trabajamos con IA.

Anaconda provee distintos instaladores para los distintos Sistemas Operativos con los que trabajemos. Todos ellos de sencilla instalación, en la que seguiríamos las indicaciones del instalador para realizar la instalación recomendada.

NOTA:

Este post es parte de la colección “Python”. Puedes ver el índice de esta colección aquí.