Módulo BASICOLección 02 de 12

Variables y tipos de datos

Guarda valores con nombres: int, float, str, bool y None.

01

Teoría y Fundamentos

Lee y asimila los conceptos clave antes de evaluar

Una variable es una caja con nombre donde guardas un valor. En Python creas una variable simplemente asignándole algo con el operador =:

nombre = "Ana"
edad = 25
altura = 1.68
es_estudiante = True

Aquí no declaraste tipos: Python los detectó solo. A esto se le llama tipado dinámico.

Los tipos fundamentales

entero = 42            # int   → números sin decimales
decimal = 3.14         # float → números con decimales
texto = "hola"         # str   → cadenas de caracteres
bandera = True         # bool  → True o False
nada = None            # None  → ausencia de valor

Puedes inspeccionar el tipo de cualquier valor con type():

print(type(42))        # <class 'int'>
print(type(3.14))      # <class 'float'>
print(type("hola"))    # <class 'str'>
print(type(True))      # <class 'bool'>

Métodos y operaciones clave de los tipos numéricos y booleanos

En Python todo es un objeto, incluso los enteros y los flotantes. Aunque los números se manejan principalmente con operadores aritméticos, tienen métodos y funciones incorporadas esenciales:

1. Métodos y funciones para enteros (int)

  • abs(x): Devuelve el valor absoluto (abs(-15) → 15).
  • round(x): Redondea al entero más cercano.
  • pow(base, exp, mod): Potencia eficiente, opcionalmente con módulo (base ** exp) % mod.
  • int.bit_length(): Número de bits necesarios para representar el entero en binario ((16).bit_length() → 5).
  • int.to_bytes() y int.from_bytes(): Conversión entre enteros y secuencias binarias (vital en redes o criptografía).

2. Métodos y funciones para decimales (float)

  • float.is_integer(): Comprueba si el decimal equivale a un entero exacto ((4.0).is_integer() → True, (4.5).is_integer() → False).
  • round(flotante, decimales): Redondea a N decimales (round(3.14159, 2) → 3.14).
  • float.as_integer_ratio(): Devuelve una tupla (numerador, denominador) que representa la fracción exacta ((0.75).as_integer_ratio() → (3, 4)).

3. Booleanos (bool) y evaluación de verdad

En Python, bool es una subclase de int (True == 1, False == 0). Además, cualquier objeto puede evaluarse en un contexto booleano:

  • Falsos por definición (falsy): 0, 0.0, "" (string vacío), [] (lista vacía), () (tupla vacía), {} (dict/set vacío), None y False.
  • Verdaderos (truthy): Cualquier número distinto de cero o colección con al menos un elemento.
  • bool(x): Convierte explícitamente cualquier valor a su verdad lógica (bool("") → False, bool([1, 2]) → True).

Nombres de variables

Las reglas son estrictas:

mi_edad = 25       # Correcto: snake_case con guiones bajos
_edad = 25         # Correcto: puede empezar con guion bajo
edad2 = 25         # Correcto: puede terminar con número

2edad = 25         # ERROR: no puede empezar con número
mi-edad = 25       # ERROR: el guion medio es resta
mi edad = 25       # ERROR: no puede tener espacios

La convención de la comunidad es snake_case: minúsculas con guiones bajos entre palabras.

Conversión de tipos (casting)

A veces necesitas convertir un tipo en otro:

numero_texto = "25"
numero = int(numero_texto)      # "25" → 25
print(numero + 5)               # 30

edad = 25
mensaje = "Tengo " + str(edad)  # 25 → "25"
print(mensaje)                  # Tengo 25

Si intentas unir texto y número directamente, Python lanza un error:

"Tengo " + 25        # TypeError: ¡no puedes sumar str + int!

La trampa de la división

Un detalle importante: el operador / siempre devuelve un float, aunque la división sea exacta:

resultado = 10 / 2
print(resultado)     # 5.0  ← float, no 5
print(type(resultado))  # <class 'float'>

Errores comunes

# Usar una variable antes de crearla
print(edad)      # NameError: la variable aún no existe
edad = 25

# Diferenciar mayúsculas: Python distingue entre ellas
edad = 25
print(Edad)      # NameError: "Edad" no es lo mismo que "edad"

Resumen

  • Las variables se crean con nombre = valor, sin declarar tipo
  • Tipos base: int, float, str, bool, None
  • Nombres en snake_case, sin números al inicio ni caracteres especiales
  • Convierte con int(), float(), str(), bool()
  • La división / siempre devuelve float

¿Terminaste de leer la teoría?

Marca este paso para registrar tu avance y saltar a las preguntas

02

Quiz de Comprobación

3 preguntas de comprensión rápida (requiere 70% para aprobar)

  1. 1

    ¿Qué devuelve type(3.14)?

  2. 2

    ¿Cuál de estos nombres de variable es válido en Python?

  3. 3

    ¿Qué tipo devuelve la expresión 10 / 2?

03

Laboratorio de Código Python

2 ejercicios interactivos ejecutados en tu navegador

EJERCICIO 01Python 3.12

Crea tus variables

Crea una variable `nombre` con tu nombre (un string) y una variable `edad` con un número entero. El validador comprueba los tipos.

ejercicio_1.py
Tab: 4 spaces

Iniciando editor de código…

Ctrl/Cmd + Enter para ejecutar
EJERCICIO 02Python 3.12

Concatenar y convertir

Dadas `edad = 25` y `ciudad = "Bogotá"`, imprime: Tengo 25 años y vivo en Bogotá. Necesitarás `str()` para unir el número con texto.

ejercicio_2.py
Tab: 4 spaces

Iniciando editor de código…

Ctrl/Cmd + Enter para ejecutar