Representación editorial de código Python con variables, operaciones y transformación de datos, con el logotipo de Python.

Python: variables, tipos de datos, operadores y entrada/salida

Nivel: iniciación
Pregunta que responde: ¿Cuáles son los elementos básicos con los que construimos un programa sencillo en Python y cómo podemos escribirlos para que también los entiendan las personas?
Requisitos previos: ninguno.


Un programa también se escribe para personas

Programar no consiste únicamente en conseguir que el ordenador haga algo.

También consiste en conseguir que otra persona —o nosotros mismos dentro de unos meses— pueda entender qué hace el programa, con qué datos trabaja y por qué está escrito de esa manera.

Observa estos dos fragmentos:

a = 68.5
b = 1.72
c = a / (b ** 2)

print(c)

y:

peso_kg = 68.5
altura_m = 1.72
indice = peso_kg / (altura_m ** 2)

print(indice)

Para Python, ambos son perfectamente válidos.

Para una persona, no cuentan la misma historia.

En esta pieza vamos a aprender los elementos más básicos con los que empezamos a construir un programa: variables, tipos de datos, constantes, operadores, entrada y salida de información y comentarios.

Y, al mismo tiempo, empezaremos a adquirir algunos hábitos que distinguen un código que simplemente funciona de un código que además puede mantenerse y entenderse.


1. Las variables ponen nombre a los datos

Un programa trabaja constantemente con información:

  • una edad;
  • una temperatura;
  • una distancia;
  • un nombre;
  • una puntuación;
  • el resultado de un cálculo.

Para poder utilizar esos valores necesitamos referirnos a ellos.

En Python podemos escribir:

edad = 25
altura = 1.75
nombre = "Carlos"

Aquí aparecen tres variables:

edad      → 25
altura    → 1.75
nombre    → "Carlos"

Una forma sencilla de entenderlo es esta:

Una variable es un nombre que utilizamos para referirnos a un valor dentro del programa.

El símbolo:

=

es el operador de asignación.

No significa exactamente «es igual a», como en matemáticas.

En:

edad = 25

estamos indicando:

asigna el valor 25 al nombre edad.


2. Elegir un nombre también es programar

Podríamos escribir:

n = 24
p = 18.50
t = n * p

Python puede ejecutarlo.

Pero compara ahora:

numero_unidades = 24
precio_unidad = 18.50
precio_total = numero_unidades * precio_unidad

El cálculo es el mismo.

La diferencia está en todo lo que podemos comprender sin necesidad de investigar el resto del programa.

Por eso merece la pena detenerse unos segundos antes de crear una variable y preguntarse:

¿Qué representa realmente este dato?

No se trata de elegir el nombre más largo posible.

Se trata de elegir uno que aporte significado.

Son nombres razonables:

numero_alumnos
temperatura_exterior
distancia_km
precio_total
puntos

Mientras que:

x
dato
cosa
a1
temp

pueden resultar demasiado ambiguos si no existe un contexto que los justifique.

En un proyecto real

Un nombre como t puede resultar evidente para quien acaba de escribir el programa.

temperatura_salida puede seguir siendo comprensible meses después, para otra persona del equipo que nunca ha visto ese código.

Por eso muchas organizaciones establecen convenciones comunes para nombrar variables, funciones y archivos.

El objetivo no es que el código «quede bonito».

El objetivo es que todo el equipo utilice el mismo lenguaje.


3. Reglas básicas para los nombres

Los nombres de variables deben respetar algunas reglas.

Podemos utilizar, por ejemplo:

edad
edad_alumno
temperatura2
numero_alumnos

Python distingue entre mayúsculas y minúsculas:

edad
Edad
EDAD

son nombres distintos.

Para las variables ordinarias es habitual escribir nombres en minúsculas y separar las palabras mediante guion bajo:

numero_alumnos
precio_total
distancia_recorrida

Lo importante, especialmente al comenzar, no es memorizar una colección interminable de reglas de estilo.

Lo importante es adquirir un hábito:

Antes de escribir un nombre, piensa qué información representa.


4. Los valores tienen un tipo

No todos los datos significan lo mismo.

