sandwichType=""
totalCost=0
sandwiches=["Baguette", "Bagel", "Sub", "Wrap", "White"]
sandwichVAL={"Baguette":3.50, "Bagel":2.10, "Sub":3.99, "Wrap":4.15, "White":0.90}
choice=""
while choice!="Baguette" or choice!="Bagel" or choice!="Sub" or choice!="Wrap" or choice!="White":
choice=str(input("What type of sandwich would you like?\n>Baguette - £3.50\n>Bagel - £2.10\n>Sub - £3.99\n>Wrap - £4.15\n>White - £0.90\n"))
if choice!="Baguette" or choice!="Bagel" or choice!="Sub" or choice!="Wrap" or choice!="White":
print("Unfortunately, that is not a valid choice! Please pick again and remember to capitalise the first letter!")
else:
print()
totalCost+=sandwichVAL[choice]
print(totalCost)
此代码不断返回
Unfortunately, that is not a valid choice! Please pick again and remember to capitalise the first letter!
即使选择变量是正确的。我应该进行哪些编辑以使其打印总成本?
您只需通过以下方式检查选择是否有效:
if choice not in sandwiches:
print("Unfortunately, ...")
看看你的逻辑:
if choice != A or choice != B ...
选择
只能匹配一个硬编码的选择;对于选择
的任何值,此测试必须是True
。相反,尝试一些像
if choice not in ["Baguette", "Bagel", "Sub", ...]:
更好的方法是使用您已有的列表:
if choice not in sandwiches:
if choice!="Baguette" or choice!="Bagel" or choice!="Sub" or choice!="Wrap" or choice!="White":
这种逻辑是不正确的。当这些表达式中的任何一个为真时,分支将被取。例如,如果选择="Bagel"
,那么(选择!="Sub")==True
.
您可能想要和
s而不是或
s。更好的是,因为您已经定义了有效三明治的列表,您可以写:
if choice not in sandwiches:
我怎么能修好它? replaceAll函数中此字符“{”错误。谢谢。
我需要将12小时的时间转换为24小时的格式。 我现在已经把12小时的时间硬编码了,以使事情更简单。 我的逻辑:输入sting 07:05:45PM提取最后2个字符。如果AM check为前两个字符,则为12。。如果是,则将其设置为00,否则按原样输出,如果PM检查前两位数字是否为12。。如果是,请保持原样,如果不是,则在前2位加上12 总线错误:10是我运行代码得到的
我有一个try-catch块,它检查来自Scanner的输入是否为int。但它只是一次又一次地循环询问要发送多少人。。然后说错误:不是一个数字。没有实际提示用户输入不同的数字。 输入int以外的内容时的输出示例。
在一段时间的循环中,我使循环在一次无效输入后不会返回有效的答案,并重复“错误!无效的客户类型。再试一次。”一遍又一遍,直到我关闭程序。如果我第一次输入R或C作为输入,它会正常工作。当我输入其他任何东西时,我会得到错误信息“错误!无效的客户类型。再试一次。”就像我应该是故意的一样。然而,在输入r或c错误之后,我又会再次出现错误,我所做的任何输入都会一遍又一遍地返回错误信息,直到我关闭程序。有人能告诉
顺便说一下,我搜索了一下这种情况,我认为我没有使用数组索引或者错误地使用了错误的指针。另外,我在这里看到了同样的问题,但我想知道为什么代码不能工作,然后自己解决这个问题。非常感谢大家的帮助。
简单Tkinter码 命令提示符错误 我一直在用这个基本代码尝试Tkinter。但是在运行它时,我得到了一个名为Traceback错误的错误。我正在使用Python 3.8.3。