if/else语句接受python中的大写和小写字母的字符串

Sof*_*fia 8 python if-statement lowercase capitalize uppercase

有一个"if"语句接受字符串的快速方法,无论它是小写,大写还是两者都在python中?

我正在尝试编写一段代码,其中可输入数字"3"以及"三"或"三"或任何其他资本和小写的混合,它仍将被"如果"代码中的陈述.我知道我可以使用"或"来接受"3"以及任何其他字符串但是不知道如何让它在多个案例中接受字符串.到目前为止,我有:

if (Class == "3" or Class=="three"):
    f=open("class3.txt", "a+")
Run Code Online (Sandbox Code Playgroud)

Tan*_*lam 11

您可以使用in运算符list.

if Class.lower() in ['3', 'three']:
Run Code Online (Sandbox Code Playgroud)

仅供参考'3'.lower()返回字符串3.

>>> '3'.lower()
'3'
Run Code Online (Sandbox Code Playgroud)


mic*_*pri 9

只需Class使用str.lower()并测试它即可转换为小写.

if Class == "3" or Class.lower() == "three":
    f=open("class3.txt", "a+")
Run Code Online (Sandbox Code Playgroud)

当然,你也可以使用str.upper().

if Class == "3" or Class.upper() == "THREE":
    f=open("class3.txt", "a+")
Run Code Online (Sandbox Code Playgroud)

最后一件事是你可以检查"3""three"同时使用in.

if Class.lower() in {"3", "three"}:
    f=open("class3.txt", "a+")
Run Code Online (Sandbox Code Playgroud)

当使用in一个if说法,你有几种选择.您可以使用{"3", "three"}我使用的集合,列表["3", "three"],或元组("3", "three").

最后要注意的是,调用str.lower()str.upper()on "3"会给你"3",但是在整数上调用它3会抛出一个错误,所以你不能使用inif 3作为一个整数是一个可能的值Class.

  • 在上一个示例中,您可能需要考虑使用set:`{'3','three'}`.它不仅提供更快的查找速度,而且是工作的正确数据类型. (2认同)