Powered By Blogger

domingo, 12 de noviembre de 2023

EJERCICIOS Y PROBLEMAS DE APLICACION EN PYTHON

INTRODUCCION A PYTHON

La URL del GOOGLE Colab donde se ejecutaron los códigos Python es: https://colab.research.google.com/drive/1N42EAGAugLli8118UeMtMydLIRBjiq-k#scrollTo=_N3WfJtOp0zU

La URL del ChatGPT donde se corrigieron los errores es: https://chat.openai.com/c/32e756ee-b4ec-4e65-b350-0346d970d5e2

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:

Usuario
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
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.

Usuario
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
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:

  1. with open('archivo.txt', 'r') as f:: Esta línea abre el archivo 'archivo.txt'en modo de lectura ( 'r'). El uso de withgarantizar 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.

  2. texto = f.read(): Esta línea lee todo el contenido del archivo y lo almacena en la variable texto.

  3. 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.

  4. 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

Usuario
expresa en código Python
ChatGPT
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-exceptpara 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:
pip install numpy

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+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

2.55
5.05


7. SymPy

7.1 Variables simbólicas

Ejercicio 9: Resolver la ecuación cuadrática 2++=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, Eqy solvede la biblioteca SymPy.
  • Definimos los símbolos a, b, cy x.
  • Creamos la ecuación cuadrática usando Eq.
  • Resolvemos la ecuación con respecto a xusando solve.

Este código te dará las soluciones de la ecuación cuadrática en términos de a, by c. Si deseas probarlo con valores específicos para a, by c, puedes sustituir esos valores en la ecuación antes de resolverla.



No hay comentarios.:

Publicar un comentario

INDICE DE MI BLOG

  INDICE DE ARCHIVOS del Blog    Ø     MODULO III:   ANALISIS de DATOS con PYTHON y ASISTENTES INTELIGENTES     Publicada el 15 de Noviemb...