Introducción: El primer paso en la programación comienza con "Variables" y "Tipos de Datos"
¡Hola a todos los que se adentran en el mundo de la creación de sitios web! Una vez que te acostumbras a crear la apariencia con HTML y CSS, el siguiente paso es agregar "movimiento" y "procesamiento de datos": el mundo de la programación te espera. Entre ellos, Python es elegido por muchos creadores web por ser simple y fácil de aprender.
Al aprender a programar, lo primero que todos encuentran son las "variables" y los "tipos de datos". Estos son los mecanismos más básicos para que un programa maneje datos y, por así decirlo, son la columna vertebral de la programación.
Puede que pienses "suena un poco difícil...", ¡pero no te preocupes! En este artículo, explicaremos las variables y los tipos de datos de Python de una manera muy sencilla, usando analogías cotidianas. Todo el código que presentamos se puede ejecutar en tu computadora simplemente copiando y pegando. Esperamos que puedas sentir la alegría de programar no solo "leyendo y entendiendo", sino también "ejecutando y experimentando".
¡Vamos, exploremos juntos el mundo de Python y llevemos tus habilidades de creación web al siguiente nivel!
Capítulo 1: ¿Qué son las variables? La caja mágica para guardar datos
En programación, una variable es, en pocas palabras, como una "caja para guardar datos". A esta caja puedes ponerle el nombre (etiqueta) que quieras, meter dentro datos como números o texto, y luego sacarlos libremente o cambiar su contenido.
Por ejemplo, supongamos que quieres crear una presentación personal. Tienes la frase "Mi nombre es Juan Pérez. Tengo 30 años". Si cada vez que cambia el nombre o la edad tuvieras que modificar el texto en varios lugares, sería muy tedioso, ¿verdad? Ahí es donde entran en juego las variables.
1-1. Cómo crear una variable (Asignación)
Poner datos en una "caja" llamada variable se conoce en el mundo de la programación como "asignación". En Python, se escribe usando el signo = (igual).
Puedes crear una variable fácilmente escribiendo nombre_variable = dato. ¡Probémoslo!
El siguiente código asigna la cadena de texto "Juan Pérez" a una variable llamada name, y el número 30 a una variable llamada age.
# Asignar la cadena "Juan Pérez" a la variable name
name = "Juan Pérez"
# Asignar el número 30 a la variable age
age = 30
1-2. Veamos el contenido de una variable (Salida)
Simplemente poner datos en una variable no hace que ocurra nada. Quieres poder ver el contenido, ¿verdad? Para eso se utiliza la función print(). Si pones el nombre de la variable entre los paréntesis de print(), se mostrará (saldrá) el dato almacenado en esa variable.
name = "Juan Pérez"
age = 30
# Mostrar el contenido de la variable name
print(name)
# Mostrar el contenido de la variable age
print(age)
1-3. El contenido de una variable se puede cambiar
Lo práctico de las variables es que, incluso después de haber guardado un dato, puedes sobrescribirlo con uno nuevo. Es como cambiar el contenido de la caja.
En el siguiente ejemplo, el contenido de la variable job, que inicialmente contenía "Diseñador Web", se cambia más tarde por "Director Web". Al usar print(), puedes confirmar que el contenido ha cambiado correctamente.
job = "Diseñador Web"
print(job) # En este punto, se muestra "Diseñador Web"
# Asignar un nuevo dato a la misma variable (sobrescribir)
job = "Director Web"
print(job) # Se muestra "Director Web"
Capítulo 2: ¿Qué son los tipos de datos? Los tipos de cosas que pones en la caja
Ya explicamos que en la "caja" llamada variable se pueden guardar diferentes tipos de datos. A este "tipo de dato" se le llama tipo de dato.
¿Por qué son importantes los tipos de datos? Por ejemplo, si tienes el dato "100", ¿es el número 100 o el texto "100"? Un humano puede deducirlo por el contexto, pero a una computadora hay que indicarle la diferencia claramente. Si es un número, se pueden hacer sumas y restas, pero si es texto, no, ¿verdad?
Python ofrece varios tipos de datos, pero empecemos por aprender los más básicos y comunes en el desarrollo web.
2-1. Cadena de texto (string) - Para representar texto
El tipo que maneja secuencias de caracteres, como frases o palabras, es el tipo cadena de texto. En Python, se representa como str. La regla para manejar cadenas en un programa es encerrarlas entre " " (comillas dobles) o ' ' (comillas simples).
2-2. Número (number) - Deja los cálculos en sus manos
Como su nombre indica, es un tipo de dato para manejar números. En Python, principalmente se usan dos tipos:
Entero (integer): Números sin parte decimal, como 1, 100, -50. Se representa como int.
Número de punto flotante (float): Números con parte decimal, como 1.5, 3.14, -0.01. Se representa como float.
Los números se escriben tal cual, sin rodearlos con " ". Si los encierras, se convierten en cadenas de texto en lugar de números, así que ten cuidado.
# Tipo entero (int)
user_count = 150
print(user_count)
# Tipo de punto flotante (float)
tax_rate = 1.21
print(tax_rate)
# También se pueden hacer cálculos entre números
total_price = 5000 * tax_rate
print(total_price)
2-3. Booleano (boolean) - La elección de Sí/No
El tipo booleano (o tipo lógico) es un tipo de dato muy simple que solo puede tener dos valores: True (verdadero) o False (falso). Se representa como bool.
Es extremadamente útil para gestionar estados que se pueden responder con un Sí/No, como "¿El usuario ha iniciado sesión?" o "¿La configuración de publicación está activada?". Se usa con frecuencia en la implementación de funcionalidades de sitios web.
# Representar el estado de un usuario conectado con True
is_logged_in = True
print(is_logged_in)
# Representar el estado de un artículo no publicado con False
is_published = False
print(is_published)
2-4. Lista (list) - Almacenar múltiples datos en orden
Cuando quieres almacenar múltiples datos en una sola variable manteniendo el orden, usas el tipo lista. Se encierra todo entre [ ] (corchetes) y se separa cada dato con una , (coma).
Es útil cuando quieres manejar varios elementos juntos, como una "lista de noticias" o una "lista de categorías de productos" en un sitio web. Los tipos de datos que contiene pueden ser variados.
# Gestionar aficiones con una lista
hobbies = ["Leer", "Ver películas", "Programar", "Pasear"]
print(hobbies)
# Acceder a los datos usando su número de índice (que empieza en 0)
print(hobbies[0]) # Muestra el primer elemento "Leer"
print(hobbies[2]) # Muestra el tercer elemento "Programar"
2-5. Diccionario (dictionary) - Gestionar con pares de clave y valor
El tipo diccionario, al igual que una lista, puede almacenar múltiples datos, pero hay una gran diferencia. Mientras que una lista gestiona los datos por "orden", un diccionario los gestiona mediante pares de "clave" y "valor".
Se encierra todo entre { } (llaves) y los datos se escriben en el formato "clave": valor.
Es ideal para cuando quieres dar etiquetas significativas a cada dato, como en la información de un perfil de persona, donde "nombre" es "María García" y "edad" es "25".
# Gestionar un perfil de usuario con un diccionario
user_profile = {
"name": "María García",
"age": 25,
"job": "Ingeniera Web",
"is_student": False
}
print(user_profile)
# Acceder a los datos especificando la clave
print(user_profile["name"]) # Muestra "María García"
print(user_profile["job"]) # Muestra "Ingeniera Web"
2-6. Verificando tipos de datos con la función `type()`
Cuando quieres saber "¿qué tipo de dato contiene esta variable ahora mismo?", la función type() es muy útil. Simplemente pon el nombre de la variable entre los paréntesis y te dirá su tipo de dato.
Capítulo 3: Formas avanzadas de usar los tipos de datos
Una vez que has aprendido los tipos de datos básicos, veamos cómo combinarlos o convertirlos. Ser capaz de hacer esto ampliará enormemente tu capacidad de expresión.
3-1. Concatenación de cadenas
Puedes unir cadenas de texto entre sí usando el símbolo +.
nombre = "María"
apellido = "García"
nombre_completo = nombre + " " + apellido
print(nombre_completo) # Muestra "María García"
3-2. Combinando cadenas y variables (f-string)
A menudo querrás incrustar el valor de una variable en una frase, como en "Tus puntos son 100". Para esto, las "f-strings (cadenas literales formateadas)" son extremadamente útiles.
Poniendo una f antes de la comilla de apertura de la cadena y encerrando las variables entre { }, puedes combinar fácilmente cadenas y variables. Esta es una forma moderna de escribir en Python y se usa muy a menudo.
user_name = "Invitado"
points = 120
# Crear una cadena usando una f-string
message = f"Los puntos actuales de {user_name} son {points}."
print(message)
3-3. Conversión de tipos de datos (casting)
Al programar, te encontrarás con situaciones en las que quieres "tratar un número como una cadena de texto" o, a la inversa, "tratar una cadena de dígitos como un número para poder hacer cálculos". Convertir un tipo de dato en otro de esta manera se llama casting.
str(dato): Convierte el dato a una cadena de texto.
int(dato): Convierte el dato a un número entero.
float(dato): Convierte el dato a un número de punto flotante.
En el ejemplo de abajo, si unes las cadenas "100" y "50" con +, se concatenan como texto, resultando en "10050". Al convertirlas a números con int() antes de sumar, obtenemos correctamente el resultado de cálculo 150.
# Los datos introducidos por el usuario se tratan inicialmente como cadenas, aunque sean números
input_str_num1 = "100"
input_str_num2 = "50"
# Concatenar como cadenas
print(input_str_num1 + input_str_num2) # Resulta en "10050"
# Convertir a números con int() antes de calcular
num1 = int(input_str_num1)
num2 = int(input_str_num2)
print(num1 + num2) # Muestra correctamente 150
Capítulo 4: ¡Aplicándolo al desarrollo web! Generemos HTML con Python
Ahora, vamos a hacer un ejemplo práctico y cercano para todos los creadores web, usando las variables y tipos de datos que hemos aprendido hasta ahora. Es un ejemplo avanzado en el que usamos un programa de Python para generar dinámicamente el propio archivo HTML.
Por ejemplo, imagina la página de presentación del personal de un sitio web. Actualizar el HTML a mano cada vez que se incorpora un nuevo miembro es mucho trabajo. Pero con Python, puedes generar automáticamente una página de perfil en HTML basándote en los datos del personal (gestionados en un diccionario).
[Ejemplo completo] Generar una página de perfil HTML con Python
El siguiente código de Python es un programa que escribe un archivo HTML llamado profile.html basándose en la información de perfil almacenada en un diccionario llamado profile_data.
Copia este código, guárdalo con un nombre como profile_generator.py y ejecútalo. Debería generarse un archivo llamado profile.html en la misma carpeta.
# profile_generator.py
# Gestionar datos de perfil con un diccionario
profile_data = {
"name": "Elena Rodríguez",
"job": "Diseñadora Web",
"skills": ["HTML", "CSS", "JavaScript", "Python"],
"introduction": "Me esfuerzo por crear diseños que sean visualmente atractivos y tengan un código limpio. ¡Últimamente estoy enganchada a usar Python para automatizar tareas!"
}
# Crear la estructura HTML usando una f-string
# Se incrustan datos del diccionario y la lista
html_content = f"""
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Perfil de {profile_data['name']}</title>
<style>
body {{ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; line-height: 1.7; color: #333; background-color: #fdfdfd; max-width: 800px; margin: 2rem auto; padding: 0 1.5rem; }}
.profile-card {{ background: #fff; border: 1px solid #e0e0e0; border-radius: 12px; padding: 2.5rem; box-shadow: 0 6px 12px rgba(0,0,0,0.08); }}
h1 {{ color: #2c3e50; font-size: 2.5rem; margin-bottom: 0.5rem; }}
h2 {{ color: #34495e; border-bottom: 2px solid #3498db; padding-bottom: 0.5rem; margin-top: 2rem; }}
p {{ margin: 1rem 0; }}
.job-title {{ color: #7f8c8d; font-size: 1.2rem; font-weight: bold; margin-bottom: 2rem; }}
.skills-list {{ list-style: none; padding: 0; margin-top: 1rem; }}
.skills-list li {{ background: #3498db; color: white; padding: 0.3rem 1rem; border-radius: 16px; display: inline-block; margin: 0.3rem; font-size: 0.9rem; }}
</style>
</head>
<body>
<div class="profile-card">
<h1>{profile_data['name']}</h1>
<p class="job-title">{profile_data['job']}</p>
<h2>Presentación</h2>
<p>{profile_data['introduction']}</p>
<h2>Habilidades</h2>
<ul class="skills-list">
{''.join([f'<li>{skill}</li>' for skill in profile_data['skills']])}
</ul>
</div>
</body>
</html>
"""
# Abrir el archivo en modo de escritura y escribir el contenido
try:
with open("profile.html", "w", encoding="utf-8") as f:
f.write(html_content)
print("✅ Éxito: Se ha generado profile.html. Abre el archivo para comprobarlo.")
except IOError as e:
print(f"❌ Error: Falló la escritura del archivo. {e}")
El código completo del archivo HTML generado
Al ejecutar el script de Python anterior, se creará un archivo profile.html con el siguiente contenido. Si lo abres en un navegador, debería mostrarse una página de perfil con un estilo sencillo.
De esta manera, utilizando hábilmente las variables y tipos de datos de Python (especialmente diccionarios y listas), puedes pasar de un simple sitio web estático a generar contenido basado en datos.
Capítulo 5: Puntos importantes a recordar sobre variables y tipos de datos
Finalmente, presentaremos algunos puntos en los que los principiantes suelen tropezar al manejar variables y tipos de datos, y algunas reglas que es bueno conocer.
Respeta las convenciones de nomenclatura
El nombre de una variable no puede ser cualquier cosa. En Python, se utiliza una combinación de letras minúsculas, números y guiones bajos (_). Se recomienda el estilo "snake_case", donde las palabras se separan por guiones bajos (ej: user_name, total_price). Elige nombres que sean fáciles de entender y consistentes.
No se pueden usar palabras reservadas
Las palabras que tienen un significado especial en la sintaxis de Python (como if, for, class, print, etc.) no pueden usarse como nombres de variables. A estas se las llama "palabras reservadas".
Se distingue entre mayúsculas y minúsculas
Una variable llamada name y una llamada Name se tratan como dos cosas completamente diferentes. Ten cuidado, ya que esto puede causar errores inesperados.
Entiende que es un lenguaje de tipado dinámico
Python es un "lenguaje de tipado dinámico", donde el tipo de una variable se determina automáticamente por el dato que contiene. Aunque esto facilita la escritura, también significa que puedes asignar más tarde una cadena de texto a una variable que inicialmente contenía un número. Es una buena costumbre comprobar de vez en cuando con la función type() si el tipo ha cambiado sin querer.
Conclusión: ¡Consolida tus bases de programación y avanza al siguiente paso!
En este artículo, hemos explicado el núcleo de la programación en Python: las "variables" y los "tipos de datos", desde su uso básico hasta ejemplos aplicados al desarrollo web.
Las variables son "cajas con nombre" para guardar datos.
Los tipos de datos son las clases de datos que se guardan en las cajas, como cadenas (str), números (int, float), listas (list) y diccionarios (dict).
Combinándolos, puedes gestionar datos de forma eficiente y automatizar tareas como la generación de páginas web.
Las variables y los tipos de datos son la base de toda la sintaxis básica de Python que aprenderás a continuación, como las bifurcaciones condicionales (sentencia if), los bucles (sentencia for) y las funciones. Asentar bien estas bases aquí es la clave para un aprendizaje fluido en el futuro.
Te animamos a que ejecutes el código de este artículo una y otra vez para disfrutar plenamente de la satisfacción de "hacer que tu propio código funcione". La acumulación de estas pequeñas experiencias de éxito te guiará sin duda a convertirte en un mejor creador.
¡Ahora, avancemos al mundo de la "bifurcación condicional", donde el tipo booleano (True/False) que hemos aprendido hoy juega un papel protagonista!