回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<div>
</div>
<p>我正在给一家书店编码,正在检查是否一切正常。我目前正在为员工创建一种方法,将书籍添加到写入文件的内置书籍目录中,并尝试使用拆分方法显示信息。在Inventory类中测试add_book方法时,它会打印第一本书的信息,然后给出一个列表索引超出范围的错误。如果可能的话,请帮忙。这是守则-</p>
<pre><code>#This program is a shopping cart for ABC book store
#Created by Aykhan Salimov on 09.22.2020
#This is a class for books
class Book:
def __init__(self, number, title, author, genre, price):
self.number = number
self.title = title
self.author = author
self.genre = genre
self.price = price
def __str__(self):
return "This book's name is " + self.title + "\n" + "This book's author is " + self.author + "\n" + "This book's genre is " + self.genre + "\n" + "This book's price is " + self.price
#This is a class for the inventory of books for sale
class Inventory:
def __init__(self, make):
self.make = make
def add_book(self):
with open('booklist.txt') as f:
x = f.read().splitlines()
Content = f.read()
Counter = 0
CoList = Content.split("\n")
for i in CoList:
if i:
Counter += 1
loop = True
y = 0
print("Current Books: ")
print("====================================================")
while(loop):
myLine = x[y]
print(myLine)
myContent = ""
spliter = myLine.split("\n")
myContent[spliter[1]] = spliter[2]
y = y + 1
if y == counter:
loop = False
f.close()
print(myContent)
print("====================================================")
print("Please specify the book information for the book you wish to add")
addbookn = input("Please input the number of the book you wish to add: ")
addbookt = input("Please input the title of the book you wish to add: ")
addbooka = input("Please input the author of the book you wish to add: ")
addbookg = input("Please input the genre of the book you wish to add: ")
addbookp = input("Please input the price of the book you wish to add: ")
newBook = Book(addbookn, addbookt, addbooka, addbookg, addbookp)
f.open = open("booklist.txt", "a")
f.append("/n%s" % (newBook))
def display(self):
print("===========================================")
print("Item number:", book0.number)
print("Title:", book0.title)
print("Author:", book0.author)
print("Genre:", book0.genre)
print("Price:", book0.price)
print("===========================================")
print("Item number:", book1.number)
print("Title:", book1.title)
print("Author:", book1.author)
print("Genre:", book1.genre)
print("Price:", book1.price)
print("===========================================")
print("Item number:", book2.number)
print("Title:", book2.title)
print("Author:", book2.author)
print("Genre:", book2.genre)
print("Price:", book2.price)
print("===========================================")
print("Item number:", book3.number)
print("Title:", book3.title)
print("Author:", book3.author)
print("Genre:", book3.genre)
print("Price:", book3.price)
print("===========================================")
print("Item number:", book4.number)
print("Title:", book4.title)
print("Author:", book4.author)
print("Genre:", book4.genre)
print("Price:", book4.price)
print("===========================================")
#This is a class for the user's cart
class Cart(Inventory):
def __init__(self, make):
self.make = make
super().__init__(make)
self.cartlist = []
def add_book(self):
numberbook = int(input("What is the number of the book you would like to buy?"))
self.cartlist = []
if numberbook == 1000:
self.cartlist.append(23.99)
if numberbook == 1001:
self.cartlist.append(3.99)
if numberbook == 1002:
self.cartlist.append(3.99)
if numberbook == 1003:
self.cartlist.append(9.99)
if numberbook == 1004:
self.cartlist.append(61.99)
if numberbook <= 999 or numberbook >= 1005:
print("You made a wrong selection")
return self.cartlist
def checkout(self):
total = sum(self.cartlist)
print("Thank you for shopping! Your total is:", total)
book0 = Book("1000", "Science: A Visual Encyclopedia", "Chris Woodford", "Science", "$23.99")
book1 = Book("1001", "My First Human Body Book", "Patricia J. Wyennevand Donald M Silver", "Science", "$3.99")
book2 = Book("1002", "The Runaway Children", "Sandy Taylor", "Fiction", "$9.99")
book3 = Book("1003", "The Tuscan Child", "Rhys Bowen", "Fiction", "$9.99")
book4 = Book("1004", "Science: A Visual Encyclopedia", "Chris Woodford", "Science", "$23.99")
loop = True
myCart = Cart("Cart")
myInventory = Inventory("Inventory")
myCartemp = Cart("Cart")
while(loop):
print("1: Display Books")
print("2: Add to Cart")
print("3: Show Cart")
print("4: Checkout")
print("5: Quit")
userinput = str(input("Select an Option: "))
if userinput == '1':
myInventory.display()
print("These are the book for sale")
print("You will now be returned to the home screen")
continue
if userinput == '2':
loop2 = True
while(loop2):
myCart.add_book()
if 1000 == numberbook <= 1005:
print("Book(s) added successfully!")
userin2 = str(input("Would you like to continue buying books? Type 1 if yes and 2 if no!"))
if userin2 == '1':
print("OK! Let's continue")
continue
if userin2 == '2':
print("OK. You will now be returned to the home screen")
loop2 = False
continue
if userinput == '3':
print("You have", len(cartlist), "items in your cart, which total to", sum(cartlist))
continue
if userinput == '4':
if myCart:
print("Your cart is empty!")
print("You will now be returned to the home screen")
else:
myCart.checkout()
loop = False
if userinput == '5':
print("Thank you for shopping!")
loop = False
myInventory.add_book()
</code></pre>
<p>注意:这还没有完成,还有其他错误,或者我还没有编码的区域。我知道如何修复/编码它们,我现在正在处理这个特定的部分</p>