字符串的islower() - Python

时间:2015-07-09 21:58:02

标签: python string function

我正在做一些Python自学(非常初学者)并且在我已经给出的这个练习上感到难过 - 意在检查一个字符串是否有任何小写字母:

def is_lower(word):
    for x in word:
        if x.islower():
            return True
        else:
            return False

is_lower("Cat")返回False

is_lower("cAt")返回True

is_lower("caT")返回True

我不确定为什么我会得到这些差异 - 它似乎只是测试了这个词的第一个字母,我不知道为什么。我认为它应该遍历单词的每个字母,因为它是for循环

6 个答案:

答案 0 :(得分:3)

在阅读所有字符之前,您需要保持循环。

for x in word:
    if x.islower():
        # We found *one* lower case letter, so return True
        return True
# We found *no* lower case letters, so return False
return False

或者,您可以简化:

return any(x.islower() for x in word)

答案 1 :(得分:2)

第一次通过该循环时,您可以点击返回True的if语句,也可以点击返回False的else语句。你永远不会到第二个角色。

def is_lower(word):

    for x in word:
        if x.islower():
            #Found a lowercase letter!
            return True
    #Okay, now we're done with the for loop.
    #We have not encountered any lower case letters
    return False

答案 2 :(得分:0)

在第一个循环中直接从函数返回。你在说什么

  1. 遍历所有字母
    1. 检查此字母是否为小写
    2. 我们已经完成了!返回该值
  2. 您可能想要做的是

    for x in word:
        if x.islower():
            return True
    else:
        return False
    

    这将查找第一个字母,如果小写和任何被发现它将返回True

答案 3 :(得分:0)

这与编程控制流程有关。 当函数命中return语句时,它将停止该函数并将该值返回到函数调用的位置。

对于单词Cat,您将使用for x in word:语句逐个循环返回单词,首先检查第一个字母C,该字母不低,所以它返回False函数停止,其他字母不会被检查。

对于单词cAt也是如此,它检查第一个字母c是小写,达到return True并且函数停止。

而是使用像以下一样构建的函数:

for x in word:
    if x.islower():
        return True
return False

这里将检查每个字母是否更低或更低,如果其中一个更低,它将返回True。只有在最后没有一个字母低于它时,它才会返回False。

答案 4 :(得分:0)

如果你想要一个单行:

print True if any(x.islower() for x in word) else False

答案 5 :(得分:0)

def is_lower(word):
    for x in word:
        if x.islower():
            return True
    return False

应该做的伎俩。基本上,遍历所有字母,如果有小写,则返回True(从而退出整个函数)。如果在for循环结束时没有返回,则返回False。