我正在做"Python速成班“的练习7-4,它是关于编写一个while循环,提示客户输入比萨饼配料,直到他们输入”退出“为止。当我运行以下代码时,它每三次打印一次,并在输入“退出”两次后中断。有人能指出我做错了什么吗。谢谢。
prompt = "Enter your topping: "
while True:
topping = input(prompt)
if input(prompt) == "quit":
break
else:
print(f"{input(prompt)} is added")
下面是它运行的一个示例:
>>> Enter your topping: pepperoni
>>> Enter your topping: pepperoni
>>> Enter your topping: cheese
cheese is added
>>> Enter your topping: quit
>>> Enter your topping: quit
发布于 2020-05-29 20:08:56
您可能正在使用这个- if topping == "quit":
。
在您的代码中,您使用的是if input(prompt) == "quit":
,它要求输入两次,这就是您要出错的地方。
另外,我不知道你在最后一行做什么,但最后一行应该是这样的- print("topping is added")
或 print(topping+"topping is added")
,如果您想显示用户输入的顶部。
一旦您使用input(prompt)
获取了输入,就没有必要一次又一次地调用相同的表达式,因为将再次接受输入--(这不是我们想要的)。相反,使用topping
,它已经存储了用户提供的输入。
希望它能让你知道哪里出了问题。
发布于 2020-05-29 20:06:37
你要求输入两次。第一次,您将值存储在topping
中,从此不再使用它进行任何操作。
然后,在if input(prompt)
中的"if“之后再次请求输入,然后根据它返回的内容执行一些操作,并对"quit"
进行测试。
您应该使用topping
变量来做一些事情,而不是再次询问。既然你在学习,我不会告诉你该怎么做。
更重要的是,您需要理解的是函数调用做了一些事情。topping = input(prompt)
不像数学上的相等表达式,因此您可以用input(prompt)
代替所有您指的topping
。顶部以对象的形式表示一些常量值。提示()是解释器将要执行的一组指令,并将这些指令的结果放在代码中。那个"=“不是一个平等的断言。它是将一个值赋值给一个名称。
https://stackoverflow.com/questions/62093811
复制相似问题