Skip to content

2. Variables y Tipos de Datos

📦 2.1 ¿Qué es una variable y cómo se crea?

Section titled “📦 2.1 ¿Qué es una variable y cómo se crea?”

Una variable es un espacio de memoria identificado por un nombre que almacena un valor que puede cambiar durante la ejecución del programa. En términos simples, es como una caja etiquetada donde guardas información para usarla más tarde.

Características de las variables en Python

Section titled “Características de las variables en Python”
CaracterísticaDescripción
Asignación dinámicaNo es necesario declarar el tipo, Python lo infiere automáticamente
Tipado dinámicoUna variable puede cambiar de tipo durante la ejecución
Referencias a objetosLas variables son referencias a objetos en memoria

La sintaxis para crear una variable es:

nombre_variable = valor

El operador = se llama operador de asignación y asigna el valor de la derecha a la variable de la izquierda.

  • Almacenar datos: Guardar información para uso posterior
  • Reutilización: Usar el mismo valor múltiples veces sin repetirlo
  • Legibilidad: Dar nombres significativos a los valores
  • Cálculos: Realizar operaciones y guardar resultados
Variables básicas
# Crear una variable con un número
edad = 25
# Crear una variable con texto
nombre = "Ana"
# Crear una variable con decimal
altura = 1.65
# Crear una variable booleana
es_estudiante = True
print(edad) # 25
print(nombre) # Ana
print(altura) # 1.65
print(es_estudiante) # True
Asignación múltiple
# Asignar el mismo valor a múltiples variables
x = y = z = 0
print(x, y, z) # 0 0 0
# Asignar múltiples valores en una línea
a, b, c = 10, 20, 30
print(a) # 10
print(b) # 20
print(c) # 30
# Intercambiar valores entre variables
num1 = 5
num2 = 10
num1, num2 = num2, num1
print(num1) # 10
print(num2) # 5
Reasignación
# Una variable puede cambiar de valor
contador = 0
print(contador) # 0
contador = 5
print(contador) # 5
contador = contador + 1
print(contador) # 6
# Una variable puede cambiar de tipo
variable = 42 # int
print(variable)
variable = "texto" # str
print(variable)
variable = True # bool
print(variable)

🎯 2.2 Tipos de datos: texto, números y booleanos

Section titled “🎯 2.2 Tipos de datos: texto, números y booleanos”

Python incluye varios tipos de datos fundamentales que representan diferentes categorías de información.

TipoNombreDescripciónEjemplo
strCadenaSecuencias de caracteres (texto)"Hola"
intEnteroNúmeros sin parte decimal42
floatFlotanteNúmeros con parte decimal3.14
boolBooleanoValores de verdadTrue, False

Las cadenas o strings representan secuencias de caracteres. Se definen entre comillas simples '...' o dobles "...".

  • Inmutables: no se pueden modificar después de creadas
  • Concatenación: se pueden unir con +
  • Multilínea: usar triple comilla """..."""

Los enteros representan números sin parte decimal. Pueden ser positivos, negativos o cero.

  • Precisión arbitraria: pueden ser tan grandes como la memoria lo permita
  • Sin límite de tamaño: a diferencia de otros lenguajes

Los flotantes representan números con parte decimal (punto flotante).

  • Notación decimal: 3.14
  • Notación científica: 1.5e-3 (0.0015)
  • Precisión limitada: aproximadamente 15-17 dígitos

Los booleanos representan valores de verdad: True o False.

  • Solo dos valores: True y False
  • Subclase de int: True equivale a 1, False a 0
