/
Вопросы и ответы
/
Python
/

Как посчитать количество заглавных букв в строке python

Как посчитать количество заглавных букв в строке python

5 лет назад

Человек-Молекула

Ответы

1

Чтобы проверить, заглавная ли буква, в пайтон есть метод isupper()

1
2
ch = 'A'
ch.isupper()  # True

А дальше мы можем обойти строку, увеличивая счетчик каждый раз, когда встречаем заглавную букву

1
2
3
4
counter = 0
for ch in s:
    if ch.isupper():
        counter += 1

Или еще короче

1
sum(1 for ch in s if ch.isupper())

4 года назад

Ivan Mamtsev

0

lst = 'Слышала алпвгПчрМно' Big = 0 Small = 0 for i in lst: if i.isupper: Big += 1 for yu in lst: if yu.islower: Small += 1 Print('big', Big, 'small', Small)

3 года назад

Глеб Besst

0

Заглавные буквы считают методом isupper():

1
2
3
text = 'Привет, Мир! Hello World'
count = sum(1 for ch in text if ch.isupper())
print(count)  # 4

isupper() работает с любым алфавитом: русские и латинские буквы считаются одинаково. Цифры, пробелы и знаки препинания он не считает заглавными.

Короткая запись

1
count = sum(map(str.isupper, text))

True при сложении считается как 1, False — как 0.

Через цикл

1
2
3
4
count = 0
for ch in text:
    if ch.isupper():
        count += 1

Частая ошибка: isupper без скобок

1
2
3
for ch in text:
    if ch.isupper:   # без скобок
        count += 1

Без скобок метод не вызывается. ch.isupper — это объект метода, он всегда истинный. Счётчик посчитает все символы строки.

Заглавные и строчные сразу

1
2
3
upper = sum(ch.isupper() for ch in text)
lower = sum(ch.islower() for ch in text)
print(f'заглавных: {upper}, строчных: {lower}')

Только латиница или только кириллица

1
2
3
4
import re

latin = len(re.findall(r'[A-Z]', text))
cyrillic = len(re.findall(r'[А-ЯЁ]', text))

Букву Ё указывают отдельно: в таблице символов она стоит вне диапазона А–Я.

Список заглавных букв

1
2
upper_letters = [ch for ch in text if ch.isupper()]
print(upper_letters)  # ['П', 'М', 'H', 'W']

Сколько раз встречается каждая

1
2
3
4
from collections import Counter

Counter(ch for ch in text if ch.isupper())
# Counter({'П': 1, 'М': 1, 'H': 1, 'W': 1})

Проверить всю строку

isupper() у строки целиком проверяет, что все буквы заглавные:

1
2
3
'HEXLET'.isupper()    # True
'Hexlet'.isupper()    # False
'2026 ГОД'.isupper()  # True, цифры не мешают

Строки, циклы и методы разбирают в бесплатном курсе «Основы Python».

день назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845