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?”Concepto de variable
Section titled “Concepto de variable”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ística | Descripción |
|---|---|
| Asignación dinámica | No es necesario declarar el tipo, Python lo infiere automáticamente |
| Tipado dinámico | Una variable puede cambiar de tipo durante la ejecución |
| Referencias a objetos | Las variables son referencias a objetos en memoria |
Sintaxis de creación
Section titled “Sintaxis de creación”La sintaxis para crear una variable es:
nombre_variable = valorEl operador = se llama operador de asignación y asigna el valor de la derecha a la variable de la izquierda.
Propósito de las variables
Section titled “Propósito de las variables”- 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
Ejemplo: Creación básica de variables
Section titled “Ejemplo: Creación básica de variables”# Crear una variable con un númeroedad = 25
# Crear una variable con textonombre = "Ana"
# Crear una variable con decimalaltura = 1.65
# Crear una variable booleanaes_estudiante = True
print(edad) # 25print(nombre) # Anaprint(altura) # 1.65print(es_estudiante) # TrueEjemplo: Asignación múltiple
Section titled “Ejemplo: Asignación múltiple”# Asignar el mismo valor a múltiples variablesx = y = z = 0print(x, y, z) # 0 0 0
# Asignar múltiples valores en una líneaa, b, c = 10, 20, 30print(a) # 10print(b) # 20print(c) # 30
# Intercambiar valores entre variablesnum1 = 5num2 = 10num1, num2 = num2, num1print(num1) # 10print(num2) # 5Ejemplo: Reasignación de variables
Section titled “Ejemplo: Reasignación de variables”# Una variable puede cambiar de valorcontador = 0print(contador) # 0
contador = 5print(contador) # 5
contador = contador + 1print(contador) # 6
# Una variable puede cambiar de tipovariable = 42 # intprint(variable)
variable = "texto" # strprint(variable)
variable = True # boolprint(variable)🎯 2.2 Tipos de datos: texto, números y booleanos
Section titled “🎯 2.2 Tipos de datos: texto, números y booleanos”Tipos de datos primitivos en Python
Section titled “Tipos de datos primitivos en Python”Python incluye varios tipos de datos fundamentales que representan diferentes categorías de información.
| Tipo | Nombre | Descripción | Ejemplo |
|---|---|---|---|
str | Cadena | Secuencias de caracteres (texto) | "Hola" |
int | Entero | Números sin parte decimal | 42 |
float | Flotante | Números con parte decimal | 3.14 |
bool | Booleano | Valores de verdad | True, False |
Cadenas de texto (str)
Section titled “Cadenas de texto (str)”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
"""..."""
Números enteros (int)
Section titled “Números enteros (int)”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
Números decimales (float)
Section titled “Números decimales (float)”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
Booleanos (bool)
Section titled “Booleanos (bool)”Los booleanos representan valores de verdad: True o False.
- Solo dos valores:
TrueyFalse - Subclase de int:
Trueequivale a 1,Falsea 0
Ejemplo: Cadenas de texto (str)
Section titled “Ejemplo: Cadenas de texto (str)”# Crear cadenas con comillas simples o doblesnombre = 'Juan'apellido = "Pérez"
# Cadenas con comillas dentromensaje1 = "Él dijo: 'Hola'"mensaje2 = 'Ella respondió: "Adiós"'
# Cadenas multilínea con triple comillapoema = """Roses are red,Violets are blue,Python is awesome,And so are you!"""
print(nombre) # Juanprint(mensaje1) # Él dijo: 'Hola'print(poema)Ejemplo: Números enteros (int)
Section titled “Ejemplo: Números enteros (int)”# Números enteros positivos y negativosedad = 25temperatura = -5anio = 2024
# Números grandes (sin límite)poblacion_mundial = 8000000000
# Operaciones con enterossuma = 10 + 5 # 15resta = 10 - 3 # 7multiplicacion = 4 * 5 # 20division_entera = 10 // 3 # 3modulo = 10 % 3 # 1 (residuo)
print(edad)print(suma)print(division_entera)Ejemplo: Números decimales (float)
Section titled “Ejemplo: Números decimales (float)”# Números con punto decimalaltura = 1.75pi = 3.14159temperatura = -2.5
# Notación científicavelocidad_luz = 3e8 # 300000000.0atomo = 1.6e-19 # 0.00000000000000000016
# Operaciones con flotantespromedio = (8.5 + 9.0 + 7.5) / 3print(promedio) # 8.333333333333334
# División siempre retorna floatresultado = 10 / 2print(resultado) # 5.0 (float, no int)Ejemplo: Booleanos (bool)
Section titled “Ejemplo: Booleanos (bool)”# Valores booleanoses_mayor_edad = Truetiene_licencia = False
# Resultado de comparacioneses_igual = (5 == 5) # Truees_mayor = (10 > 20) # Falsees_diferente = (3 != 4) # True
# Booleanos en operaciones lógicasresultado1 = True and False # Falseresultado2 = True or False # Trueresultado3 = not True # False
print(es_mayor_edad) # Trueprint(es_mayor) # Falseprint(resultado1) # FalseEjemplo: Comparación de tipos
Section titled “Ejemplo: Comparación de tipos”# Diferentes tipos de datostexto = "100"numero_entero = 100numero_decimal = 100.0es_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 diferentesprint(texto == numero_entero) # False (tipos diferentes)📋 2.3 Reglas para nombrar variables correctamente
Section titled “📋 2.3 Reglas para nombrar variables correctamente”Reglas obligatorias (sintaxis)
Section titled “Reglas obligatorias (sintaxis)”Python impone reglas estrictas que deben cumplirse para que un nombre de variable sea válido:
| Regla | Descripción |
|---|---|
| Caracteres permitidos | Solo letras (a-z, A-Z), números (0-9) y guiones bajos (_) |
| Primer carácter | Debe comenzar con letra o guión bajo, nunca con número |
| Case sensitive | edad, Edad y EDAD son variables diferentes |
| Palabras reservadas | No usar if, for, while, class, def, etc. |
| Sin espacios | Usar guiones bajos para separar palabras |
Convenciones recomendadas (estilo PEP 8)
Section titled “Convenciones recomendadas (estilo PEP 8)”| Convención | Descripción | Ejemplo |
|---|---|---|
| snake_case | Minúsculas con guiones bajos | nombre_completo |
| Nombres descriptivos | Explicar qué contiene la variable | temperatura_maxima |
| Evitar abreviaturas | Preferir nombres claros | numero_estudiantes |
| MAYÚSCULAS | Para constantes | PI = 3.14159 |
| Evitar una letra | Excepto en bucles (i, j, k) | contador en lugar de c |
Ejemplo: Nombres válidos vs inválidos
Section titled “Ejemplo: Nombres válidos vs inválidos”# ✅ NOMBRES VÁLIDOSnombre = "Juan"edad_usuario = 25_privado = "dato interno"numero1 = 10camelCase = "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 reservadaEjemplo: Sensibilidad a mayúsculas
Section titled “Ejemplo: Sensibilidad a mayúsculas”# Python distingue entre mayúsculas y minúsculasedad = 25Edad = 30EDAD = 35
print(edad) # 25print(Edad) # 30print(EDAD) # 35
# Son tres variables completamente diferentesnombre = "Ana"Nombre = "Juan"NOMBRE = "Luis"
print(nombre, Nombre, NOMBRE) # Ana Juan LuisEjemplo: Buenas prácticas de nomenclatura
Section titled “Ejemplo: Buenas prácticas de nomenclatura”# ❌ Nombres poco descriptivosx = 25a = "Juan"t = 36.5
# ✅ Nombres descriptivosedad_paciente = 25nombre_completo = "Juan"temperatura_corporal = 36.5
# ❌ Abreviaturas confusasnum_est = 50temp_max = 40
# ✅ Nombres clarosnumero_estudiantes = 50temperatura_maxima = 40
# ✅ Constantes en mayúsculasPI = 3.14159VELOCIDAD_LUZ = 299792458MAX_INTENTOS = 3NOMBRE_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()
Section titled “La función type()”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ósito de type()
Section titled “Propósito de type()”| Propósito | Descripción |
|---|---|
| Depuración | Identificar errores de tipos incompatibles |
| Validación | Verificar tipo antes de operaciones |
| Aprendizaje | Comprender cómo Python clasifica valores |
Tipos de datos comunes retornados
Section titled “Tipos de datos comunes retornados”| Resultado | Tipo |
|---|---|
<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) |
Ejemplo: Uso básico de type()
Section titled “Ejemplo: Uso básico de type()”# Verificar el tipo de diferentes valoresnumero = 42texto = "Python"decimal = 3.14booleano = Truenulo = 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'>Ejemplo: Uso de isinstance()
Section titled “Ejemplo: Uso de isinstance()”# isinstance() para verificar tiposedad = 25nombre = "Ana"altura = 1.65
# Verificar si es de un tipo específicoprint(isinstance(edad, int)) # Trueprint(isinstance(nombre, str)) # Trueprint(isinstance(altura, float)) # Trueprint(isinstance(edad, str)) # False
# Verificar múltiples tiposnumero = 42print(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.)”Conversión de tipos (Type Casting)
Section titled “Conversión de tipos (Type Casting)”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.
Funciones de conversión principales
Section titled “Funciones de conversión principales”| Función | Descripció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 |
Reglas de conversión
Section titled “Reglas de conversión”| Conversión | Regla | Ejemplo |
|---|---|---|
| A int | Strings numéricos | "123" → 123 |
| A int | Flotantes (trunca) | 3.14 → 3 |
| A int | Booleanos | True → 1, False → 0 |
| A bool | Valores “falsos” | 0, 0.0, "", None → False |
| A bool | Otros valores | Cualquier otro → True |
Ejemplo: Conversión a int()
Section titled “Ejemplo: Conversión a int()”# Convertir string a enterotexto_numero = "123"numero = int(texto_numero)print(numero) # 123print(type(numero)) # <class 'int'>
# Convertir float a int (trunca decimales)decimal = 3.99entero = int(decimal)print(entero) # 3 (no redondea, solo trunca)
# Convertir booleano a intprint(int(True)) # 1print(int(False)) # 0Ejemplo: Conversión a float()
Section titled “Ejemplo: Conversión a float()”# Convertir string a floattexto = "3.14"decimal = float(texto)print(decimal) # 3.14print(type(decimal)) # <class 'float'>
# Convertir int a floatentero = 10flotante = float(entero)print(flotante) # 10.0
# Convertir booleano a floatprint(float(True)) # 1.0print(float(False)) # 0.0Ejemplo: Conversión a str()
Section titled “Ejemplo: Conversión a str()”# Convertir número a stringedad = 25texto_edad = str(edad)print(texto_edad) # "25"print(type(texto_edad)) # <class 'str'>
# Concatenar después de convertirnombre = "Ana"edad = 25mensaje = nombre + " tiene " + str(edad) + " años"print(mensaje) # Ana tiene 25 añosEjemplo: Entrada de usuario
Section titled “Ejemplo: Entrada de usuario”# input() siempre retorna string, hay que convertirprint("Calculadora de edad")
# Solicitar año de nacimientoanio_nacimiento = input("Ingresa tu año de nacimiento: ")print(type(anio_nacimiento)) # <class 'str'>
# Convertir a entero para calcularanio_nacimiento = int(anio_nacimiento)anio_actual = 2024edad = anio_actual - anio_nacimiento
print(f"Tienes {edad} años")