如何检查字符串中的所有字符是否使用大写字母大写

问题描述 投票:1回答:2

我正在尝试检查字符串中的每个字符是否都大写。我必须使用循环,不能使用正则表达式。我的想法是,循环检查每个字符是否都是大写字母和已知字符。如果到达的字符既不是大写字母也不是已知字符,则退出循环并返回false,否则返回true。

        for i in range(len(s)):
            char = s[i]
            if is_capitalized(char):
                return True
            else:
                return False
                break
    else: 
        return False

这里是该函数的行为的文档字符串。由于某种原因,is_all_caps('CHATte')返回True。

    >>> is_all_caps('HA')
    True
    >>> is_all_caps('CHAT')
    True
    >>> is_all_caps('CHATte')
    False
python string loops
2个回答
2
投票

这是因为一旦函数返回一个值,它就会结束并且不会继续。因此,一旦到达大写字符(if is_capitalized(char)),它将返回True,而不检查其余字符。

[您可以利用这一点,一旦看到无效字符,并且如果for循环到达末尾,那么您就知道所有字符都必须有效(大写):立即返回False:

for i in range(len(s)):
    char = s[i]
    if not is_capitalized(char):
        return False

return True

0
投票

您甚至不需要正则表达式。您可以像这样使用isupper()

isupper()
def is_all_caps(s):
    return all(char.isupper() for char in s)
© www.soinside.com 2019 - 2024. All rights reserved.