Python:使用的不同方法

时间:2018-09-25 07:23:50

标签: python

请协助以下代码。我真的很挣扎。

定义一个具有两个成员变量style和price的Shoe类。 可变样式存储值“ A”,“ B”或“ O”,而price存储鞋子的原始价格。

添加以下方法:

  • 该类的init()方法,该方法将style设置为空字符串,并将price设置为0.0。 p111,-114
  • 一个名为assignValues的方法,它将为Shoe类的实例的成员变量分配值。
  • 名为calcDiscountPrice()的方法,该方法将计算折价并将折价返回给主程序。折扣计算如下:
    • 对于样式A –原始价格的10%
    • 对于样式B –原始价格的20%
    • 对于样式O –无折扣
  • 名为dispValues()的方法,该方法将显示Shoe实例的成员变量。

编写一个程序,将Shoe类的实例存储在一个二进制文件中并对其进行处理。在文件中至少存储三个实例。主程序应尝试如下:

  • 创建Shoe类的实例。
  • 要求用户输入实例的详细信息(价格和样式)。
  • 将实例添加到文件中。
  • 向用户显示提示-“是否要继续(y / n)”
  • 程序应反复询问实例的详细信息,直到用户在提示时拒绝。
  • 用户完成向文件中添加实例后,读取文件并显示文件内容。对于每个实例,还显示折扣价。

示例运行:

Enter a shoe style('A', 'B' or 'O'):O 
Enter price of the shoe:R299.99 
Enter a shoe style('A', 'B' or 'O'):A 
Enter price of the shoe:R349.50

具有折扣价的文件中每个Shoe实例的详细信息如下:

Shoe Instance1 
Shoe style: O 
Price: R299.99 
Discounted price is R299.99 

Shoe Instance2 
Shoe style: A 
Price: R349.50 
Discounted price is R314.55

我的代码:

class shoe:
    style=""
    price=0.0
    def _init_(self,style=" ",price=0.0,discountP=0.0):
        self.style=" "
        self.price=0.0
        self.discountP=0.0

def assignValues(self):
            self.style=str(input("Enter a shoe style('A','B' or 'O'): "))
            self.price=float(input("Enter price of the shoe: "))
            while True:
                word=str(input("Do you want to continue? (y/n): "))
                if word=="n":
                    break
                else:
                    self.style=str(input("Enter a shoe style('A', 'B' or 'O'): "))
                    self.price=float(input("Enter the shoe style: "))

def calcDiscountPrice(self):
    if self.style =="A":
                self.discountP=self.price-(self.price*0.1)
    if self.style =="B":
                self.discountP=self.price-(self.price*0.2)
    if self.style =="C":
                self.discountP=self.price

def displayValues(self):
                print("\n\n The details of each shoe instance in the file with discount")
                print("Shoe style: ", self.style)
                print("Price: R", % self.price)
                print("Discounted price is R", self.disountP))

s=shoe()
f=open("ShoeDetails.bin","w")
s.assignValues()
s.calcDiscountPrice()
s.dispValues()
pickle.dump(s, file)
file.write(s)
file.close()
del r
f=open("ShoeDetails.bin","r")
storedobj = pickle.load(f)
print(storedobj.dispValues())

1 个答案:

答案 0 :(得分:0)

更改行

f=open("ShoeDetails.bin","w")

收件人

f=open("ShoeDetails.bin","wb")

请注意wwb。写入二进制模式的bin文件时,您需要使用wb(写入二进制文件)选项。