Total x价格不适用于Python 3.x

2024-05-20 10:44:55 发布

您现在位置:Python中文网/ 问答频道 /正文

奇姆斯

enter image description here

问题被反驳了

enter image description here

你好。我正在尝试使用类、对象等进行小型业务管理。我正在尝试做的是,每当我输入项目的数量时,它将乘以价格,并在我输入3个项目(贴纸、衬衫和鞋子)后得到一个总数。我试图在每次出现错误时更改它,但更改后仍会出现新的错误。更改内容后,我得到的列表不可调用或不可订阅。甚至在该类被命名为“学生”之前,我也收到了一个错误“学生未定义”。我在第25行和第13行也有错误,我想我输入的是正确的。请参阅随附的照片/代码以供参考。我将把这个代码用于tkinter。先谢谢你

class Student():
    def __init__ (self):
        self.sticker =[]
        self.shirt = []
        self.shoes = []

    def getData(self, m1,m2, m3):
        self.sticker.append(m1)
        self.shirt.append(m2)
        self.shoes.append(m3)

    def displayData(self):
        return('Total sales are:' + self.average())
    def total(self):
        return(self.sticker[0]*5, self.shirt[1]*200, self.shoes[2]*1000)

    def average (self):
        return(self.sticker[0] + self.shirt[1] + self.shoes[2])
m1 = (input('Enter the quantity of sticker sold: '))
m2 = (input('Enter the quantity of shirt sold: '))
m3 = (input('Enter the quantity of the shoes sold: '))

s1 = Student()
s1.getData(m1, m2, m3)
s1.displayData()

错误是:

Traceback (most recent call last):
  File "c:\Users\Kenken\Desktop\Kenken - Python\businesshit.py", line 25, in <module>   
    s1.displayData()
  File "c:\Users\Kenken\Desktop\Kenken - Python\businesshit.py", line 14, in displayData
    print('Total sales are:' + self.total())
  File "c:\Users\Kenken\Desktop\Kenken - Python\businesshit.py", line 16, in total
    return(self.sticker[0]*5, self.shirt[1]*200, self.shoes[2]*1000)
IndexError: list index out of range

Tags: oftheselfreturndef错误m3shirt
1条回答
网友
1楼 · 发布于 2024-05-20 10:44:55
class Student():
    def __init__(self):
        self.sticker = []
        self.shirt=[]
        self.shoes=[]
    def getData(self, m1,m2, m3):
        self.sticker.append(m1)
        self.shirt.append(m2)
        self.shoes.append(m3)
    def displayData(self):
        return('Total sales are:' + self.average())
    def total(self):
        return(self.sticker[0]*5, self.shirt[0]*200, self.shoes [0]*1000)
    def average (self):
        return(self.sticker[0] + self.shirt[0] + self.shoes[0])
m1=(input('Enter the quantity of sticker sold: '))
m2=(input('Enter the quantity of shirt sold: '))
m3=(input('Enter the quantity of the shoes sold: '))
s1 = Student()
s1.getData(m1, m2, m3)
s1.displayData()

你应该试试这个代码

代码中有两个错误:

1)您应该使用相同的缩进在一个类中编写所有方法。但是在您的代码中,方法平均值与其他方法不一致

2)您将元素附加到空列表中,使其索引位于位置0。因此,在学生类中的total和average方法中,您需要使用索引0来访问衬衫和鞋子中的元素,如衬衫[0]和鞋子[0]

要打印总值,请使用print(s1.displayData())

相关问题 更多 >