class Packagings:
def __init__(self):
self.length=0
self.deckle=0
self.tmp=0
self.flute=[]
self.gsm=[]
self.t_weight=0
self.weight=0
def read_values(self):
print """Select Type Of Paper
1.3 Ply
2.5 Ply
3.7 Ply
"""
self.type=input("Enter the type:")
self.l=input("Enter Length:")
self.b=input("Enter Breadth:")
self.h=input("Enter Height:")
self.flap=input("Enter Flap:")
def ply_read_values(self):
for i in range(0,2):
self.flute[i]=input("Enter flute:")
self.gsm[i]=input("Enter Gsm:")
self.weight[i]=self.tmp*(flute[i]*gsm[i])
self.t_weight=self.t_weight+self.weight[i]
def do_calc(self):
self.length=(2*self.l+2*self.b+self.flap)/1000
self.deckle=(float(self.h+self.b))/1000
self.tmp=self.length*self.deckle
def print_value(self):
print self.length
print self.deckle
print self.t_weight
#Main Function
obj=Packagings()
obj.read_values()
obj.do_calc()
obj.ply_read_values()
obj.print_value()
当我运行此程序时,出现以下错误。我找不到列表分配如何超出范围。你们可以通过我的计划告诉我哪里出错了吗?对我来说这个名单似乎很好。它是如何脱离索引的?
Traceback (most recent call last):
File "C:/Python27/packagings.py", line 47, in <module>
obj.ply_read_values()
File "C:/Python27/packagings.py", line 27, in ply_read_values
self.flute[i]=input("Enter flute:")
IndexError: list assignment index out of range
答案 0 :(得分:4)
self.flute
被初始化为空列表,因此它没有可以重置的元素。使用self.flute.append
和其他列表类似。
答案 1 :(得分:1)
假设您的代码,您需要将self.weight=0
替换为self.weight=[]
我认为这是你的问题