Strings
# Crear cadenas con comillas simples o dobles
nombre = 'Juan'
apellido = "Pérez"
# Cadenas con comillas dentro
mensaje1 = "Él dijo: 'Hola'"
mensaje2 = 'Ella respondió: "Adiós"'
# Cadenas multilínea con triple comilla
poema = """Roses are red,
Violets are blue,
Python is awesome,
And so are you!"""
print(nombre) # Juan
print(mensaje1) # Él dijo: 'Hola'
print(poema)
Enteros
# Números enteros positivos y negativos
edad = 25
temperatura = -5
anio = 2024
# Números grandes (sin límite)
poblacion_mundial = 8000000000
# Operaciones con enteros
suma = 10 + 5 # 15
resta = 10 - 3 # 7
multiplicacion = 4 * 5 # 20
division_entera = 10 // 3 # 3
modulo = 10 % 3 # 1 (residuo)
print(edad)
print(suma)
print(division_entera)
Flotantes
# Números con punto decimal
altura = 1.75
pi = 3.14159
temperatura = -2.5
# Notación científica
velocidad_luz = 3e8 # 300000000.0
atomo = 1.6e-19 # 0.00000000000000000016
# Operaciones con flotantes
promedio = (8.5 + 9.0 + 7.5) / 3
print(promedio) # 8.333333333333334
# División siempre retorna float
resultado = 10 / 2
print(resultado) # 5.0 (float, no int)
Booleanos
# Valores booleanos
es_mayor_edad = True
tiene_licencia = False
# Resultado de comparaciones
es_igual = (5 == 5) # True
es_mayor = (10 > 20) # False
es_diferente = (3 != 4) # True
# Booleanos en operaciones lógicas
resultado1 = True and False # False
resultado2 = True or False # True
resultado3 = not True # False
print(es_mayor_edad) # True
print(es_mayor) # False
print(resultado1) # False
Comparación
# Diferentes tipos de datos
texto = "100"
numero_entero = 100
numero_decimal = 100.0
es_verdadero = True
print(texto) # 100 (string)
print(numero_entero) # 100 (int)
print(numero_decimal) # 100.0 (float)
print(es_verdadero) # True (bool)
# Aunque se ven similares, son tipos diferentes
print(texto == numero_entero) # False (tipos diferentes)

📋 2.3 Reglas para nombrar variables correctamente

Section titled “📋 2.3 Reglas para nombrar variables correctamente”

Python impone reglas estrictas que deben cumplirse para que un nombre de variable sea válido:

ReglaDescripción
Caracteres permitidosSolo letras (a-z, A-Z), números (0-9) y guiones bajos (_)
Primer carácterDebe comenzar con letra o guión bajo, nunca con número
Case sensitiveedad, Edad y EDAD son variables diferentes
Palabras reservadasNo usar if, for, while, class, def, etc.
Sin espaciosUsar guiones bajos para separar palabras
ConvenciónDescripciónEjemplo
snake_caseMinúsculas con guiones bajosnombre_completo
Nombres descriptivosExplicar qué contiene la variabletemperatura_maxima
Evitar abreviaturasPreferir nombres clarosnumero_estudiantes
MAYÚSCULASPara constantesPI = 3.14159
Evitar una letraExcepto en bucles (i, j, k)contador en lugar de c
Válidos vs inválidos
# ✅ NOMBRES VÁLIDOS
nombre = "Juan"
edad_usuario = 25
_privado = "dato interno"
numero1 = 10
camelCase = "válido pero no recomendado en Python"
CONSTANTE = 100
# ❌ NOMBRES INVÁLIDOS (causan error)
# 2nombre = "Juan" # Error: comienza con número
# nombre-usuario = "Ana" # Error: contiene guion
# nombre usuario = "Luis" # Error: contiene espacio
# for = 10 # Error: palabra reservada
# class = "Python" # Error: palabra reservada
Case sensitive
# Python distingue entre mayúsculas y minúsculas
edad = 25
Edad = 30
EDAD = 35
print(edad) # 25
print(Edad) # 30
print(EDAD) # 35
# Son tres variables completamente diferentes
nombre = "Ana"
Nombre = "Juan"
NOMBRE = "Luis"
print(nombre, Nombre, NOMBRE) # Ana Juan Luis

Ejemplo: Buenas prácticas de nomenclatura

Section titled “Ejemplo: Buenas prácticas de nomenclatura”
Buenas prácticas
# ❌ Nombres poco descriptivos
x = 25
a = "Juan"
t = 36.5
# ✅ Nombres descriptivos
edad_paciente = 25
nombre_completo = "Juan"
temperatura_corporal = 36.5
# ❌ Abreviaturas confusas
num_est = 50
temp_max = 40
# ✅ Nombres claros
numero_estudiantes = 50
temperatura_maxima = 40
# ✅ Constantes en mayúsculas
PI = 3.14159
VELOCIDAD_LUZ = 299792458
MAX_INTENTOS = 3
NOMBRE_EMPRESA = "TechCorp"

