Проверка наличия первой буквы строки в верхнем регистре

Я хочу создать функцию, которая проверяет, находится ли первая буква строки в верхнем регистре. Это то, к чему я придумал:

def is_lowercase(word):
    if word[0] in range string.ascii_lowercase:
        return True
    else:
        return False

Когда я пытаюсь запустить его, я получаю эту ошибку:

    if word[0] in range string.ascii_lowercase
                             ^
SyntaxError: invalid syntax

Может ли кто-нибудь взглянуть и сообщить, что я делаю неправильно?

Ответ 1

Почему бы не использовать str.isupper();

In [2]: word = 'asdf'   
In [3]: word[0].isupper()
Out[3]: False

In [4]: word = 'Asdf'   
In [5]: word[0].isupper()
Out[5]: True

Ответ 2

Это встроенное для строк:

word = "Hello"
word.istitle() # True

но обратите внимание, что str.istitle выглядит, является ли каждое слово в строке заголовком, поэтому это может дать вам сюрприз:

"Hello world".istitle() # returns False!

Если вы просто хотите проверить самый первый символ строки, используйте это:

word = "Hello world"
word[0].isupper() # True

Ответ 3

Синтаксическая ошибка связана с тем, что вам нужны скобки:

range(string.ascii_lowercase)

Но на самом деле вы не должны использовать диапазон. Это так же просто, как:

if word[0] in string.ascii_lowercase