Case insensitivity in “if” statement (Python)
本问题已经有最佳答案,请猛点这里访问。
我正在做一个项目,在这个项目中,有一点会问用户一个是/否的问题。我目前使用此代码处理此类问题:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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"。我试过了:
1 2 | if choice =="Y" or"y": finalchoice="true" |
不幸的是,所有这些操作都忽略了"else"命令,并将传递我给它的任何内容。
有什么小窍门吗?
它本质上是
你应该这样做:
1 | if choice in ["Y","y"]: |
或者,
1 | if choice =="Y" or choice =="y": |
或者你可以使用:
1 2 | if choice.lower() =="y": finalchoice="true" |
要添加到@sudipta的答案中,一种方法是删除该案例并只取第一个字母:
1 2 | if choice.lower().startswith("y"): finalchoice="true" |