python 在这个While循环中,我错过了什么?

ulydmbyx  于 2023-03-28  发布在  Python
关注(0)|答案(1)|浏览(178)

一旦价格的条件满足“0”,循环就可以正常运行,但是当循环要求额外的物品价格和数量时,循环不会累计总数。我不知道为了不断累计物品的数量和它们的价格,我遗漏了什么。
我试过重新排列代码,主要是因为我认为有些语法乱了序,但我想我只是缺少了一些东西来将while循环的累积联系在一起。

priceItems = float(input("\nEnter item price: "))
numItems = int(input("How many of item: "))

subtotal = priceItems * numItems
tax= subtotal * 0.0825
total= subtotal + tax

while priceItems != 0:
    priceItems = float(input("Enter item price: "))

    if priceItems == 0:
        print("\nSubtotal: " + "$" + str(subtotal))
        print("Tax: " + "$" + str(round(tax, 2)))
        print("Total " + "$" + str(round(total, 2)))
    else:
        numItems = int(input("How many of item: "))
qpgpyjmq

qpgpyjmq1#

这是因为你没有重新分配total变量。你只是打印第一次迭代计算,而不是在每次输入后重新存储它,就像这样:

priceItems = float(input("\nEnter item price: "))
numItems = int(input("How many of item: "))

subtotal = priceItems * numItems
tax= subtotal * 0.0825
total= subtotal + tax

while priceItems != 0:
    priceItems = float(input("Enter item price: "))

    if priceItems == 0:

        print("\nSubtotal: " + "$" + str(subtotal))
        print("Tax: " + "$" + str(round(tax, 2)))
        print("Total " + "$" + str(round(total, 2)))
    else:
        numItems = int(input("How many of item: "))
        
        subtotal = priceItems * numItems
        tax= subtotal * 0.0825
        total= total + subtotal + tax

我不同意这个脚本的正确工作流程,因为我不知道用例,但这就是问题所在。重构正确的位置,在那里重做赋值,你就完成了!当然,如果它不能满足你的问题。

相关问题