我正在运行一个程序,在该程序中,提示用户在“快速”结帐行中输入项目数。然后,它向用户请求商品的价格和数量,并打印小计。一旦用户输入的所有项目都已计入程序,就会显示所有小计的总计。我已经到了最后一部分,我需要对用户的小计进行累加。任何帮助将不胜感激,
def main():
total = 0
while True:
item = int(input("How many different items are you buying? "))
if item in range (1, 10):
total += subtotal(item)
print("Total of this order $", format (total, ',.2f'), sep='')
break
else:
print("***Invalid number of items, please use a regular checkout line***")
break
def subtotal(item):
total = 0
for item in range(item):
unit_price = float(input("Enter the unit price of the item "))
quantity = int(input("Enter the item quantity "))
subtotal = unit_price * quantity
print("Subtotal for this item: $", format (subtotal, ',.2f'), sep='')
return subtotal
main()
答案 0 :(得分:1)
subtotal()
函数每次在循环中都会重新分配小计,丢弃先前的值,因此最终只返回最后一项的总数。
尝试以下方法:
def subtotal(item):
total = 0
for item in range(item):
unit_price = float(input("Enter the unit price of the item "))
quantity = int(input("Enter the item quantity "))
subtotal = unit_price * quantity
print("Subtotal for this item: $", format (subtotal, ',.2f'), sep='')
total += subtotal
return total
答案 1 :(得分:0)
您的代码有很多错误。
您不要在函数名称和args之间放置空格。这会犯很多错误。
正确使用格式的方式是:'string {0}'。format(variable_name)
为什么要将整个脚本放入“ main”函数中?这不是C。但是如果您对此感到满意,那么可以。
但是,回答问题,您可以使“小计”功能接收产品列表,并使其返回小计的列表,并使其余的数学部分成为“主要”功能。