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

if/else statements accepting strings in both capital and lower-case letters in python

在 python 中,有没有一种快速的方法可以让 "if" 语句接受一个字符串,无论它是小写、大写还是两者兼而有之?

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

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

只需转换 Class to lowercase using 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+")

最后一件事是您可以使用 in.

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

当对 if 语句使用 in 时,您有多种选择。您可以使用我使用的集合 {"3", "three"}、列表 ["3", "three"] 或元组 ("3", "three").

最后要注意的是,在 "3" 上调用 str.lower()str.upper() 会给你 "3",但是在整数 3 上调用它会引发错误,因此如果 3 作为整数可能是 [=13= 的值,则不能使用 in ].

如果您使用 string.lower(),您可以将整个字符串变为小写,以便您可以在 if 语句中检查它。只需将字符串替换为您的实际字符串即可。所以Class.lower()

将字符串设为小写。:

Class.lower() == "three"

您可以强制所有字符串都小写,并且只检查小写,如下所示:

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

通常为了进行不敏感的比较,我会将我的变量设为小写。尽管使用 Class 是一个有风险的名称,因为 class 是关键字,但您可以执行以下操作

Class = Class.lower()
if(Class =="3" or Class=="three"):

以此类推

只有当您不需要为以后的任何事情保留案例时,我才会将它保存为较低的,特别是如果您还有其他比较,比如与 "four"

您可以将 in 运算符与 list 一起使用。

if Class.lower() in ['3', 'three']:

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

>>> '3'.lower()
'3'