Python - Ayuda con un ejercicio de la universidad Python

 
Vista:
sin imagen de perfil
Val: 12
Ha disminuido su posición en 5 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda con un ejercicio de la universidad Python

Publicado por guille (4 intervenciones) el 16/10/2020 10:43:34
Hola estoy en 1er año de Ing. Informatica y soy nuevo en programacion. En la universidad me pidieron realizar un ejercicio que no entiendo, estamos viendo ciclo repetitivos While y For si me ayudan lo agradeceria. Los profesores no ayudan en nada.
#Elaborar un algoritmo que, dada una lista de varios artículos, teniendo como datos la
#descripción y el número de unidades producidas. El costo se calcula multiplicando el
#número de unidades producidas por el factor de costo de materiales de 3.5 y
#sumándole al producto un costo fijo de $ 356. Se pide:

# Un métodos para cargar ambas listas (No recibe en parámetros, y NO
#devuelve valor) Ayuda (Considere usar variables globales)
# Un métodos que calcule para cada artículo el costo (Recibe en parámetros, y
#devuelve valor, es decir la lista de precios)
# Un método que determine el máximo a recaudar ​(Como desee)
# Un método que calcule el total a recaudar ​(Como desee)

yo logre hacer el primer metodo paro ya me pierdo con los demás
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
def cargar_listas():
 
  lst_Productos = []
  print("Presione S para comenzar la carga de productos")
  opcion = input()
  print ("Ingrese el nombre del producto")
  while opcion== "S":
    producto = input()
    lst_Productos.append(producto)
    print("Desea ingresar otro articulo S/N")
    opcion = input()
 
  lst_Precio = []
  print("Presione S para comenzar la carga del Precio en bruto de cada articulo")
  opcion = input()
  print ("Ingrese Precio")
  while opcion== "S":
    Precio = float(input())
    lst_Precio.append(Precio)
    print("Desea continuar S/N")
    opcion = input()
 
  lst_Cantidad = []
  print("Presione S para comenzar la carga de unidades producidas")
  opcion = input()
  print ("Ingrese numero de unidades")
  while opcion== "S":
    unidades = int(input())
    lst_Cantidad.append(unidades)
    print("Desea continuar S/N")
    opcion = input()
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

Ayuda con un ejercicio de la universidad Python

Publicado por yoyyo (1 intervención) el 17/10/2020 02:16:47
hola:
me parece que:
1)las listas deberías declararlas fuera de la función, sino cada vez que llames a ésta, las listas se limpiarán.
2) se supone que cuando cargas el producto deberías cargar la cantidad y el precio, como lo estás haciendo podés tener discordancias entre la cantidades en las listas, o sea un producto y dos precios o tres cantidades.Debe haber un índice por cada elemento en cada lista y el usuario se puede "equivocar" como está planteado.
3)¿qué se supone son los métodos para máximo y total a recaudar?
4) por lo menos sabés como agregar datos a las listas, en base a eso podés simplificar el código.
5) no seas victimario crónico : "Los profesores no ayudan en nada." estás en la universidad no en un jardín de infantes.
6) si mejorás el código y sos más específico en las dudas será más facil ayudarte.

Saludos
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

Ayuda con un ejercicio de la universidad Python

Publicado por yoyyo (1 intervención) el 17/10/2020 04:01:57
como es rápido copiar y pegar lo modifico para que veas de que hablo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
lst_Productos = []
lst_Precio = []
lst_Cantidad = []
 
def cargar_listas():
    opcion = input("Presione S para comenzar la carga de productos ").lower()
    if opcion == "s":
        while True:
            producto = input("Ingrese el nombre del producto: ")
            lst_Productos.append(producto)
            precio = float(input("Ingrese Precio: "))
            lst_Precio.append(precio)
            unidades = int(input("Ingrese número de unidades: "))
            lst_Cantidad.append(unidades)
            continuar = input("¿Desea ingresar otro artículo S/N? ").lower()
            if continuar == "s":
                next
            elif continuar == "n":
                print("Carga de artículos cancelada")
                break
            else: print("¡Opción incorrecta!")
    else:
        print("Carga de artículos cancelada")
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
Val: 12
Ha disminuido su posición en 5 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda con un ejercicio de la universidad Python

Publicado por guille (4 intervenciones) el 17/10/2020 15:18:51
gracias por la ayuda, ya pude terminar el problema, me quedo algo asi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
lst_cantidad = []
lst_productos = []
def cargar_listas_de_productos():
    print("Presiones (S) para iniciar la carga de productos, si desea detener la carga pulse (N)")
    opcion = str(input()).upper()
    while opcion == "S":
        Productos = str(input("Ingrese nombre del producto:",  ))
        Cantidad = int(input("Ingrese la catidad:",  ))
        global lst_productos
        lst_productos.append(Productos)
        global lst_cantidad
        lst_cantidad.append(Cantidad)
        print("Desea continuar con la carga de productos S/N")
        opcion = str(input()).upper()
        if opcion == "N":
            print("\nProducto   /    Cantidad")
            print(lst_productos, lst_cantidad)
 
def calculo_costo(lst_costo, lst_precios):
    for i in range(len(lst_costo)):
        precio_por_producto = lst_costo[i] * 3.5 + 356
        lst_precios.append(precio_por_producto)
    return lst_precios
 
def maximo_a_recaudar(precios_aux):
    Mayor = 0
    for precio in range(0, len (precios_aux)):
        if precios_aux[precio] > Mayor:
            Mayor = precios_aux[precio]
    return Mayor
 
 
def Total_a_recaudar(lista_precios):
    suma = 0
    for numero in lista_precios:
        suma += numero
    return suma
 
def main():
    lista_precios = []
    cargar_listas_de_productos()
    costo = calculo_costo(lst_cantidad, lista_precios)
    print("\nLa lista de precios es:")
    print(costo)
    Mayor = maximo_a_recaudar(costo)
    print("\nEl maximo a recaudar es:", Mayor)
    Recaudacion_Total = Total_a_recaudar(costo)
    print("El total a recaudar es:", Recaudacion_Total)
 
main()
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

Ayuda con un ejercicio de la universidad Python

Publicado por yoyyo (1 intervención) el 17/10/2020 20:27:21
está bien que lo resulevas ahora:
1) no es necesario usar str() en input, ya que este devuelve una cadena

2) sino veo mal estás usando la lista cantidad para costos, no tenés una carga del valor de costo real.

3) es dificil de leer el código si usas nombres de listas como parametros de funciones

4) no hay ninguna verificacón de lo ingresado para control de errores.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar