Curso Python #2: Variables y Tipos de Datos en Python
Introduccion: ¿Que son las variables?

Bienvenido a la Parte 2 de 10 del Curso de Python desde Cero. En el articulo anterior instalamos Python y escribimos nuestro primer programa. Ahora vamos a aprender uno de los conceptos mas importantes de la programacion: las variables.
Imagina que tienes varias cajas etiquetadas en tu escritorio. En una caja que dice "edad" guardas el numero 25. En otra que dice "nombre" guardas el texto "Maria". Y en otra que dice "tiene_cuenta" guardas un "si" o "no". Eso es exactamente lo que son las variables en programacion: cajas con nombre donde guardas informacion.
La computadora necesita guardar datos para trabajar con ellos. Las variables son el mecanismo que usa para hacerlo. Sin variables, no podrias hacer casi nada util en un programa.
Crear y asignar variables
En Python, crear una variable es muy sencillo. Solo necesitas escribir un nombre, el signo = y el valor que quieres guardar:
1# Crear variables
2nombre = "Maria"
3edad = 25
4altura = 1.68
5es_estudiante = True
Asi de simple. No necesitas declarar el tipo de dato ni usar palabras especiales. Python se encarga de todo automaticamente.
El signo = en programacion no significa "es igual a" como en matematicas. Significa "guarda este valor en esta variable". Se lee de derecha a izquierda: "guarda el valor 25 en la variable edad".
Reglas para nombrar variables
No puedes ponerle cualquier nombre a una variable. Hay reglas que debes seguir:
| Regla | Valido | Invalido |
|---|---|---|
| Solo letras, numeros y guion bajo | mi_nombre, edad2 | mi-nombre, mi nombre |
| No puede empezar con numero | dato1 | 1dato |
| No puede ser una palabra reservada | mi_class | class, if, for |
| Distingue mayusculas de minusculas | Edad y edad son diferentes | — |
nombre_completo, fecha_nacimiento, total_compra.
Puedes cambiar el valor de una variable en cualquier momento:
1puntos = 10
2print(puntos) # Muestra: 10
3
4puntos = 25
5print(puntos) # Muestra: 25
6
7puntos = puntos + 5
8print(puntos) # Muestra: 30
Tipos de datos basicos: int, float, str, bool
Cada valor que guardas en una variable tiene un tipo de dato. Python tiene cuatro tipos basicos que usaras constantemente:
int (numeros enteros)
Son numeros sin punto decimal. Se usan para contar cosas, edades, cantidades, etc.
1edad = 25
2cantidad = 100
3temperatura = -5
4anio = 2025
float (numeros decimales)
Son numeros con punto decimal. Se usan para precios, medidas, porcentajes, etc.
1precio = 19.99
2altura = 1.75
3pi = 3.14159
4porcentaje = 85.5
19.99, no 19,99.
str (cadenas de texto)
"str" viene de "string" (cadena en ingles). Son textos que van entre comillas, ya sean simples o dobles:
1nombre = "Maria"
2apellido = 'Lopez'
3mensaje = "Hola, bienvenido al curso"
4direccion = '123 Calle Principal'
5
6# Tambien puedes usar comillas triples para texto de varias lineas
7descripcion = """Este es un texto
8que ocupa varias
9lineas"""
bool (valores logicos)
"bool" viene de "booleano" (por el matematico George Boole). Solo tiene dos valores posibles: True (verdadero) o False (falso). Se usan para responder preguntas de si/no.
1es_mayor_de_edad = True
2tiene_descuento = False
3esta_lloviendo = True
4curso_completado = False
True y False van con la primera letra en mayuscula. Escribir true o false (en minuscula) causa un error en Python.
La funcion type(): como saber el tipo de una variable
Si alguna vez tienes duda sobre que tipo de dato contiene una variable, puedes usar la funcion type():
1nombre = "Maria"
2edad = 25
3altura = 1.68
4es_estudiante = True
5
6print(type(nombre)) # <class 'str'>
7print(type(edad)) # <class 'int'>
8print(type(altura)) # <class 'float'>
9print(type(es_estudiante)) # <class 'bool'>
La funcion type() te dice la "clase" (tipo) del valor. Es muy util cuando estas aprendiendo o cuando algo no funciona como esperabas y quieres verificar que tipo de dato estas usando.
Tambien puedes usarla directamente con valores:
1print(type(42)) # <class 'int'>
2print(type(3.14)) # <class 'float'>
3print(type("hola")) # <class 'str'>
4print(type(True)) # <class 'bool'>
Conversion de tipos (casting)
A veces necesitas convertir un tipo de dato en otro. Por ejemplo, convertir el texto "25" en el numero 25 para poder hacer operaciones matematicas. Esto se llama casting (conversion de tipos).
Python tiene funciones para convertir entre tipos:
1# Convertir a entero
2numero = int("25") # Convierte el texto "25" al numero 25
3print(numero + 5) # Muestra: 30
4
5# Convertir a decimal
6decimal = float("19.99") # Convierte el texto "19.99" al numero 19.99
7print(decimal) # Muestra: 19.99
8
9# Convertir a texto
10texto = str(100) # Convierte el numero 100 al texto "100"
11print("Tu puntaje es: " + texto) # Muestra: Tu puntaje es: 100
12
13# Convertir entre int y float
14entero = int(3.7) # Convierte 3.7 a 3 (elimina los decimales, NO redondea)
15decimal = float(5) # Convierte 5 a 5.0
int("hola") causa un error porque "hola" no es un numero. Solo puedes convertir textos que representen numeros validos.
¿Cuando necesitas hacer casting? Un caso muy comun es cuando lees datos del usuario (lo veremos mas adelante en este articulo). La funcion input() siempre devuelve texto, asi que si necesitas un numero, debes convertirlo:
1# Sin casting - esto no funciona como esperas
2edad_texto = "25"
3print(edad_texto + 5) # ERROR: no puedes sumar texto + numero
4
5# Con casting - esto si funciona
6edad_numero = int("25")
7print(edad_numero + 5) # Muestra: 30
Operaciones basicas con numeros
Python puede funcionar como una calculadora. Estas son las operaciones matematicas que puedes hacer:
| Operador | Operacion | Ejemplo | Resultado |
|---|---|---|---|
+ | Suma | 10 + 3 | 13 |
- | Resta | 10 - 3 | 7 |
* | Multiplicacion | 10 * 3 | 30 |
/ | Division | 10 / 3 | 3.3333 |
// | Division entera | 10 // 3 | 3 |
% | Modulo (residuo) | 10 % 3 | 1 |
** | Potencia | 2 ** 3 | 8 |
Veamos ejemplos practicos:
1# Operaciones basicas
2print(15 + 8) # 23
3print(20 - 7) # 13
4print(6 * 4) # 24
5print(15 / 4) # 3.75
6
7# Division entera (descarta los decimales)
8print(15 // 4) # 3
9
10# Modulo (el residuo de la division)
11print(15 % 4) # 3 (porque 15 = 4*3 + 3)
12
13# Potencia
14print(2 ** 10) # 1024 (2 elevado a la 10)
15
16# Puedes usar variables en las operaciones
17precio = 100
18descuento = 15
19precio_final = precio - descuento
20print(precio_final) # 85
21
22# Puedes combinar operaciones
23resultado = (10 + 5) * 2
24print(resultado) # 30
() para controlar el orden cuando lo necesites.
Operaciones con strings (texto)
Los textos tambien tienen sus propias operaciones. Veamos las mas utiles:
Concatenar (unir textos)
1nombre = "Maria"
2apellido = "Lopez"
3
4# Unir textos con +
5nombre_completo = nombre + " " + apellido
6print(nombre_completo) # Maria Lopez
Repetir textos
1linea = "-" * 30
2print(linea) # ------------------------------
3
4risa = "ja" * 5
5print(risa) # jajajajaja
Longitud de un texto: len()
1mensaje = "Hola Mundo"
2print(len(mensaje)) # 10 (cuenta todos los caracteres, incluyendo el espacio)
Slicing: obtener partes de un texto
Puedes extraer partes de un texto usando corchetes []. Cada caracter tiene una posicion (indice) que empieza desde 0:
1texto = "Python"
2# P y t h o n
3# 0 1 2 3 4 5
4
5print(texto[0]) # P (primer caracter)
6print(texto[1]) # y (segundo caracter)
7print(texto[-1]) # n (ultimo caracter)
8
9# Obtener un rango de caracteres [inicio:fin]
10print(texto[0:3]) # Pyt (desde posicion 0 hasta 3, sin incluir 3)
11print(texto[2:5]) # tho
12print(texto[:3]) # Pyt (desde el inicio hasta 3)
13print(texto[3:]) # hon (desde 3 hasta el final)
f-strings: la forma moderna de combinar texto y variables
La forma mas comoda de mezclar texto con variables en Python es usando f-strings. Solo pon una f antes de las comillas y mete las variables entre llaves {}:
1nombre = "Maria"
2edad = 25
3
4# Con f-string (forma recomendada)
5mensaje = f"Hola, me llamo {nombre} y tengo {edad} anios"
6print(mensaje) # Hola, me llamo Maria y tengo 25 anios
7
8# Puedes poner expresiones dentro de las llaves
9precio = 49.99
10print(f"El precio con IVA es: {precio * 1.16:.2f}") # El precio con IVA es: 57.99
Input del usuario: la funcion input()
Hasta ahora, todos los valores los hemos escrito directamente en el codigo. Pero en un programa real, a menudo necesitas pedirle informacion al usuario. Para eso existe la funcion input():
1# Pedir el nombre al usuario
2nombre = input("¿Como te llamas? ")
3print(f"¡Hola, {nombre}! Bienvenido al curso.")
Cuando Python llega a la linea input(), el programa se detiene y espera a que el usuario escriba algo y presione Enter. Lo que el usuario escribe se guarda en la variable.
input() siempre devuelve texto (tipo str), aunque el usuario escriba un numero. Si necesitas un numero, debes convertirlo con int() o float():
1# Esto NO funciona como esperas
2edad = input("¿Cuantos anios tienes? ")
3print(type(edad)) # <class 'str'> — es texto, no numero
4
5# Esto SI funciona
6edad = int(input("¿Cuantos anios tienes? "))
7print(type(edad)) # <class 'int'> — ahora si es numero
8print(f"En 5 anios tendras {edad + 5} anios")
Ejemplo practico: calculadora simple
Vamos a poner en practica todo lo que aprendimos creando una calculadora simple que le pide dos numeros al usuario y muestra los resultados de todas las operaciones. Crea un archivo llamado calculadora.py:
1# calculadora.py - Mi primera calculadora en Python
2
3print("=" * 40)
4print(" CALCULADORA PYTHON")
5print("=" * 40)
6
7# Pedir los numeros al usuario
8numero1 = float(input("Escribe el primer numero: "))
9numero2 = float(input("Escribe el segundo numero: "))
10
11# Realizar las operaciones
12suma = numero1 + numero2
13resta = numero1 - numero2
14multiplicacion = numero1 * numero2
15
16print()
17print(f"Resultados para {numero1} y {numero2}:")
18print("-" * 40)
19print(f" Suma: {numero1} + {numero2} = {suma}")
20print(f" Resta: {numero1} - {numero2} = {resta}")
21print(f" Multiplicacion: {numero1} * {numero2} = {multiplicacion}")
22
23# La division necesita cuidado especial (no dividir entre 0)
24if numero2 != 0:
25 division = numero1 / numero2
26 division_entera = numero1 // numero2
27 residuo = numero1 % numero2
28 print(f" Division: {numero1} / {numero2} = {division}")
29 print(f" Division entera: {numero1} // {numero2} = {division_entera}")
30 print(f" Residuo: {numero1} % {numero2} = {residuo}")
31else:
32 print(" Division: No se puede dividir entre 0")
33
34potencia = numero1 ** numero2
35print(f" Potencia: {numero1} ** {numero2} = {potencia}")
36print("-" * 40)
37print("¡Gracias por usar la calculadora!")
Ejecuta el programa con python calculadora.py y pruebalo con diferentes numeros. Aqui tienes un ejemplo de como se ve:
1========================================
2 CALCULADORA PYTHON
3========================================
4Escribe el primer numero: 10
5Escribe el segundo numero: 3
6
7Resultados para 10.0 y 3.0:
8----------------------------------------
9 Suma: 10.0 + 3.0 = 13.0
10 Resta: 10.0 - 3.0 = 7.0
11 Multiplicacion: 10.0 * 3.0 = 30.0
12 Division: 10.0 / 3.0 = 3.3333333333333335
13 Division entera: 10.0 // 3.0 = 3.0
14 Residuo: 10.0 % 3.0 = 1.0
15 Potencia: 10.0 ** 3.0 = 1000.0
16----------------------------------------
17¡Gracias por usar la calculadora!
if y no la entiendes todavia. Los condicionales (if/else) los veremos en detalle en un proximo articulo. Por ahora, solo debes saber que esa linea pregunta "¿el segundo numero es diferente de cero?" para evitar un error de division.
Resumen y proximo articulo
En este segundo articulo del curso hemos aprendido conceptos fundamentales:
- Variables son como cajas etiquetadas donde guardas datos
- Los cuatro tipos basicos:
int(enteros),float(decimales),str(texto),bool(verdadero/falso) - La funcion type() para verificar el tipo de una variable
- Casting para convertir entre tipos:
int(),float(),str() - Operaciones con numeros: suma, resta, multiplicacion, division, potencia, modulo
- Operaciones con texto: concatenar, repetir, longitud, slicing, f-strings
- La funcion input() para pedir datos al usuario
- Creamos una calculadora que combina todo lo aprendido
En el proximo articulo (Parte 3 de 10) aprenderemos sobre estructuras de control: condicionales — como hacer que tu programa tome decisiones usando if, elif y else. Esto es lo que hace que los programas sean realmente inteligentes.
¡Nos vemos en el siguiente articulo!
Comments
Sign in to leave a comment
No comments yet. Be the first!