🔍 2.4 Función type() y comprobación de tipos

Section titled “🔍 2.4 Función type() y comprobación de tipos”

La función type() es una función integrada de Python que retorna el tipo de dato de un objeto. Es fundamental para verificar qué tipo de información contiene una variable.

Sintaxis:

type(objeto)

Retorna: La clase del objeto (su tipo de dato)

PropósitoDescripción
DepuraciónIdentificar errores de tipos incompatibles
ValidaciónVerificar tipo antes de operaciones
AprendizajeComprender cómo Python clasifica valores
ResultadoTipo
<class 'int'>Número entero
<class 'float'>Número decimal
<class 'str'>Cadena de texto
<class 'bool'>Booleano
<class 'list'>Lista
<class 'NoneType'>Valor None (nulo)
type() básico
# Verificar el tipo de diferentes valores
numero = 42
texto = "Python"
decimal = 3.14
booleano = True
nulo = None
print(type(numero)) # <class 'int'>
print(type(texto)) # <class 'str'>
print(type(decimal)) # <class 'float'>
print(type(booleano)) # <class 'bool'>
print(type(nulo)) # <class 'NoneType'>
isinstance()
# isinstance() para verificar tipos
edad = 25
nombre = "Ana"
altura = 1.65
# Verificar si es de un tipo específico
print(isinstance(edad, int)) # True
print(isinstance(nombre, str)) # True
print(isinstance(altura, float)) # True
print(isinstance(edad, str)) # False
# Verificar múltiples tipos
numero = 42
print(isinstance(numero, (int, float))) # True

🔄 2.5 Conversiones entre tipos (int(), str(), float(), etc.)

Section titled “🔄 2.5 Conversiones entre tipos (int(), str(), float(), etc.)”

La conversión de tipos o casting es el proceso de transformar un valor de un tipo de dato a otro. Python ofrece funciones integradas para realizar estas conversiones.

FunciónDescripción
int()Convierte a entero. Trunca decimales de flotantes
float()Convierte a número decimal (punto flotante)
str()Convierte a representación textual
bool()Convierte a True o False según reglas específicas
ConversiónReglaEjemplo
A intStrings numéricos"123"123
A intFlotantes (trunca)3.143
A intBooleanosTrue1, False0
A boolValores “falsos”0, 0.0, "", NoneFalse
A boolOtros valoresCualquier otro → True
Conversión a int
# Convertir string a entero
texto_numero = "123"
numero = int(texto_numero)
print(numero) # 123
print(type(numero)) # <class 'int'>
# Convertir float a int (trunca decimales)
decimal = 3.99
entero = int(decimal)
print(entero) # 3 (no redondea, solo trunca)
# Convertir booleano a int
print(int(True)) # 1
print(int(False)) # 0
Conversión a float
# Convertir string a float
texto = "3.14"
decimal = float(texto)
print(decimal) # 3.14
print(type(decimal)) # <class 'float'>
# Convertir int a float
entero = 10
flotante = float(entero)
print(flotante) # 10.0
# Convertir booleano a float
print(float(True)) # 1.0
print(float(False)) # 0.0
Conversión a str
# Convertir número a string
edad = 25
texto_edad = str(edad)
print(texto_edad) # "25"
print(type(texto_edad)) # <class 'str'>
# Concatenar después de convertir
nombre = "Ana"
edad = 25
mensaje = nombre + " tiene " + str(edad) + " años"
print(mensaje) # Ana tiene 25 años
Conversión de input
# input() siempre retorna string, hay que convertir
print("Calculadora de edad")
# Solicitar año de nacimiento
anio_nacimiento = input("Ingresa tu año de nacimiento: ")
print(type(anio_nacimiento)) # <class 'str'>
# Convertir a entero para calcular
anio_nacimiento = int(anio_nacimiento)
anio_actual = 2024
edad = anio_actual - anio_nacimiento
print(f"Tienes {edad} años")

🐝