请协助以下代码。我真的很挣扎。
定义一个具有两个成员变量style和price的Shoe类。 可变样式存储值“ A”,“ B”或“ O”,而price存储鞋子的原始价格。
添加以下方法:
编写一个程序,将Shoe类的实例存储在一个二进制文件中并对其进行处理。在文件中至少存储三个实例。主程序应尝试如下:
示例运行:
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())
答案 0 :(得分:0)
更改行
f=open("ShoeDetails.bin","w")
收件人
f=open("ShoeDetails.bin","wb")
请注意w
和wb
。写入二进制模式的bin文件时,您需要使用wb
(写入二进制文件)选项。