Variables y Tipos de Datos
## Objetivos de Aprendizaje
- Entender el tipado dinámico de Python
- Dominar los tipos de datos básicos
- Aprender conversión de tipos
- Trabajar con verificación de tipos
## Variables
### Crear Variables
```python
x = 5 # Entero
nombre = "Ana" # Cadena
pi = 3.14 # Flotante
es_activo = True # Booleano
```
### Tipado Dinámico
Las variables en Python pueden cambiar de tipo:
```python
x = 5 # int
x = "hola" # Ahora es str
x = 3.14 # Ahora es float
```
## Tipos de Datos Básicos
### Enteros (int)
```python
edad = 25
negativo = -10
numero_grande = 1_000_000 # Guion bajo para legibilidad
binario = 0b1010 # 10 en binario
hexadecimal = 0xFF # 255 en hex
octal = 0o77 # 63 en octal
```
### Flotantes (float)
```python
pi = 3.14159
cientifico = 1.5e10 # 1.5 * 10^10
negativo = -0.5
```
### Cadenas (str)
```python
nombre = "Ana"
saludo = 'Hola'
multi_linea = """
Esto es una
cadena de
varias líneas
"""
crudo = r"C:\Users\Nombre" # Cadena cruda (sin caracteres de escape)
```
### Booleanos (bool)
```python
es_activo = True
es_valido = False
```
### Tipo None
```python
resultado = None
```
## Verificación de Tipos
### Función type()
```python
x = 5
print(type(x)) #
nombre = "Ana"
print(type(nombre)) #
```
### isinstance()
```python
x = 5
print(isinstance(x, int)) # True
print(isinstance(x, str)) # False
print(isinstance(x, (int, float))) # True (int o float)
```
## Conversión de Tipos
### Conversión Explícita
```python
# int a float
x = 5
print(float(x)) # 5.0
# float a int (trunca)
y = 3.7
print(int(y)) # 3 (¡no 4!)
# a cadena
x = 5
print(str(x)) # "5"
# cadena a int/float
num = "42"
print(int(num)) # 42
print(float(num)) # 42.0
```
### Cadena a Lista
```python
texto = "hola"
print(list(texto)) # ['h', 'e', 'l', 'l', 'o']
```
### Lista a Cadena
```python
chars = ['h', 'e', 'l', 'l', 'o']
print("".join(chars)) # "hola"
```
## Formateo de Cadenas
### f-strings (Python 3.6+)
```python
nombre = "Ana"
edad = 30
print(f"Me llamo {nombre} y tengo {edad}")
print(f"En 5 años: {edad + 5}")
print(f"Pi: {3.14159:.2f}") # 3.14
```
### Método format()
```python
nombre = "Ana"
print("Hola, {}".format(nombre))
print("{1} y {0}".format("Bob", "Ana"))
print("{nombre} tiene {edad}".format(nombre="Ana", edad=30))
```
### Operador %
```python
nombre = "Ana"
print("Hola, %s" % nombre)
print("%s tiene %d años" % (nombre, 30))
```
## Mutable vs Inmutable
### Tipos Inmutables
- int, float, str, tuple, frozenset
```python
# Las cadenas son inmutables
s = "hola"
# s[0] = "H" # ¡Error!
s = "Hola" # Crea nueva cadena
# Las tuplas son inmutables
t = (1, 2, 3)
# t[0] = 4 # ¡Error!
```
### Tipos Mutables
- list, dict, set
```python
# Las listas son mutables
nums = [1, 2, 3]
nums[0] = 10 # OK
nums.append(4) # OK
# Los diccionarios son mutables
d = {"a": 1}
d["b"] = 2 # OK
```
## Nomenclatura de Variables
### Reglas
- Empezar con letra o guion bajo
- Pueden contener letras, números, guiones bajos
- Distinguen mayúsculas de minúsculas
```python
nombre_valido = "ok"
_privado = "oculto"
camelCase = "no preferido en Python"
CONSTANTE = "usar MAYUSCULAS"
```
### Palabras Reservadas
```python
# No uses estas como nombres de variables
# False, None, True, and, as, assert, async, await,
# break, class, continue, def, del, elif, else, except,
# finally, for, from, global, if, import, in, is,
# lambda, nonlocal, not, or, pass, raise, return, try,
# while, with, yield
```
## Asignación Múltiple
```python
x, y, z = 1, 2, 3
a = b = c = 0 # Todos iguales a 0
```
## Intercambiar Variables
```python
a, b = 1, 2
a, b = b, a # Intercambio simple
print(a, b) # 2, 1
```
## Resumen
- Python usa tipado dinámico
- Tipos básicos: int, float, str, bool, None
- Usa `type()` e `isinstance()` para verificar tipos
- Convierte tipos con `int()`, `float()`, `str()`, etc.
- Las cadenas son inmutables; las listas y dicts son mutables
- Usa f-strings para formateo de cadenas
- Nombres de variables: letras, números, guiones bajos; distinguen mayúsculas
Comments
Comments powered by Giscus
To enable comments, add your Giscus embed code here.
Learn more about Giscus →