代码之家  ›  专栏  ›  技术社区  ›  Vigorou

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

  •  -3
  • Vigorou  · 技术社区  · 11 年前

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

    def not3(string2, string1):
        if len(string2) < 3:  return True
        if string2[:3] in string1: return False
        return not3(string2[1:], string1)
    
    2 回复  |  直到 11 年前
        1
  •  3
  •   Martijn Pieters    11 年前

    小写 in 操作数:

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

    这个 len() 测试不受案例影响。

        2
  •  1
  •   flornquake    11 年前

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

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

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

    您还可以制作一个不区分大小写的函数版本,如下所示:

    def not3_case_insensitive(string2, string1):
        return not3(string2.lower(), string1.lower())