Observa:

edad = 25
altura = 1.75
nombre = "Carlos"
activo = True

Python distingue diferentes tipos de valores.

Los cuatro fundamentales para empezar son:

TipoEjemploRepresenta
int25números enteros
float1.75números con parte decimal
str"Carlos"cadenas de texto
boolTrueverdadero o falso

Podemos preguntarle a Python por el tipo de un valor utilizando:

type()

Por ejemplo:

edad = 25
print(type(edad))

y:

altura = 1.75
print(type(altura))

Nombre, valor y tipo

Esquema de altura_m igual a 1.72 mostrando el nombre de la variable, su valor y el tipo float.
Una variable combina un nombre, un valor y un tipo de dato.

Conviene separar muy pronto estas tres ideas.

En:

altura_m = 1.72

tenemos:

nombre → altura_m
valor  → 1.72
tipo   → float

El nombre lo elegimos nosotros.

El valor es el dato con el que estamos trabajando.

El tipo indica cómo interpreta Python ese valor y qué operaciones tienen sentido con él.

En un proyecto real

Elegir un tipo de dato no es solo una cuestión sintáctica.

En proyectos reales puede influir en la precisión, en el espacio que ocupa la información o en la forma de intercambiar datos con sensores, bases de datos o protocolos.

Aquí nos basta con comprender los tipos básicos. Más adelante veremos casos en los que elegir el tipo correcto se vuelve una decisión técnica importante.


5. Las variables pueden cambiar

El propio nombre ya nos da una pista: una variable puede recibir diferentes valores durante la ejecución del programa.

Por ejemplo:

puntos = 100

Más adelante:

puntos = 150

El nombre sigue siendo:

puntos

pero su valor ha cambiado.


6. Constantes: valores que decidimos mantener

Hay datos que queremos mantener iguales durante todo el programa.

Podemos escribir:

PI = 3.141592

o:

KM_A_MILLAS = 0.621371

En Python, escribir el nombre en mayúsculas no impide técnicamente modificarlo.

Es una convención.

Le estamos diciendo a cualquier persona que lea el programa:

este valor se ha definido para permanecer constante; no deberíamos cambiarlo durante la ejecución.

En un proyecto real: una constante también centraliza una decisión

Imagina que diferentes partes de una aplicación necesitan utilizar π.

Un programador escribe:

area = 3.14 * radio ** 2

otro:

longitud = 3.1416 * diametro

y otro utiliza todavía más decimales.

Los cálculos pueden producir pequeñas diferencias.

Si el proyecto define una única constante:

PI = 3.141592

todos los componentes utilizan el mismo valor y la misma precisión.

Eso facilita que los resultados sean comparables y reproducibles.

Además, si el proyecto decide modificar esa precisión, existe un único lugar donde cambiarla.

La utilidad de una constante no consiste únicamente en evitar escribir un número varias veces.

También puede representar una decisión común del proyecto.


7. Los operadores permiten trabajar con los valores

Comparación visual de los operadores barra, doble barra y porcentaje en Python usando 10 caramelos y 3 personas.
/, // y % responden a preguntas diferentes sobre una división.

Una vez disponemos de datos podemos realizar operaciones con ellos.

Python dispone de diferentes familias de operadores.

Operadores aritméticos

OperadorOperación
+suma
-resta
*multiplicación
/división
//cociente entero
%resto o módulo
**potencia

Por ejemplo:

x = 10
y = 3

print(x + y)
print(x - y)
print(x * y)

obtendremos:

13
7
30

8. /, // y %: tres operaciones diferentes

Estos tres operadores merecen algo más de atención.

Si escribimos:

10 / 3

obtenemos una división ordinaria:

3.333...

Pero:

10 // 3

obtiene el cociente entero:

3

Y:

10 % 3

obtiene el resto:

1

Podemos verlo con un ejemplo sencillo:

caramelos = 10
amigos = 3

por_persona = caramelos // amigos
sobran = caramelos % amigos

El resultado representa:

3 caramelos para cada persona
1 caramelo sin repartir

Prueba mentalmente

¿Qué valores tendrán estas variables?

