忽略字符串比较中的大小写

use*_*636 9 python equals

如果我有两个变量,a和b,它们可以是整数,浮点数或字符串.

True如果它们相等,我想返回(如果是字符串,则忽略大小写).

尽可能像Pythonic.

jte*_*ace 20

这是我能想到的最蟒蛇.要求获得宽恕而非获得许可更好:

>>> def iequal(a, b):
...    try:
...       return a.upper() == b.upper()
...    except AttributeError:
...       return a == b
... 
>>> 
>>> iequal(2, 2)
True
>>> iequal(4, 2)
False
>>> iequal("joe", "Joe")
True
>>> iequal("joe", "Joel")
False
Run Code Online (Sandbox Code Playgroud)


DrG*_*arl 7

怎么样,没有实例(不赞成):

def equal(a, b):
    try:
        return a.lower() == b.lower()
    except AttributeError:
        return a == b
Run Code Online (Sandbox Code Playgroud)

  • `除了`,而不是`catch`. (2认同)
  • Python没有`catch`语句.你正在寻找`除了`.但最好不要有一个简单的`except`陈述. (2认同)