0% encontró este documento útil (0 votos)
3 vistas14 páginas

Apuntes Python

apuntes_python.

Cargado por

María Cotarelo
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
3 vistas14 páginas

Apuntes Python

apuntes_python.

Cargado por

María Cotarelo
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Apuntes de Python

APUNTES DE PYTHON
Desde cero hasta ejercicios de examen
Objetivo: entender la sintaxis, saber programar ejercicios basicos y reconocer errores
tipicos.

Incluye: teoria, ejemplos comentados, patrones, ejercicios y chuleta final.

Pagina 1 de 14
Apuntes de Python

Indice
1. 1. Que es Python y como se ejecuta un programa
2. 2. Variables, tipos de datos y entrada/salida
3. 3. Operadores y expresiones
4. 4. Condicionales: if, elif, else
5. 5. Bucles: for y while
6. 6. Estructuras de datos: listas, tuplas, diccionarios y conjuntos
7. 7. Funciones: organizar codigo y reutilizar soluciones
8. 8. Strings: tratamiento de texto
9. 9. Ficheros: leer y escribir archivos
10. 10. Errores, excepciones y depuracion
11. 11. Numpy, matrices y calculo numerico basico
12. 12. Graficas con matplotlib
13. 13. Programacion orientada a objetos
14. 14. Patrones de examen y ejercicios resueltos
15. 15. Chuleta final

Pagina 2 de 14
Apuntes de Python

1. Que es Python y como se ejecuta un programa


Python es un lenguaje de programacion de alto nivel, muy usado porque su sintaxis es clara y permite
resolver problemas con pocas lineas. Se utiliza en calculo, automatizacion, analisis de datos, inteligencia
artificial, sonido, graficas, bases de datos y aplicaciones.

Idea clave
Programar no es memorizar comandos: es dividir un problema en pasos pequenos, ordenados y comprobables. Python
ejecuta esas instrucciones de arriba abajo, salvo que usemos condicionales, bucles o funciones.

Formas de trabajar
Forma Uso Ejemplo
Consola/interprete Probar instrucciones sueltas >>> 2 + 3
Archivo .py Guardar un programa completo python [Link]
Notebook Combinar codigo, texto y resultados Jupyter / Colab
IDE/editor Escribir, ejecutar y depurar VS Code, PyCharm, Thonny

Primer programa
# Esto es un comentario: Python no lo ejecuta
print("Hola, mundo")
print(2 + 3)

 print(...) muestra informacion por pantalla.


 Las comillas sirven para escribir texto: "Hola" o 'Hola'.
 Los comentarios empiezan por # y sirven para explicar el codigo.
 Python distingue mayusculas y minusculas: variable y Variable no son lo mismo.

2. Variables, tipos de datos y entrada/salida


Variables
Una variable es un nombre que guarda un valor. No hace falta declarar el tipo: Python lo deduce.
edad = 22
nombre = "Maria"
altura = 1.67
estudiante = True

print(nombre, edad, altura, estudiante)

Tipo Nombre en Python Ejemplo Para que sirve


Entero int 7 Contar elementos, indices,
edades
Decimal float 3.14 Medidas, notas, calculos
Texto str "violin" Nombres, frases, mensajes
Booleano bool True / False Condiciones y decisiones
Nulo NoneType None Ausencia de valor

Comprobar el tipo
x = 3.5
print(type(x)) # <class 'float'>

x = int(x)
print(x, type(x)) # 3 <class 'int'>

Pagina 3 de 14
Apuntes de Python

Entrada de datos: input


input() siempre devuelve texto. Si queremos numeros, hay que convertir.
nombre = input("Nombre: ")
edad = int(input("Edad: "))

print("Hola", nombre)
print("El ano que viene tendras", edad + 1)

Error tipico
Si haces edad = input("Edad: ") y luego edad + 1, dara error porque edad es texto. Solucion: edad = int(input("Edad: ")).

