-3

如何使此代码不区分大小写?建议?

def not3(string2, string1):
    if len(string2) < 3:  return True
    if string2[:3] in string1: return False
    return not3(string2[1:], string1)
4

2 回答 2

3

小写in操作数:

if string2[:3].lower() in string1.lower(): return False

len()测试不受大小写的影响。

于 2013-09-09T22:32:24.443 回答
1

通常,您可能希望在将输入发送到函数之前将其小写:

>>> not3('abc', 'ABCD')
True
>>> not3('abc'.lower(), 'ABCD'.lower())
False

这样,您可以在区分大小写或不区分大小写的上下文中使用相同的函数。

您还可以像这样制作不区分大小写的函数版本:

def not3_case_insensitive(string2, string1):
    return not3(string2.lower(), string1.lower())
于 2013-09-09T22:36:07.753 回答