caramelos = 17
amigos = 5

por_persona = caramelos // amigos
sobran = caramelos % amigos

Antes de seguir, intenta resolverlo sin ejecutar el programa.

por_persona → 3
sobran      → 2

En un proyecto real

// y % no sirven únicamente para repartir caramelos.

También aparecen al trabajar con:

  • bloques de datos;
  • páginas;
  • índices;
  • tiempos;
  • recursos distribuidos en grupos;
  • cálculos periódicos.

Un operador muy sencillo puede terminar formando parte de aplicaciones bastante más complejas.


9. Operadores de asignación combinada

Supongamos que tenemos:

puntos = 100

y queremos sumar 50.

Podemos escribir:

puntos = puntos + 50

Pero Python permite expresar lo mismo así:

puntos += 50

También podemos utilizar:

puntos -= 20
puntos *= 2
puntos /= 2
puntos //= 2

El nombre de la variable permanece, mientras su valor va cambiando.


10. Comparar también produce un resultado

Podemos comparar valores utilizando operadores relacionales:

==
!=
>
<
>=
<=

Por ejemplo:

edad = 20

edad >= 18

El resultado de esa expresión es:

True

Mientras que:

edad < 18

produce:

False

Es importante comprender esta idea:

Una comparación también produce un valor.

Y ese valor tiene un tipo:

bool

Prueba mentalmente

edad = 17
acompanado = True

edad >= 18 or acompanado

¿El resultado será True o False?

La primera comparación es falsa, pero acompanado vale True. Con or, basta con que una de las dos partes sea verdadera:

True

11. and, or y not

También podemos combinar valores booleanos.

and

Solo produce True cuando ambas partes son verdaderas.

True and True

da:

True

or

Produce True cuando al menos una de las partes es verdadera.

True or False

da:

True

not

Invierte el valor:

not True

da:

False

Pero resulta más interesante utilizarlos con expresiones que tengan significado.

Por ejemplo:

nota = 6.5
asistencia = 87

aprobado = nota >= 5 and asistencia >= 80

print(aprobado)

El resultado es:

True

En un proyecto real

Un booleano puede representar situaciones como:

sensor_activo
puerta_cerrada
dato_valido
equipo_disponible
usuario_autorizado

Al final seguimos trabajando únicamente con True o False, pero esos dos valores pueden representar condiciones muy importantes de un sistema.

Ya sabemos construir una expresión que responde True o False.

Todavía no hemos hecho que el programa actúe de manera diferente según ese resultado.

Eso será el siguiente paso.


12. Convertir un tipo de dato

A veces necesitamos transformar un valor de un tipo a otro.

Python dispone, entre otras, de estas funciones:

str()
int()
float()
bool()

Por ejemplo:

edad_texto = "25"
edad = int(edad_texto)

Antes:

"25" → str

Después:

25 → int

También:

altura_texto = "1.72"
altura = float(altura_texto)

transforma:

"1.72"

en:

1.72

13. input(): recibir información del usuario

Flujo desde una entrada escrita por el usuario mediante input, recibida como texto y convertida después a un número entero.
input() devuelve texto; si necesitamos calcular con el dato, debemos convertirlo.

Hasta ahora hemos escrito los valores directamente en el programa:

edad = 25

Pero normalmente queremos que el usuario pueda introducirlos.

Para eso utilizamos:

input()

Por ejemplo:

nombre = input("Introduce tu nombre: ")

Si el usuario escribe:

Carlos

la variable nombre contendrá ese texto.

Hay una idea fundamental:

input() devuelve texto.

Incluso si el usuario escribe:

25

lo que inicialmente obtenemos es:

"25"

un str.

Por eso escribiremos:

edad = int(input("Introduce tu edad: "))

o:

altura = float(input("Introduce tu altura: "))

Por ahora hacemos una suposición

Estamos empezando.

Así que, de momento, vamos a suponer que el usuario introduce correctamente lo que le pedimos.

Si preguntamos:

Edad:

esperamos algo como:

25

y no:

veinticinco

En una aplicación real no podemos confiar siempre en eso.

El usuario puede equivocarse, escribir un valor inesperado o dejar una información incompleta.