3. Operadores y expresiones
Operadores aritmeticos
Operador Significado Ejemplo Resultado
+ suma 3+2 5
- resta 3-2 1
* multiplicacion 3*2 6
/ division decimal 5/2 2.5
// division entera 5 // 2 2
% resto 5%2 1
** potencia 2 ** 3 8

Operadores de comparacion
Operador Lee como Ejemplo
== igual a x == 5
!= distinto de x != 5
< menor que x<5
<= menor o igual x <= 5
> mayor que x>5
>= mayor o igual x >= 5

Operadores logicos
edad = 20
tiene_carnet = True

puede_conducir = edad >= 18 and tiene_carnet


print(puede_conducir)

Operador Significado Ejemplo


and se cumplen ambas condiciones nota >= 5 and asistencia >= 80
or se cumple al menos una dia == "sabado" or dia == "domingo"
not niega una condicion not aprobado

4. Condicionales: if, elif, else


Los condicionales permiten que el programa tome decisiones. La indentacion es obligatoria: el bloque de
codigo que pertenece al if va desplazado hacia la derecha.
nota = float(input("Nota: "))

if nota >= 9:
print("Sobresaliente")
elif nota >= 7:
print("Notable")
Pagina 4 de 14
Apuntes de Python
elif nota >= 5:
print("Aprobado")
else:
print("Suspenso")

Regla de oro
En Python no se usan llaves { } para delimitar bloques. Se usa indentacion, normalmente 4 espacios. Si la indentacion
esta mal, aparece IndentationError.

Condiciones anidadas
edad = 19
carnet = True

if edad >= 18:


if carnet:
print("Puedes conducir")
else:
print("Eres mayor de edad, pero no tienes carnet")
else:
print("Eres menor de edad")

Forma abreviada
nota = 6
resultado = "aprobado" if nota >= 5 else "suspenso"
print(resultado)

5. Bucles: for y while


Un bucle repite instrucciones. Se usa for cuando sabemos cuantas veces queremos repetir o queremos
recorrer una secuencia. Se usa while cuando repetimos mientras se cumpla una condicion.

Bucle for con range


for i in range(5):
print(i)

# Muestra: 0, 1, 2, 3, 4

range Significado Valores


range(5) desde 0 hasta 5 sin incluir 5 0,1,2,3,4
range(2, 6) desde 2 hasta 6 sin incluir 6 2,3,4,5
range(1, 10, 2) desde 1 hasta 10 de 2 en 2 1,3,5,7,9

Recorrer listas
notas = [7, 8.5, 4, 9]

for nota in notas:


print(nota)

Bucle while
contador = 1

while contador <= 5:


print(contador)

Pagina 5 de 14
Apuntes de Python
contador += 1

Cuidado con el bucle infinito


Si la condicion de un while nunca deja de cumplirse, el programa no termina. Asegurate de modificar alguna variable
dentro del bucle.

break y continue
for n in range(1, 11):
if n == 5:
continue # salta esta vuelta
if n == 9:
break # termina el bucle
print(n)

6. Estructuras de datos
Listas
Una lista guarda varios valores en orden. Es modificable.
frutas = ["manzana", "pera", "uva"]
print(frutas[0]) # manzana
[Link]("kiwi") # anade al final
frutas[1] = "platano" # modifica
print(frutas)

Operacion Ejemplo Resultado/uso


Longitud len(lista) numero de elementos
Anadir [Link](x) anade x al final
Insertar [Link](0, x) anade x en posicion 0
Eliminar por valor [Link](x) quita la primera aparicion de x
Eliminar por indice [Link](i) quita y devuelve el elemento i
Ordenar [Link]() ordena la lista
Invertir [Link]() invierte el orden

Indices y slicing
numeros = [10, 20, 30, 40, 50]
print(numeros[0]) # 10
print(numeros[-1]) # 50
print(numeros[1:4]) # [20, 30, 40]
print(numeros[:3]) # [10, 20, 30]
print(numeros[::2]) # [10, 30, 50]

Tuplas
Una tupla es parecida a una lista, pero no se puede modificar. Se usa para datos fijos.
coordenada = (3, 5)
x, y = coordenada
print(x, y)

