Python - Calcular precio de venta según el día de pago de la factura

 
Vista:
sin imagen de perfil

Calcular precio de venta según el día de pago de la factura

Publicado por tami (3 intervenciones) el 02/04/2020 10:32:02
Una empresa factura a sus clientes el último día de cada mes. Si el cliente paga su factura dentro de los primeros 10 días del mes siguiente, tiene un descuento de $120 o del 2% de la factura, lo que resulte menor. Si paga en los siguientes 10 días del mes deberá pagar el importe original de la factura, mientras que si paga después del día 20 deberá abonar una multa de $150 o del 10% de su factura, lo que resulte mayor. Desarrolle un programa que lea el número del cliente y el total de la factura, y emita un informe donde conste el número del cliente y los tres importes que podrá abonar según la fecha de pago.

solamente puedo usar las cuentas onda suma resta porcentaje, etc (lo basico) y me acaban de enseñar a usar if elif else y eso (lo de ==, <=, >=; !=). asi que supongo lo tengo que relacionar, pero no se me puede ocurrir como hacerlo. Me quedan un monton de variables y no se como hacer que sean menos. graciasssssssss
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Calcular precio de venta según el día de pago de la factura

Publicado por joel (901 intervenciones) el 02/04/2020 11:15:06
Hola Tami, que parte llevas realizada?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Calcular precio de venta según el día de pago de la factura

Publicado por tami (3 intervenciones) el 02/04/2020 11:30:18
emm me da verguenza mostrar porque es un desastre pero por ahora hice esto

1
2
3
4
5
6
7
8
9
n = int(input("ingrese fecha: "))
if n >=10:
     n-120
    print("monto con $120 de descuento:")
elif n<10:
    print("monto original:")
else n <=20:
    n+150
    print("monto con $150 de recargo:")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Calcular precio de venta según el día de pago de la factura

Publicado por tami (3 intervenciones) el 02/04/2020 11:46:20
elif n<10 and n<20:
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Calcular precio de venta según el día de pago de la factura

Publicado por joel (901 intervenciones) el 02/04/2020 14:16:32
Perfecto Tami...esta bien!!! modificando un poco tu código quedaría así:

1
2
3
4
5
6
7
8
9
10
11
f = int(input("importe factura: "))
n = int(input("ingrese dias: "))
 
if n<10:
    totalCobrar = f-120 if 120<f-(f/1.02) else f-(f*0.02)
elif n<20:
    totalCobrar = f
else:
    totalCobrar = f+150 if f+150<f+(f*0.1) else f*1.1
 
print("Hay que cobrar", totalCobrar)

Ya nos comentaras si te sirve.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Calcular precio de venta según el día de pago de la factura

Publicado por Novato (1 intervención) el 02/04/2020 15:31:22
En la línea 2, Cuando divides el importe por 1,02 no estás comparando con el 2% sino con el 1,96078431372549. lo cual va en perjuicio de los clientes que compren más de 6000 y menos de 6.120, y paguen en los primeros diez días, pues recibirán un descuento menor 2% y menor a 120, lo cual viola la condición ya que el 2% será mayor y por tanto deberían recibir 120.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Calcular precio de venta según el día de pago de la factura

Publicado por Agustin (1 intervención) el 02/04/2020 13:14:25
Para mi creo que la mejor decision es guardar toda la info primero:
1
2
3
4
fecha = int(input("Ingrese la fecha: "))
importe = int(input("Ingrese el importe: "))
importe_descuento = 0 //variable para guardar el precio con el descuento hecho
importe_recargo = 0 //lo mismo que el anterior pero con recargo

Una vez ingresado es crear el if necesario para ver si se hace el descuento y dentro de el comparar que descuento es mas bajo, si con el precio fijo o con el porcentaje:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if fecha <= 10:
    if importe-120 < importe*(1-(2/100)):  //si no me equivoco esa es la ecuacion de descuento
        importe_descuento = importe - 120
        print("El importe final es", importe_descuento)
    else:
        importe_descuento =  importe-(100*(2/importe))
        print("El importe final es", importe_descuento)
//ahora hacemos lo mismo pero aumentando
elif fecha > 20:
    if importe+150 > importe*(1+(10/100)):
        importe_recargo = importe+150
        print("El importe final es", importe_recargo)
    else:
        importe_recargo = importe*(1+(10/100))
        print("El importe final es", importe_recargo)
//Y falta el else para el caso de que sea entre el dia 10 y el 20 y no se tenga que hacer nada
else:
    print("El importe no adquiere ningun descuento ni recargo")


No se si te servira de mucho pero bueno, creo que por ahi van los tiros. Un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Corrección

Publicado por Francisco (2 intervenciones) el 09/04/2020 17:12:09
El ejercicio esta casi perfecto, hay un pequeño error al momento de colocar los simbolos < y > cuando se calculen los importes.
El ejercicio final quedaría asi...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
fecha= int(input("Ingrese la fecha= "))
importe= int(input("Ingrese el importe= "))
imp_desc= 0
imp_rec= 0
 
if fecha <= 10:
    if importe-120 > importe*(1-(2/100)):
        imp_desc = importe - 120
        print("El importe final es", imp_desc)
    else:
        imp_desc =  importe-(100*(2/importe))
        print("El importe final es", imp_desc)
 
elif fecha > 20:
    if importe+150 < importe*(1+(10/100)):
        imp_rec = importe+150
        print("El importe final es", imp_rec)
    else:
        imp_rec = importe*(1+(10/100))
        print("El importe final es", imp_rec)
 
else:
    print("El importe no adquiere ningun descuento ni recargo")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar