INTRODUCCION A PYTHON
1. Introducción a Python
1.2 Manejo básico de Python
Ejercicio 1: Escribir un programa que pida al usuario ingresar dos números y luego imprima la suma, la resta, la multiplicación y la división de ambos.
# Código de ejemplo
num1 = float(input("Ingrese el primer número: "))
num2 = float(input("Ingrese el segundo número: "))
print(f"La suma es: {num1 + num2}")
print(f"La resta es: {num1 - num2}")
print(f"La multiplicación es: {num1 * num2}")
if num2 != 0:
print(f"La división es: {num1 / num2}")
else:
print("La división por cero no está permitida")
RESPUESTA
Ingrese el primer número: 15
Ingrese el segundo número: 20
La suma es: 35.0
La resta es: -5.0
La multiplicación es: 300.0
La división es: 0.75
1.3 IPython Notebook
Ejercicio 2: Crear una celda en un Jupyter Notebook que calcule el factorial de un número.
import math
n = 8
math.factorial(n)
RESPUESTA
40320
2. El Lenguaje Python
2.3 Control de flujo
Ejercicio 3: Escribir un programa que imprima los números del 1 al 10 usando un bucle "for".
for i in range(1, 11):
print(i)
RESPUESTA
1
2
3
4
5
6
7
8
9
10
2.4 Funciones definidas por el usuario
Ejercicio 4: Crear una celda en un Jupyter Notebook que calcule el factorial de un circulo
def area_circulo(radio):
return 3.14159 * radio ** 2
area_circulo(5)
RESPUESTA
78.53975
3. Aspectos avanzados
3.2 Entrada y salida de datos
Ejercicio 5: Escribir un programa que lea un archivo de texto y cuente el número de palabras en él.
with open('archivo.txt', 'r') as f:
texto = f.read()
palabras = texto.split()
print(f'El número de palabras en el archivo es: {len(palabras)}')
---------------------------------------------------------------------------
FileNotFoundError
Traceback (most recent call last)
<ipython-input-9-31ea2b915622> in <cell line: 1>()
----> 1 with open('archivo.txt', 'r') as f:
2 texto = f.read()
3 palabras = texto.split()
4 print(f'El número de palabras en el archivo es: {len(palabras)}')
FileNotFoundError: [Errno 2] No such file or directory: 'archivo.txt'
El error que sale como respuesta se lleva a ChatGPT-4 para buscar solución, y esto es lo obtenido:
Tú
Arregla el siguiente código que busca escribir un programa que lea un archivo de texto y cuente el número de palabras en él:
ChatGPT
Por supuesto, Juan. Para ayudarte a corregir el código, necesitarás ver el código actual que estás utilizando. ¿Podrías proporcionarme el código que has escrito hasta ahora para contar el número de palabras en un archivo de texto? Esto me permitirá entender mejor el problema y recomendarle una solución adecuada.
Tú
with open('archivo.txt', 'r') as f: texto = f.read() palabras = texto.split() print(f'El número de palabras en el archivo es: {len(palabras)}' )
ChatGPT
El código que se ha proporcionado para contar el número de palabras en un archivo de texto parece estar correcto. Este código abrirá el archivo 'archivo.txt'
, leerá su contenido en la variable texto
, luego dividirá este texto en palabras usando el método .split()
, y finalmente imprimirá el número de palabras utilizando len(palabras)
.
Aquí hay una explicación detallada de cada paso:
with open('archivo.txt', 'r') as f:
: Esta línea abre el archivo 'archivo.txt'
en modo de lectura ( 'r'
). El uso de with
garantizar que el archivo se cierre automáticamente después de que el bloque de código interno se ejecute, lo cual es una buena práctica para manejar archivos.
texto = f.read()
: Esta línea lee todo el contenido del archivo y lo almacena en la variable texto
.
palabras = texto.split()
: Aquí, el contenido del archivo (ahora en texto
) se divide en palabras utilizando el método .split()
. Por defecto, .split()
divide el texto usando espacios en blanco como delimitadores, lo cual es adecuado para la mayoría de los textos en inglés y en muchos otros idiomas.
print(f'El número de palabras en el archivo es: {len(palabras)}')
: Finalmente, esta línea imprime el número total de palabras, que se calcula con len(palabras)
.
Si este código no funciona como esperas, podría deberse a problemas externos
ChatGPT
Claro, Juan. Si deseas expresar en código Python el proceso de contar las palabras en un archivo de texto, el código que proporcionaste anteriormente es un buen ejemplo. Sin embargo, voy a agregar un par de mejoras para manejar posibles errores, ya que el archivo no existe o está vacío. Aquí tienes una versión mejorada:
try:
with open('archivo.txt', 'r') as f:
texto = f.read()
if texto:
palabras = texto.split()
print(f'El número de palabras en el archivo es: {len(palabras)}')
else:
print('El archivo está vacío.')
except FileNotFoundError:
print('El archivo no se encontró.')
RESPUESTA: El archivo no se encontró.
En éste código: Se usa un bloque try-except
para manejar la excepción FileNotFoundError
. Esto evitará que el programa se detenga abruptamente si el archivo no se encuentra.
- Se agrega una comprobación para ver si el archivo está vacío. En caso de que el archivo no tenga contenido, se imprime un mensaje indicando que está vacío.
Este código es más robusto y proporcionará mensajes de error claros en caso de que algo no vaya bien al intentar leer el archivo.
4. NumPy
4.1 Arrays
Ejercicio 6: Crear un array de NumPy con 10 elementos, lleno de ceros.
import numpy as np
array_ceros = np.zeros(10)
Se instala numpy y nuevamente se ejecuta:
import numpy as np
# Crear un array de 10 ceros
array_de_ceros = np.zeros(10)
print(array_de_ceros)
RESPUESTA:
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
5. SciPy
5.1 Optimización
Ejercicio 7: Utilizar SciPy para encontrar el mínimo de la función
�2+4�+8f(x)=x2+4x+8.
from scipy.optimize import minimize
def funcion_objetivo(x):
return x ** 2 + 4 * x + 8
RESULTADO: minimize(funcion_objetivo, x0=0)
6. Gráficos con Matplotlib
6.1 Gráficos interactivos
Ejercicio 8: Crear un gráfico interactivo que permita visualizar una función sinusoidal, permitiendo ajustar la amplitud y la frecuencia.
pip install matplotlib ipywidgets
import numpy as np
import matplotlib.pyplot as plt
from ipywidgets import interactive
def plot_sinusoidal(amplitud, frecuencia):
# Definir el rango del eje x
x = np.linspace(0, 2 * np.pi, 1000)
# Calcular los valores de y usando la función sinusoidal
y = amplitud * np.sin(frecuencia * x)
# Crear el gráfico
plt.figure(figsize=(10, 4))
plt.plot(x, y)
plt.title('Gráfico de la función sinusoidal')
plt.xlabel('x')
plt.ylabel('sin(x)')
plt.grid(True)
plt.show()
# Crear controles interactivos para amplitud y frecuencia
interactive_plot = interactive(plot_sinusoidal, amplitud=(0.1, 5.0), frecuencia=(0.1, 10.0))
interactive_plot
7. SymPy
7.1 Variables simbólicas
Ejercicio 9: Resolver la ecuación cuadrática ax2+bx+c=0 usando SymPy.
from sympy import symbols, Eq, solve
a, b, c, x = symbols('a b c x')
ecuacion = Eq(a * x**2 + b * x + c, 0)
solucion = solve(ecuacion, x)
Corrigiendo con ChatGPT-4 resulta el código siguiente:
from sympy import symbols, Eq, solve
# Definir los símbolos
a, b, c, x = symbols('a b c x')
# Crear la ecuación
ecuacion = Eq(a * x**2 + b * x + c, 0)
# Resolver la ecuación
solucion = solve(ecuacion, x)
print(solucion)
RESULTADO: [(-b - sqrt(-4*a*c + b**2))/(2*a), (-b + sqrt(-4*a*c + b**2))/(2*a)]
En este código:
- Importamos
symbols
, Eq
y solve
de la biblioteca SymPy. - Definimos los símbolos
a
, b
, c
y x
. - Creamos la ecuación cuadrática usando
Eq
. - Resolvemos la ecuación con respecto a
x
usando solve
.
Este código te dará las soluciones de la ecuación cuadrática en términos de a
, b
y c
. Si deseas probarlo con valores específicos para a
, b
y c
, puedes sustituir esos valores en la ecuación antes de resolverla.
No hay comentarios.:
Publicar un comentario