Más adelante aprenderemos a detectar y gestionar esas situaciones.

Ahora interesa comprender primero el mecanismo básico:

entrada → conversión → dato

14. print(): mostrar información

Para mostrar información utilizamos:

print()

Por ejemplo:

nombre = "Carlos"
edad = 25

print(nombre)
print(edad)

También podemos combinar texto y variables:

print("Nombre:", nombre)
print("Edad:", edad)

15. Formatear la salida

También podemos insertar valores dentro de un texto utilizando especificadores como:

%s
%i
%f

Por ejemplo:

nombre = "Carlos"
edad = 25
altura = 1.75

print("Hola %s, tienes %i años y mides %.2f m." % (nombre, edad, altura))

Obtendremos:

Hola Carlos, tienes 25 años y mides 1.75 m.

%.2f indica que queremos mostrar el número real con dos cifras decimales.

Más adelante

Python dispone de formas más modernas y potentes de construir textos con variables. Las veremos cuando corresponda.
De momento interesa comprender bien qué dato tenemos, de qué tipo es y cómo queremos mostrarlo.


16. Los comentarios: código pensado para personas

Python ignora todo lo que aparece después de # en una línea de comentario.

Por ejemplo:

# Distancia introducida por el usuario
distancia_km = 10

Pero que Python ignore un comentario no significa que sea poco importante.

El comentario está escrito para las personas.

Puede estar dirigido:

  • a otro miembro del equipo;
  • a quien mantenga el programa más adelante;
  • o a ti mismo cuando vuelvas al código después de varios meses.

Los comentarios se escriben para quien venga después. Y muchas veces quien viene después eres tú.


17. Un comentario no debe traducir el código

Observa:

# Multiplica kilometros por 1000
metros = kilometros * 1000

El comentario prácticamente repite lo que ya podemos leer.

En cambio:

# Trabajaremos internamente todas las distancias en metros
metros = kilometros * 1000

aporta una decisión:

el programa ha elegido trabajar internamente con una unidad concreta.

Podemos resumirlo así:

El código suele explicar qué hace.
El comentario debe ayudar a entender por qué se hace, qué representa o qué decisión existe detrás.

No necesitamos comentar cada línea.

De hecho, hacerlo puede dificultar la lectura.


18. Comentarios para tu yo futuro

Un programa pequeño puede parecernos completamente evidente mientras lo estamos escribiendo.

Seis meses después, no necesariamente.

Por eso una pregunta útil antes de abandonar un proyecto es:

¿Entenderé por qué hice esto cuando vuelva aquí dentro de un tiempo?

Si la respuesta no está clara, quizá necesitemos:

  • un nombre mejor;
  • un comentario;
  • o ambas cosas.

19. Documentar un programa

En proyectos profesionales pueden existir normas internas para documentar los archivos.

Por ejemplo:

# ------------------------------------------------------------
# Programa: conversor_unidades.py
# Versión: 1.2
# Fecha: 02/10/2026
# Función: conversión de distancias
# ------------------------------------------------------------

No todas las organizaciones utilizan exactamente este formato.

Cada proyecto puede establecer sus propias convenciones.

Cultura profesional: control de versiones

En proyectos reales es habitual utilizar un sistema de control de versiones.

Ese sistema puede registrar:

  • quién hizo un cambio;
  • cuándo se hizo;
  • qué se modificó;
  • qué versión existía antes;
  • cómo ha evolucionado el proyecto.

Por eso no siempre tiene sentido duplicar toda esa información manualmente dentro de comentarios.

La idea importante es esta:

El código forma parte de un proyecto que evoluciona y necesita poder mantenerse.

Cultura profesional: documentación generada desde el código

Existen herramientas capaces de analizar documentación estructurada incluida junto al código para generar:

  • documentación técnica;
  • índices;
  • referencias;
  • páginas de consulta;
  • sistemas de búsqueda sobre grandes bibliotecas de software.

Eso significa que documentar correctamente no sirve únicamente para dejar «notas».

En proyectos grandes puede formar parte del propio sistema de documentación.


20. Todo junto: entrada, proceso y salida