Diccionarios
Un diccionario guarda pares clave-valor. Es ideal para asociar datos: nombre-nota, producto-precio, palabra-
definicion.
alumna = {
"nombre": "Maria",
Pagina 6 de 14
Apuntes de Python
"edad": 22,
"instrumento": "violin"
}

print(alumna["nombre"])
alumna["nota"] = 9.5

for clave, valor in [Link]():


print(clave, valor)

Conjuntos
Un conjunto no tiene orden y no admite repetidos. Sirve para eliminar duplicados y hacer operaciones de
conjuntos.
numeros = [1, 2, 2, 3, 3, 3]
unicos = set(numeros)
print(unicos) # {1, 2, 3}

7. Funciones
Una funcion agrupa instrucciones bajo un nombre. Sirve para no repetir codigo y para dividir problemas
grandes en partes pequenas.
def saludar(nombre):
print("Hola", nombre)

saludar("Maria")

Funciones con return


def area_rectangulo(base, altura):
area = base * altura
return area

resultado = area_rectangulo(5, 3)
print(resultado)

print vs return
print muestra algo en pantalla. return devuelve un valor para poder guardarlo, usarlo en otra operacion o comprobarlo en
un test.

Parametros con valores por defecto


def presentar(nombre, instrumento="violin"):
print(nombre, "toca", instrumento)

presentar("Maria")
presentar("Ana", "piano")

Alcance de variables
x = 10 # variable global

def prueba():
x = 5 # variable local
print(x)

prueba() # 5

Pagina 7 de 14
Apuntes de Python
print(x) # 10

8. Strings: tratamiento de texto


Operaciones basicas
texto = "Python es util"
print([Link]()) # PYTHON ES UTIL
print([Link]()) # python es util
print([Link]("util", "claro"))
print([Link]()) # ['Python', 'es', 'util']

f-strings
Las f-strings permiten insertar variables dentro de un texto de forma clara.
nombre = "Maria"
nota = 8.75
print(f"{nombre} ha sacado un {nota:.1f}")

Recorrer caracteres
palabra = "violin"
contador = 0

for letra in palabra:


if letra in "aeiou":
contador += 1

print("Vocales:", contador)

9. Ficheros: leer y escribir archivos


Los ficheros permiten guardar datos fuera del programa. Lo mas habitual es trabajar con archivos .txt o .csv.

