[ Foro de Python ]
# Hola este es un ejemplo de una clase que no logro hacer correr por que me dice error,.. no logro encontrar solución..
porc = input("Introduzca un numero: ")
producto = {"Arroz" : 1000, "Harina" : 200, "Salsa" : 500, "Pasta" : 3500} #creando un diccionario
Clave = producto.keys() #accediendo a la clave
valor = producto.values() #accediendo al valor
print(Clave)
print(valor)
suma1 = 0
for i in valor:
suma1 += i
format = '%-*s%*.2f'
aumentos = valor
aumentos[0] = (valor[0]*porc)/100+aumentos[0]
aumentos[1] = (valor[1]*porc)/100+aumentos[1]
aumentos[2] = (valor[2]*porc)/100+aumentos[2]
aumentos[3] = (valor[3]*porc)/100+aumentos[3]
print(aumentos)
print("Porcentaje de aumentos: ", "{:,.2f}".format(porc))
print ("----------------------------------")
print (aumentos)
print ("----------------------------------")
suma = 0
for i in aumentos:
suma += i
print ("La suma de los precios a la fecha: ", "{:,.2f}".format(suma1))
print ("La suma de los precios aumento: ", "{:,.2f}".format(suma))
diferencia = suma - suma1
print ("La diferencia es: ", "{:,.2f}".format(diferencia))
Lo he probado con Python 2.7 y me ha funcionado:
Introduzca un numero: 3
['Pasta', 'Salsa', 'Arroz', 'Harina']
[3500, 500, 1000, 200]
[3605, 515, 1030, 206]
('Porcentaje de aumentos: ', '3.00')
----------------------------------
[3605, 515, 1030, 206]
----------------------------------
('La suma de los precios a la fecha: ', '5,200.00')
('La suma de los precios aumento: ', '5,356.00')
('La diferencia es: ', '156.00')
En Python 3 da el error:
TypeError: 'dict_values' object does not support indexing
Porque "dict_values" no es una lista. Puedes forzarlo (aunque quedarán otras correcciones en el resto del programa) con
Clave = list(producto.keys()) #accediendo a la clave
valor = list(producto.values()) #accediendo al valor
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)