【发布时间】:2021-05-29 21:30:08
【问题描述】:
我是 python 的新学习者,我正在尝试制作一个程序,在发票中打印所有物品 + 价格 + 数量。每个项目都在单独的行中。
我已经知道我在一行中打印每个项目,但我一直用最后输入的值覆盖旧值。我怎样才能防止这种情况? 这是代码:
print("This program prints your invoices."
"\nPlease enter the item identification, item cost and quantity sold when promted."
"\nEnter 'done' when no more items"
"\n=========================================")
saveqty= ()
savetprice=()
qtysum= 0 #quantity =qty for short
sumprice=0
list1 = []
totalprice=0
while True:
itemid = input('Item identification: ')
if itemid == "done":
break
if len(itemid)<3:
print("item identification should be at least 3 characters long, try again")
continue
else:
list11 = list[itemid]
list1 +=[itemid]
qtysold = input("Qty sold: ")
try:
qtysold =int(qtysold)
except ValueError:
print("must be an integer value, try again")
continue
qtysum+=qtysold
try:
itemprice = float(input("Item price: "))
savetprice= (itemprice)
except ValueError:
print("item price must be numerical value, try again")
continue
totalprices= (qtysold*itemprice)
totalprice+=totalprices
for elem in list1:
print(qtysold,'x ',elem, '@ ', savetprice, 'SAR', '===', totalprices)
total = sumprice
itemtotal = qtysum
print("=========================================\nNo. of items purchased: ", itemtotal,"\nTotal price is: ", totalprice, "SAR")
【问题讨论】:
-
快速提问,
list11 = list[itemid]这一行发生了什么? -
嗨@jidicula,不知道哈哈。在我关于列表的课程中,其中一个示例使用了类似的代码。我用它来实现我的代码。但它不需要对吗?我想将 itemid 转换为列表。
-
我更担心的是它似乎是一个错字,因为
list本身就是一个type对象,而type对象是不可下标的。 -
如果您想将
itemid转换为列表以连接到list1,您可以用方括号将其括起来:[itemid]。或者,您可以使用list1.append(itemid)附加到list1。 -
我刚刚尝试使用您的建议,并且有效。我现在更好地理解它了。非常感谢您的帮助
标签: python css python-3.x while-loop