在Python中接受大小写字母

4 投票
3 回答
18685 浏览
提问于 2025-04-16 05:42

我正在做一个菜单显示的功能,其中字母“m”可以让用户返回主菜单。我想知道怎么才能让这个功能在字母“m”是大写还是小写的时候都能正常工作?

elif choice == "m":

3 个回答

1

这样写既清晰又简洁:

    elif choice in {'m', 'M'}:

当然,要这样表达需要使用Python 2.7或3.x版本,因为它们支持集合字面量。我不太清楚这种写法在效率上和其他答案相比如何,但我觉得在这种情况下,效率可能不是最重要的。

7
elif choice.lower() == "m":

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

14

其中之一

elif choice in ("m", "M"):
elif choice in "mM":                       # false positive if choice == ''
elif choice == 'm' or choice == 'M':
elif choice.lower() == 'm':

从可维护性的角度来看, 第四种方案在你想要扩展到不区分大小写的多字母字符串比较时更好,因为在第一和第三种方案中,你需要提供所有2N种可能性。而第二种方案只适用于单字符字符串。

使用第四种方案时,当你想把 'm' 改成其他字母时,也不会漏掉任何情况。

从效率的角度来看, 第二种方案是最有效率的,其次是第一种,然后是第三种,最后是第四种。这是因为第三种方案涉及更多的操作;而在Python中,函数调用和获取属性的速度较慢,这使得第四种方案相对较慢。

有关详细信息,请查看 http://pastie.org/1230957,其中有拆解和 timeit 的结果。

当然,除非你要进行一千万次这样的比较,否则每种方案之间没有明显的区别。

撰写回答