显示所有发票订单时,将显示的唯一发票记录是文件写入的选项1,而使用附加选项2的所有其他发票记录均不存在。选择选项3时,我应该如何确保每个附加发票记录也会显示出来。(我知道我的编码一般)
run_again = 'y'
while run_again == 'y':
widget = 10.55
gidget = 7.30
doodad = 5.25
print('1 - Create a new Invoice Order')
print('2 - Add an additional Invoice Order')
print('3 - Display all Invoice Orders')
print('4 - QUIT')
choice = int(input('Enter 1,2,3, or 4: '))
if (choice == 1):
invoice_file = open('invoices.txt', 'w')
ID = input('1 of 4 - Enter customer ID: ')
numwidgets = int(input('2 of 4 - Enter number of Widgets'
' Ordered @ $10.55 each: '))
numgidgets = int(input('3 of 4 - Enter number of Gidgets'
'(Ordered @ $7.50 each): '))
numdoodads = int(input('4 of 4 - Enter number of Doodads'
'(Ordered @ $5.25 each: '))
invoice_file.write(ID + '\n')
invoice_file.write(str(numwidgets) + '\n')
invoice_file.write(str(numgidgets) + '\n')
invoice_file.write(str(numdoodads) + '\n')
invoice_file.close()
print('Data has been added to file invoices.txt')
if (choice == 2):
invoice_file = open('invoices.txt', 'a')
ID = input('1 of 4 - Enter customer ID: ')
numwidgets = int(input('2 of 4 - Enter number of Widgets'
' Ordered @ $10.55 each: '))
numgidgets = int(input('3 of 4 - Enter number of Gidgets'
'(Ordered @ $7.50 each): '))
numdoodads = int(input('4 of 4 - Enter number of Doodads'
'(Ordered @ $5.25 each: '))
invoice_file.write(ID + '\n')
invoice_file.write(str(numwidgets) + '\n')
invoice_file.write(str(numgidgets) + '\n')
invoice_file.write(str(numdoodads) + '\n')
invoice_file.close()
print('Data has been added to file invoices.txt')
if (choice == 3):
invoice_file = open('invoices.txt', 'r')
ID = invoice_file.readline()
numwidgets = float(invoice_file.readline())
numgidgets = float(invoice_file.readline())
numdoodads = float(invoice_file.readline())
records = 0
records += 1
widgettotal = widget * numwidgets
gidgettotal = gidget * numgidgets
doodadtotal = doodad * numdoodads
invoicetotal = widgettotal + gidgettotal + doodadtotal
print('Record #',records, 'Customer #',ID)
print(numwidgets, 'Widgets ordered @ $10.55---- $',widgettotal)
print(numgidgets, 'Gidgets ordered @ $7.30----$',gidgettotal)
print(numdoodads, 'Doodads orderd @ $5.25----$',doodadtotal)
print('Invoice total------------$',invoicetotal)
invoice_file.close()
if (choice == 4):
break
run_again = input('Would you like to run this program again?'
'(Enter y for yes or n for no): ')
我认为问题不一定是选项2中的行没有写入文件,而是它们没有作为选项3的一部分被读取。选项3中的代码将尝试读取文件的前四行,而不管发生什么情况,都不会读取任何其他内容。相反,您可能需要以下内容:
相关问题 更多 >
编程相关推荐