Flujo de un programa Python desde la entrada con input y las variables, pasando por las operaciones, hasta la salida con print.
Un programa sencillo puede entenderse como entrada, tratamiento de los datos, proceso y salida.

Ya podemos reunir gran parte de lo aprendido en un pequeño programa.

nombre = input("Nombre: ")
distancia_km = float(input("Distancia en kilómetros: "))

KM_A_METROS = 1000

# Trabajaremos el resultado en metros
distancia_m = distancia_km * KM_A_METROS

print("Usuario:", nombre)
print("Distancia:", distancia_m, "m")

Podemos leerlo como una secuencia:

USUARIO
   ↓
input()
   ↓
conversión
   ↓
variables
   ↓
operaciones
   ↓
resultado
   ↓
print()
   ↓
USUARIO

Y esta idea es mucho más importante que memorizar de golpe toda la sintaxis:

Un programa recibe datos, trabaja con ellos y produce un resultado.


Recurso interactivo · ¿Entiendes este programa?

El recurso permite experimentar directamente con:

  • nombres de variables;
  • valores y tipos;
  • asignaciones;
  • operadores;
  • expresiones booleanas;
  • comentarios;
  • input();
  • el recorrido completo entrada → proceso → salida.

La idea no es añadir teoría nueva, sino ver cómo cambia la legibilidad de un programa cuando empezamos a escribirlo pensando también en quien tendrá que leerlo.


21. Antes de dar por terminado un programa

Aunque nuestro programa sea pequeño, merece la pena adquirir desde el principio algunos hábitos.

¿Los nombres explican qué representa cada dato?

distancia_km

es mucho más informativo que:

d

si no existe una buena razón para abreviarlo.

¿He utilizado el tipo adecuado?

25

no significa lo mismo para Python que:

"25"

¿He convertido correctamente lo recibido mediante input()?

Si necesitamos calcular con el dato, probablemente tendremos que transformarlo.

¿Sé qué resultado produce cada operador?

Especialmente:

/
//
%

¿Los comentarios aportan información?

¿O simplemente están traduciendo literalmente el código?

¿Podría entender este programa dentro de seis meses?

Probablemente esta sea la pregunta más importante de todas.


Ideas esenciales

  • Una variable es un nombre que permite referirnos a un valor.
  • Los nombres importan porque el código no está escrito únicamente para el ordenador: también debe poder ser entendido por personas.
  • Los valores tienen diferentes tipos. Hemos trabajado con int, float, str y bool.
  • Una constante representa un valor que decidimos mantener estable mediante una convención de programación.
  • Los operadores permiten calcular, comparar, combinar expresiones y modificar valores.
  • Una comparación puede producir True o False sin que todavía tengamos que tomar ninguna decisión con ese resultado.
  • input() recibe información como texto.
  • Cuando necesitamos números debemos convertirlos, por ejemplo, mediante int() o float().
  • print() permite mostrar información y combinar texto con los resultados de nuestro programa.
  • Existen formas más avanzadas de formatear texto que veremos más adelante.
  • Los comentarios sirven para aportar intención, contexto y documentación, no para repetir línea por línea lo que el código ya expresa.
  • En proyectos reales aparecen además convenciones de equipo, control de versiones y herramientas de documentación.

Una última idea

Un programa puede ejecutarse correctamente y, aun así, estar mal escrito.

Por eso desde el principio conviene adquirir un hábito:

Párate un momento antes de escribir.

¿Qué representa este dato?
¿Cómo debería llamarlo?
¿Necesita una explicación?
¿Lo entenderé cuando vuelva aquí dentro de unos meses?

Conseguir que Python entienda nuestro programa es imprescindible.

Conseguir que también lo entiendan las personas forma parte de aprender a programar.


PRÁCTICA · EJERCICIOS INTERACTIVOS

Ponlo en práctica

Cinco problemas para practicar variables, tipos de datos, operadores y entrada/salida directamente en el navegador: escribe y ejecuta Python, prueba distintas soluciones y compara tu propuesta con una solución orientativa cuando lo necesites.

Abrir los ejercicios ↗

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *