Как проверить, что все символы в строке пишутся с заглавной буквы - PullRequest
1 голос
/ 20 октября 2019

Я пытаюсь проверить, написан ли заглавными буквами каждый символ в моей строке. Я должен использовать цикл, и не могу использовать регулярные выражения. Моя идея состоит в том, что цикл проверяет каждый символ, является ли он заглавными или известными символами. Если он попадает к символу, который не является ни заглавным, ни известным, он выходит из цикла и возвращает ложь, в противном случае он возвращает истину.

Вот строка с описанием поведения функции. По какой-то причине is_all_caps ('HelLo') возвращает True.

    >>> is_all_caps('YES')
    True
    >>> is_all_caps('COW')
    True
    >>> is_all_caps('HelLo')
    False

Ответы [ 2 ]

2 голосов
/ 20 октября 2019

Это потому, что как только функция возвращает значение, оно заканчивается и не продолжается. Таким образом, как только он достигает заглавного символа (if is_capitalized(char)), он возвращает True и не проверяет остальные символы.

Вы можете воспользоваться этим и сразу же вернуть False, как только увидитенедопустимый символ, и если цикл for достигает конца, то вы знаете, что все ваши символы должны быть действительными (с большой буквы):

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

return True
0 голосов
/ 20 октября 2019

Вам даже не нужно регулярное выражение для этого. Вы можете использовать isupper() так:

def is_all_caps(s):
    return all(char.isupper() for char in s)
>>> is_all_caps('HA')
True
>>> is_all_caps('CHAT')
True
>>> is_all_caps('CHATte')
False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...