Python-购物车-While循环问题

时间:2019-09-25 23:30:06

标签: python-3.x

我的目标是通过移除特定商品的数量来修改购物车中商品的数量。我正在使用while循环来执行此操作,但是我的while循环似乎并未结束。

我希望它结束​​,以便代码返回到选择选项(1.添加一个项目2.修改3.删除项目4.查看购物篮)

关于如何有效实现这一目标的任何想法?

非常感谢您的帮助。

谢谢。

elif option == 2:
    item2 = input("Select the item you would like to amend: Parcel or Letter: ")
    item2_updated = item2.capitalize()

    while item2_updated != None:
        if item2_updated in shopping_basket:
            print ("Current item quantity: ")
            print(item2_updated,":",shopping_basket[item2_updated])
            quantity = int(input("Enter the quantity to remove: "))
            shopping_basket[item2_updated] = shopping_basket[item2_updated] - quantity
            print(item2_updated,":",shopping_basket[item2_updated])
        elif item2_updated != None:
            print("Item not in the cart")
    else:
        print("Item not in the cart")   

elif option == 3:
    item = input("Enter an item: ")
    del(shopping_basket[updated_item])

1 个答案:

答案 0 :(得分:0)

首先,您不需要

elif item2_updated != None:
            print("Item not in the cart")

并避免使用while... else令人困惑。

第二,在您的while循环中,您没有更改item2_updated的值,因此item2_updated将永远不会是None。始终是用户最初发送到input()的值。

您要执行的操作是将while循环放在最顶部,然后使用if...elif...else进行更新和更改。像这样:

while True:
    if option == 1: 
        # do something
    elif option == 2:
        if item2_updated in shopping_basket:
            # do something (No while loop here)
    else:
        # do something else

您还可以使用一个特殊的选项来“退出”,这将break退出while循环