Python 当循环不能正常工作时,我需要使用其他东西吗?
我需要一个比萨饼的大小,然后把它还给我。我正在使用while循环(不确定是否需要使用其他东西?),问题是,即使我输入了有效的选项,它也会提示我再次输入大小,而不是返回大小Python 当循环不能正常工作时,我需要使用其他东西吗?,python,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
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函数中得到它?它说它没有定义,但当我将它定义为函数时,它会调用该函数。您的代码对我来说运行良好。这可能有些过分,但您可以尝试使用以下代码。我对编程也很陌生,但我见过其他人在使用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()
您需要调用函数
pizzaSize()
来获取值。在函数定义之外,调用它并将返回值保存在变量size=pizzaSize()
中。我无法复制此函数。调用pizzasicle()
并键入s
将导致函数按预期返回。你有没有检查过当你意外地重复输入时size
包含了什么内容?我不确定你的确切意思,布赖恩。我该怎么做?另外,我发现如果你用l、s或m多次回答它,它会引导你返回到与程序前面不同的函数,但是当你回答这个函数时,它会根据需要完成程序。不确定发生了什么。大多数代码,包括pizzaSize
,都与问题无关。你需要提供一个新的解决方案。一旦你削减了,希望这个问题会很明显。提示:在比萨饼价格中。顺便说一句,欢迎来到SO!查看和。你拿走了你剩下的难以看到的选择。在哪里/如何设置numTop的值?