首页 > 解决方案 > 继续提示用户输入,直到输入 0

问题描述

我的代码有问题。不知道如何修复它。我的程序反复提示要访问的超市过道号码。当输入 0 时,输入过程将终止。然后程序根据放置购物篮的最佳位置和我需要从中挑选物品的过道数来计算最小距离。然后程序显示最小距离。以下是我的代码:

totalAisles = int(input("Enter the number of aisles in supermarket: "))
visitAisle = int(input("Enter the aisle number to visit: "))
if visitAisle == 0:
    print("Not visiting any aisle")
else:
    aisle = []
    while True:
        visitAisle = int(input("Enter the aisle number to visit: "))
        if visitAisle == 0:
            break
        else:
            for i in range(totalAisles):
                visitAisle = int(input("Enter the aisle number to visit: "))
                aisle.append(visitAisle)
                #to find the best aisle to place the basket 
                highestAisle = max(aisle)
                lowestAisle = min(aisle)
                basket = round(highestAisle + lowestAisle) / 2
                minimumDistance += abs(basket - visitAisle) * 2
            print(f"The minimum distance is {minimumDistance} units")

示例运行

运行 1 输入超市过道数:100

输入要参观的过道号:1

输入要参观的过道号:8

输入要参观的过道号:5

输入要参观的过道号:4

输入要参观的过道号:10

输入要参观的过道号:0

最小距离为 26 个单位

运行 2

输入超市过道数:100

输入要参观的过道号:1

输入要参观的过道号:0

最小距离为 0 个单位

运行 3

输入超市过道数:100

输入要参观的过道号:0

不参观任何过道

标签: pythonfor-loopwhile-loop

解决方案


这是我建议您的解决方法

visitAisle = int(input("Enter the aisle number to visit: "))
if visitAisle == 0:
    print("Not visiting any aisle")
else:
    aisle = []
    while True:
        visitAisle = int(input("Enter the aisle number to visit: "))
        if visitAisle == 0:
            break
        else:
            for i in range(totalAisles):
                visitAisle = int(input("Enter the aisle number to visit: "))
                if visitAisle == 0:
                    break
                aisle.append(visitAisle)
                #to find the best aisle to place the basket 
                highestAisle = max(aisle)
                lowestAisle = min(aisle)
                basket = round(highestAisle + lowestAisle) / 2
                minimumDistance += abs(basket - visitAisle) * 2
        if visitAisle == 0:
                    break
    print("The minimum distance is ", minimumDistance)

我修改了程序的几行,但只是一点点。现在我希望你能理解问题的原因。


推荐阅读