【发布时间】:2014-06-09 08:08:52
【问题描述】:
我正在开展一个项目,该项目有时会询问用户是/否问题。我目前使用此代码来处理此类问题:
def yn():
global finalchoice
choice=str(raw_input("Y/N: "))
if choice == "Y":
finalchoice="true"
elif choice == "y":
finalchoice="true"
elif choice == "N":
finalchoice="false"
elif choice == "n":
finalchoice="false"
else:
yn()
pass
但这似乎效率很低,特别是我必须分别检查“Y”和“y”或“N”和“n”。我试过了:
if choice == "Y" or "y":
finalchoice="true"
不幸的是,所有这一切都是忽略“else”命令,并将传递我给它的任何东西。
有什么建议吗?
【问题讨论】:
-
您可以将输入转换为小写,因此即使用户输入大写 if 也会将其转换为小写,并且您可以在 if 大小写中使用 'y' 或 'n'。 'choice=str.lower(raw_input("Y/N: "))'
-
@Aशwiniचhaudhary 这个问题肯定很接近,但 Sudipta 给出了我真正想要的答案。
-
@TanveerAlam 也提供了一个很好的解决方案。谢谢你们!
-
@Sil 为什么使用
"true"而不是True?此外,您可以使用return而不是使用global。 -
@Sil 这没有意义,布尔 not 如何可重用?如果您稍后需要字符串表示,
str(True).lower() == "true".
标签: python python-2.7