我有以下Python2.7代码:
#-*- coding: latin1 -*-
kw=int(input("Precio del Kw: "))
numeroCasas=int(input("Cantidad de Casas: "))
consumos={}
consumo={}
for i in range(numeroCasas):
print("Casa numero " + str(i+1) + ": ")
consumo["propietario"]=raw_input("\tNombre del Propietario: ")
consumo["numCasa"]=raw_input("\tNumero de Casa: ")
consumo["consumo"]=int(raw_input("\tConsumo: "))
consumos={i : consumo}
print("\nCompletado. \nValor del Kw: "+ str(kw) +"\n\nListado de
usuarios:\n\nNro\t|\tNombre\t|\tCasa\t|\tConsumo\t|\tTotal a Pagar")
for i in range(numeroCasas):
totalPagar = consumos[i]["consumo"]*kw
print(str(i+1) + "\t|\t" + str(consumos[i]["propietario"]) + "\t|\t" + str(consumos[i]["numCasa"]) + "\t|\t" + str(consumos[i]["consumo"]) + "\t|\t" + str(totalPagar))对于numeroCasas = 1工作,但对于numeroCasas > 1,则显示一个错误消息:
KeyError Traceback (most recent call last)
C:\Users\lewis\Desktop\consumo.py in <module>()
15
16 for i in range(numeroCasas):
---> 17 totalPagar = consumos[i]["consumo"]*kw
18 print(str(i+1) + "\t|\t" + str(consumos[i]["propietario"]) + "\t|\t" + str(consumos[i]["numCasa"]) + "\t|\t" + str(consumos[i]["consumo"]) + "\t|\t" + str(totalPagar))
KeyError: 0 对此有何解释?
发布于 2015-04-24 03:00:27
我认为这就是问题所在:
consumos={i : consumo}您不需要字典条目列表,而是需要字典列表。
for i in range(numeroCasas):
# read all the stuff in to consumo...
consumos[i] = consumo那么,印刷也应该很简单。
for c in consumos:
print(c)发布于 2015-04-24 02:57:19
错误在行中:
consumos={i : consumo}要在字典中添加元素,您必须这样做:
consumos[i] = consumohttps://stackoverflow.com/questions/29837722
复制相似问题