Python - Consulta sobre llamado de variables para ser usada en una funcion

 
Vista:
Imágen de perfil de carlos
Val: 27
Ha disminuido su posición en 3 puestos en Python (en relación al último mes)
Gráfica de Python

Consulta sobre llamado de variables para ser usada en una funcion

Publicado por carlos (5 intervenciones) el 24/11/2020 16:38:06
Hola a todos:

tengo unas consultitas tal como dice en el titulo, me explico un poco.

resulta que estoy haciendo un ejercicio de una tienda en python, y tengo problemas al momento de generar el subtotal de los productos seleccionados a lo cual al momento de capturar el valor de la cantidad lo recibe bien (adjunto codigo):
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
print(str(Departamento1))
print("")
print("\t1 - "+str(producto1)+" $ "+str(precio1))
print("\t2 - "+str(producto2)+" $ "+str(precio2))
print("\t3 - "+str(producto3)+" $ "+str(precio3))
print("\t4 - "+str(producto4)+" $ "+str(precio4))
print("\t5 - "+str(producto5)+" $ "+str(precio5))
print("\t6 - "+str(producto6)+" $ "+str(precio6))
print("\t7 - "+str(producto7)+" $ "+str(precio7))
print("\t8 - "+str(producto8)+" $ "+str(precio8))
print("\t9 - "+str(producto9)+" $ "+str(precio9))
print("\t10 - "+str(producto10)+" $ "+str(precio10))
print("\t11 - volver")
print("")
opcionproducto1 = input("seleccione producto: ")
 
if opcionproducto1 == "1":
    cantidad1 = int(input("El producto tiene un valor de: $ "+str(precio1)+"Cuantas cantidades desea llevar (recuerde que maximo 6 por producto): "))
    while True:
        if cantidad1 > 6:
            print("el producto supera lo permitido en sistema para agregar")
            cantidad1 = int(input("El producto tiene un valor de: $ "+str(precio1)+"Cuantas cantidades desea llevar (recuerde que maximo 6 por producto): "))
        else:
                print("Agregado correctamente!")
                Departamento()
                break
 
elif opcionproducto1 == "2":
    cantidad2 = int(input("El producto tiene un valor de: $ "+str(precio2)+"Cuantas cantidades desea llevar (recuerde que maximo 6 por producto): "))
    while True:
        if cantidad2 >= 6:
            print("el producto supera lo permitido en sistema para agregar")
            cantidad2 = int(input("El producto tiene un valor de: $ "+str(precio2)+"Cuantas cantidades desea llevar (recuerde que maximo 6 por producto): "))
        else:
            print("Agregado correctamente!")
            Departamento()
            break
y asi sucesivamente con las opciones (las cuales son 4 departamentos con 10 productos con su respectivo precio), hasta este punto todo bien.
luego , lo que hice fue manejar funciones las cuales son "calculossindescto" y "recorrido"(la cual en este se deberia hacer el subtotal ya una vez validado que las cantidades no sean mayor a 10), pero al momento de intentar hacer la operatoria, me genera un error de que cantidad no esta declarada (igual adjuntare imagen), la cual adjunto codigo del segmento):
1
2
3
4
5
def recorrido():
    sumacantidades =(cantidad1+cantidad2+cantidad3+cantidad4+cantidad5+cantidad6+cantidad7+cantidad8+cantidad9+cantidad10+cantidad11+cantidad12+cantidad13+\
                     cantidad14+cantidad15+cantidad16+cantidad17+cantidad18+cantidad19+cantidad20+cantidad21+cantidad22+cantidad23+cantidad24+cantidad25+cantidad26\
                     +cantidad27+cantidad28+cantidad29+cantidad30+cantidad31+cantidad32+cantidad33+cantidad34+cantidad35+cantidad36+cantidad37+cantidad38\
                     +cantidad39+cantidad40)

y generando el siguiente error:
"File "C:\Users\cmondaca\Desktop\python\tienda\Inventario.py", line 98, in recorrido
sumacantidades =(cantidad1+cantidad2+cantidad3+cantidad4+cantidad5+cantidad6+cantidad7+cantidad8+cantidad9+cantidad10+cantidad11+cantidad12+cantidad13+\
NameError: name 'cantidad1' is not defined"

siendo que, lo que deseo es que el valor que se agrego a cantidad sea el que sea llamado.

agradeceria mucho su ayuda !!!!
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

Consulta sobre llamado de variables para ser usada en una funcion

Publicado por joel (901 intervenciones) el 24/11/2020 19:08:30
Hola Carlos, el error que te da, es que la variable "cantidad1" no esta definida!!!

Creo que es porque si opcionproducto1 no es "1" no se solicita el valor, no?

Lo que yo haria, es definir todas las variables antes del if, porque si no entra en el if, por lo menos la variable tenga valor... algo así:

1
2
3
4
5
6
7
8
9
10
11
12
13
cantidad1=0
cantidad2=0
...
if opcionproducto1 == "1":
    cantidad1 = int(input("El producto tiene un valor de: $ "+str(precio1)+"Cuantas cantidades desea llevar (recuerde que maximo 6 por producto): "))
    while True:
        if cantidad1 > 6:
            print("el producto supera lo permitido en sistema para agregar")
            cantidad1 = int(input("El producto tiene un valor de: $ "+str(precio1)+"Cuantas cantidades desea llevar (recuerde que maximo 6 por producto): "))
        else:
                print("Agregado correctamente!")
                Departamento()
                break
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