Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Ayuda con Funciones en Python
#1
            Hola a todos. Tengo el siguiente inconveniente: necesito transformar un código de Python a funciones pero no sé qué estoy haciendo mal. El planteamiento del problema original es este: Se requiere un programa que calcule el volumen del paquete teniendo en cuenta su altura, su ancho y su profundidad. El costo del paquete será de 5 veces su volumen. Adicional a esto, si el paquete tiene más de 30 cm de ancho, su costo de envío aumenta en $2.000 y si este costo de envío es mayor a $10.000, se le debe aumentar un impuesto del 19%.

Luego de esto, se hizo una modificación al programa y ese código se ingresó en un ciclo For ya que el programa debe pedirle al usuario que digite el número de paquetes al cual se le va a hacer el proceso anteriormente mencionado y que también ingrese un número entre 1 y 100 para aplicarle un descuento. Este es el código que se encuentra adjunto en la imagen llamada "Codigo1".

Ahora, me están pidiendo que se debe tomar este código y separarlo en dos funciones: calcularCosto(alto, ancho, profundo) y costoTotal(numeroPaquetes, descuento). La primera función, calcularCosto(alto, ancho, profundo), debe contener el código que calcula el costo de un paquete dado su volumen, pero sin las impresiones en pantalla. La segunda función, costoTotal(numeroPaquetes, descuento), deberá solicitar los datos de cada paquete el número de veces que el parámetro numeroPaquetes indique pero sin las impresiones en pantalla. La función calcularCosto debe RETORNAR el costo del paquete, mientras que la función costoTotal debe RETORNAR el costo acumulado de los paquetes que ha leído, con el descuento que se envíe como parámetro.

La primera función, que trabaja bien, se encuentra en la imagen llamada "Funcion1". Pero, para la segunda función, no sé qué hacer. Es la que ven en la imagen que se llama "Funcion2". Esta otra función siempre me genera varios errores ya que solo entra una vez en el ciclo For y el cálculo no se realiza correctamente ni para el valorTotal que está dentro del For, ni al momento de aplicar el descuento. ¿Me pueden ayudar, por favor? Muchas gracias de antemano.
Responder
#2
Hola. Por favor la próxima pegá el código directamente en el mensaje, porque se hace difícil probar las funciones con capturas de pantalla.

Código:
def costoTotal(numeroPaquetes, descuento):
    for i in range(1, (numeroPaquetes + 1)):
        calcularCosto(alto, ancho, profundo)
        valorTotal = valorTotal + calcularCosto(alto, ancho, profundo)
    descuento = descuento / 100
    valorTotal = valorTotal - (valorTotal * descuento)
    return valorTotal

Aquí en principio veo el siguiente problema: en la línea 4 estás sumando valorTotal al resultado de la función, pero la primera vez que se ejecute el bucle no habrá ninguna variable creada con ese nombre, por lo cual tirará un error. Deberías inicializar la variable antes del bucle. Por otro lado, la llamada a calcularCosto() en la línea 3 es innecesaria, porque no estás usando el valor de retorno. Haciendo estos arreglos, quedaría así:

Código:
def costoTotal(numeroPaquetes, descuento):
    valorTotal = 0
    for i in range(1, (numeroPaquetes + 1)):
        valorTotal = valorTotal + calcularCosto(alto, ancho, profundo)
    descuento = descuento / 100
    valorTotal = valorTotal - (valorTotal * descuento)
    return valorTotal

Saludos
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)