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


问题内容

是否有一种“ if”语句可以快速接受字符串的方法,而不管它在python中是小写,大写还是二者兼而有之?

我正在尝试编写一段代码,在其中可以输入数字“ 3”以及单词“三”或“三”或其他任何大写和小写字母的组合,但仍会被“代码中的“ if”语句。我知道我可以使用“
or”使其接受“ 3”以及任何其他字符串,但是在多种情况下,我不知道如何使它接受字符串。到目前为止,我有:

if (Class == "3" or Class=="three"):
    f=open("class3.txt", "a+")

问题答案:

只需将其转换Class为小写str.lower()并进行测试即可。

if Class == "3" or Class.lower() == "three":
    f=open("class3.txt", "a+")

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

if Class == "3" or Class.upper() == "THREE":
    f=open("class3.txt", "a+")

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

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

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

最后要注意的一点是,调用str.lower()str.upper()on"3"会给您"3",但调用整数3会抛出错误,因此您不能使用inif3作为整数可能是的值Class