当循环不能正常工作时,我需要使用其他东西吗?

2024-04-20 13:54:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要一个比萨饼的大小,然后把它还给我。我正在使用while循环(不确定是否需要使用其他东西?),问题是,即使我输入了有效的选项,它也会提示我再次输入大小,而不是返回大小

def pizzaSize():
   print("What size of pizza do you want\n (s)mall, (m)edium, or (l)arge?\n")
   size = input()
   while size != 'l' and size != 'm' and size != 's':
      print("ERROR invalid pizza size")
      size = input()
   return size`

我对这个很陌生,刚刚开始我的第一节编程课

编辑:

我相信引起我的问题的是另一段代码。我多次调用该函数并使其重复。现在我有一个单独的问题。如何在不调用前一个函数的情况下,获取前一个函数返回的内容并在后一个函数中使用它

def pizzaPrice():
if size == "s":
    cost = 9 + .50 * numTop
elif size == "m":
    cost = 11 + .75 * numTop
elif size == "l":
    cost = 13 + 1 * numTop
return cost

numTop是在前一个函数中返回的值。我如何在pizzaPrice函数中得到它?它说它没有定义,但当我将它定义为函数时,它调用该函数


Tags: and函数inputsizereturn定义defprint
1条回答
网友
1楼 · 发布于 2024-04-20 13:54:15

你的代码对我来说似乎运行得很好。这可能有些过分,但您可以尝试使用以下代码。我对编程也很陌生,但我见过其他人在使用while循环时使用True和False。我希望这有帮助!祝你好运

**编辑我看到您发布了一个附加问题,因此我希望这也能有所帮助。我不确定您是如何获得“numtop”数字的,但如果它是通过一个输入()获得的,比如比萨饼大小,那么请确保将其指定为浮点,因为您将使用它进行乘法运算(输入默认为字符串)。在pizzaPrice()函数中,需要指定size和numtop变量是numoftops()和pizzaSize()函数的结果

def numbofTops():


     numTop = float(input("how many toppings? "))
     return (numTop)


def pizzaSize():
    validAnswer = False
    print("What size of pizza do you want\n (s)mall, (m)edium, or (l)arge?\n")
    size = input("What size of pizza do you want\n (s)mall, (m)edium, or (l)arge?\n")

    while not validAnswer:
        if size != 'l' and size != 'm' and size != 's':
            print("ERROR invalid pizza size ")
            size = input()
        else:
            validAnswer = True

            return size


def pizzaPrice():
    numTop = numbofTops()
    size = pizzaSize()

    if size == "s":
        cost = 9 + .50 * numTop
        print(cost)

    elif size  == "m":
        cost = 11 + .75 * numTop
        print(cost)

    elif size  == "l":
        cost = 13 + 1 * numTop
        print(cost)
    return cost


pizzaPrice()

相关问题 更多 >