Escribir un archivo
with open("[Link]", "w", encoding="utf-8") as f:
[Link]("Primera linea
")
[Link]("Segunda linea
")

Leer un archivo
with open("[Link]", "r", encoding="utf-8") as f:
contenido = [Link]()

print(contenido)

Leer linea a linea


with open("[Link]", "r", encoding="utf-8") as f:
for linea in f:
print([Link]())

Pagina 8 de 14
Apuntes de Python

Modos de apertura
Modo Significado
"r" leer; el archivo debe existir
"w" escribir; borra lo anterior si existe
"a" anadir al final
"x" crear; falla si ya existe

10. Errores, excepciones y depuracion


Errores frecuentes
Error Que significa Ejemplo
SyntaxError La sintaxis esta mal if x > 3 falta :
NameError Variable no definida print(nota) sin haber creado nota
TypeError Operacion con tipos incompatibles "3" + 2
ValueError Conversion imposible int("hola")
IndexError Indice fuera de rango lista[10]
KeyError Clave inexistente en diccionario dic["edad"]
IndentationError Indentacion incorrecta bloque sin 4 espacios

try-except
try:
edad = int(input("Edad: "))
print("El ano que viene:", edad + 1)
except ValueError:
print("Debes escribir un numero entero")

Como depurar
 Lee el mensaje de error de abajo hacia arriba: la ultima linea suele decir el tipo de error.
 Mira el numero de linea indicado.
 Usa print para comprobar el valor de las variables en puntos importantes.
 Prueba el programa con casos pequenos antes de hacerlo con muchos datos.
 Divide el problema en funciones: es mas facil encontrar donde falla.

11. Numpy, matrices y calculo numerico basico


Numpy es una biblioteca para calculo numerico. Permite trabajar con vectores, matrices y operaciones
matematicas de forma eficiente.

Importar numpy
import numpy as np

v = [Link]([1, 2, 3])
print(v + 10) # [11 12 13]
print(v * 2) # [2 4 6]

Vectores y matrices
import numpy as np

A = [Link]([[1, 2],
[3, 4]])
b = [Link]([5, 6])

print([Link]) # (2, 2)
print(A @ b) # producto matriz-vector

Pagina 9 de 14
Apuntes de Python
print(A.T) # traspuesta

Funciones utiles
Funcion Uso
[Link]([...]) crear vector o matriz
[Link]((m,n)) matriz de ceros
[Link]((m,n)) matriz de unos
[Link](a,b,n) n valores entre a y b
[Link](v) media
[Link](v) desviacion tipica
[Link](v), [Link](v) maximo y minimo
[Link](A,b) resolver Ax = b

Resolver un sistema lineal


import numpy as np

# 2x + y = 5
# x - y = 1
A = [Link]([[2, 1],
[1, -1]])
b = [Link]([5, 1])

x = [Link](A, b)
print(x)

Importante
Con listas normales, [1,2,3] * 2 repite la lista. Con arrays de numpy, [Link]([1,2,3]) * 2 multiplica cada elemento.

12. Graficas con matplotlib


matplotlib sirve para representar datos y funciones. Es muy util para estudiar resultados de calculo, fisica,
sonido o estadistica.
import numpy as np
import [Link] as plt

x = [Link](0, 2*[Link], 200)


y = [Link](x)

[Link](x, y)
[Link]("x")
[Link]("sin(x)")
[Link]("Funcion seno")
[Link](True)
[Link]()

Grafica de puntos
import [Link] as plt

horas = [1, 2, 3, 4, 5]
notas = [4, 5, 6, 7, 8]

[Link](horas, notas)
[Link]("Horas de estudio")
[Link]("Nota")
[Link]()

Pagina 10 de 14
Apuntes de Python

Guardar una grafica


[Link]("[Link]", dpi=300, bbox_inches="tight")

13. Programacion orientada a objetos


La programacion orientada a objetos organiza el codigo en clases y objetos. Una clase es como una plantilla;
un objeto es un caso concreto de esa plantilla.
class Instrumento:
def __init__(self, nombre, familia):
[Link] = nombre
[Link] = familia

def describir(self):
return f"{[Link]} pertenece a {[Link]}"

violin = Instrumento("violin", "cuerda")


print([Link]())

Concepto Significado
Clase Plantilla que define atributos y metodos
Objeto Instancia concreta de una clase
Atributo Dato del objeto: nombre, edad, nota...
Metodo Funcion dentro de una clase
self Referencia al propio objeto
__init__ Constructor: se ejecuta al crear el objeto

14. Patrones de examen y ejercicios resueltos


Patron 1: sumar elementos de una lista
numeros = [4, 7, 2, 9]
suma = 0

for n in numeros:
suma += n

print(suma)

Patron 2: contar cuantos cumplen una condicion


notas = [4, 7, 8, 3, 10]
aprobados = 0

for nota in notas:


if nota >= 5:
aprobados += 1

print(aprobados)

Patron 3: maximo y minimo


numeros = [8, 3, 12, 5]
maximo = numeros[0]

for n in numeros:
if n > maximo:
maximo = n

Pagina 11 de 14
Apuntes de Python

print(maximo)

Patron 4: construir una nueva lista


numeros = [1, 2, 3, 4, 5]
cuadrados = []

for n in numeros:
[Link](n**2)

print(cuadrados)

Patron 5: validar entrada


while True:
nota = float(input("Nota entre 0 y 10: "))
if 0 <= nota <= 10:
break
print("Nota no valida")

print("Nota guardada:", nota)

Ejercicio resuelto 1: media de notas


Enunciado: pedir notas hasta que el usuario escriba -1. Calcular la media.
notas = []

while True:
nota = float(input("Nota (-1 para terminar): "))
if nota == -1:
break
[Link](nota)

if len(notas) > 0:
media = sum(notas) / len(notas)
print("Media:", media)
else:
print("No hay notas")

Ejercicio resuelto 2: frecuencia de palabras


Enunciado: contar cuantas veces aparece cada palabra en una frase.
frase = "python es facil y python es util"
palabras = [Link]()
conteo = {}

for palabra in palabras:


if palabra in conteo:
conteo[palabra] += 1
else:
conteo[palabra] = 1

print(conteo)

Ejercicio resuelto 3: filtrar numeros pares


numeros = [1, 2, 3, 4, 5, 6]
pares = []

Pagina 12 de 14
Apuntes de Python

for n in numeros:
if n % 2 == 0:
[Link](n)

print(pares)

Ejercicios para practicar


16. Pide dos numeros y muestra suma, resta, multiplicacion y division.
17. Pide una edad e indica si la persona es menor de edad, adulta o jubilada.
18. Dada una lista de notas, calcula media, maxima, minima y numero de aprobados.
19. Pide una palabra y cuenta cuantas vocales tiene.
20. Crea una funcion que reciba una lista y devuelva solo los valores positivos.
21. Crea una funcion que diga si un numero es primo.
22. Lee un archivo de texto y cuenta cuantas lineas tiene.
23. Representa y = x^2 para x entre -10 y 10 con matplotlib.
24. Crea una matriz 3x3 con numpy y calcula su traspuesta.
25. Crea una clase Alumno con nombre, nota y un metodo que diga si ha aprobado.

15. Chuleta final


Sintaxis imprescindible
Necesito... Codigo base
Mostrar print(x)
Pedir texto x = input("Texto: ")
Pedir entero x = int(input("Numero: "))
Pedir decimal x = float(input("Numero: "))
Condicion if condicion:
...
else:
...
Bucle for for x in secuencia:
...
Bucle while while condicion:
...
Funcion def nombre(parametros):
return valor
Lista vacia lista = []
Anadir a lista [Link](x)
Diccionario vacio dic = {}
Recorrer diccionario for clave, valor in [Link]():

Como pensar un ejercicio


26. Lee el enunciado y subraya entradas, proceso y salida.
27. Crea variables con nombres claros.
28. Haz primero una version simple, aunque no sea perfecta.
29. Comprueba con un ejemplo pequeno hecho a mano.
30. Anade validaciones y casos especiales: lista vacia, division entre cero, texto donde esperas numero.
31. Ordena el codigo en funciones si empieza a hacerse largo.

Checklist antes de entregar


 No hay variables sin definir.
 Los input numericos se convierten con int o float.
 Los bloques if, for, while y def tienen dos puntos y buena indentacion.
 Los indices de listas no se salen del rango.
 No confundes = con ==.
 El programa funciona con un caso normal y con un caso limite.
 Los nombres de variables explican que guardan.

Pagina 13 de 14
Apuntes de Python

Resumen mental
Variable = guarda datos. If = decide. For/while = repite. Lista/diccionario = organiza muchos datos. Funcion = reutiliza.
Try-except = evita que un error rompa el programa. Numpy = calculo numerico. Matplotlib = graficas.

Mini resumen en una pagina


Tema Lo minimo que debes recordar
Variables nombre = valor; Python deduce el tipo
Tipos int, float, str, bool, list, tuple, dict, set
Condicionales if / elif / else con indentacion
Bucles for para recorrer; while mientras se cumpla condicion
Listas ordenadas y modificables; indices desde 0
Diccionarios pares clave-valor; muy utiles para conteos
Funciones def nombre(...): return ...
Ficheros with open(...) as f:
Errores leer el traceback y probar por partes
Numpy arrays, matrices, solve, mean, std
Matplotlib plot/scatter, xlabel, ylabel, title, show

Pagina 14 de 14

También podría gustarte