Как обнаружить строчные буквы в Python? - программирование
Подтвердить что ты не робот

Как обнаружить строчные буквы в Python?

Мне нужно знать, есть ли функция, которая обнаруживает строчные буквы в строке. Скажем, я начал писать эту программу:

s = input('Type a word')

Будет ли функция, которая позволяет мне обнаружить строчную букву внутри строки s? Возможно, заканчивается присвоением этих букв другой переменной или просто печать строчных букв или число строчных букв.

Пока это будет то, что я хотел бы сделать с этим, меня больше всего интересует, как обнаружить наличие строчных букв. Простейшие методы будут приветствоваться, я только во вводном курсе python, поэтому мой учитель не захочет видеть сложные решения, когда я беру свой средний срок. Спасибо за помощь!

4b9b3361

Ответ 1

Чтобы проверить, является ли символ строчным, используйте метод islower str. Эта простая императивная программа печатает все строчные буквы в строке:

for c in s:
    if c.islower():
         print c

Обратите внимание, что в Python 3 вы должны использовать print(c) вместо print c.


Возможно, закончится назначением этих букв другой переменной.

Чтобы сделать это, я бы предложил использовать понимание списка, хотя вы, возможно, еще не изучили это в своем курсе:

>>> s = 'abCd'
>>> lowercase_letters = [c for c in s if c.islower()]
>>> print lowercase_letters
['a', 'b', 'd']

Или для получения строки вы можете использовать ''.join с генератором:

>>> lowercase_letters = ''.join(c for c in s if c.islower())
>>> print lowercase_letters
'abd'

Ответ 2

Вы можете использовать встроенную функцию any и генератор.

>>> any(c.islower() for c in 'Word')
True

>>> any(c.islower() for c in 'WORD')
False

Ответ 3

Есть два разных способа поиска строчных символов:

  • Используйте str.islower(), чтобы найти строчные буквы. В сочетании со списком вы можете собрать все строчные буквы:

    lowercase = [c for c in s if c.islower()]
    
  • Вы можете использовать регулярное выражение:

    import re
    
    lc = re.compile('[a-z]+')
    lowercase = lc.findall(s)
    

Первый метод возвращает список отдельных символов, второй возвращает список групп символов:

>>> import re
>>> lc = re.compile('[a-z]+')
>>> lc.findall('AbcDeif')
['bc', 'eif']

Ответ 4

Есть много способов для этого, вот некоторые из них:

  1. Используя предопределенную функцию str.islower():

    >>> c = 'a'
    >>> c.islower()
    True
    
  2. Использование функции ord() для проверки того, находится ли код ASCII буквы в диапазоне кодов ASCII строчных букв:

    >>> c = 'a'
    >>> ord(c) in range(97, 123)
    True
    
  3. Проверка, соответствует ли буква строчной букве:

    >>> c = 'a'
    >>> c.lower() == c
    True
    
  4. Проверка, находится ли буква в списке ascii_lowercase string модуля:

    >>> from string import ascii_lowercase
    >>> c = 'a'
    >>> c in ascii_lowercase
    True
    

Но это еще не все, вы можете найти свои собственные пути, если вам не нравятся эти: D.

Наконец, позвольте начать обнаруживать:

d = str(input('enter a string : '))
lowers = [c for c in d if c.islower()]

# here i used islower() because it the shortest and most-reliable
# one (being a predefined function), using this list comprehension
# is (probably) the most efficient way of doing this

Ответ 5

Вы должны использовать raw_input для ввода строки. затем используйте метод islower объекта str.

s = raw_input('Type a word')
l = []
for c in s.strip():
    if c.islower():
        print c
        l.append(c)
print 'Total number of lowercase letters: %d'%(len(l) + 1)

Просто сделай -

dir(s)

и вы найдете islower и другие атрибуты str

Ответ 6

import re
s = raw_input('Type a word: ')
slower=''.join(re.findall(r'[a-z]',s))
supper=''.join(re.findall(r'[A-Z]',s))
print slower, supper

Печать

Type a word: A Title of a Book
itleofaook ATB

Или вы можете использовать выражение для понимания/генерации списка:

slower=''.join(c for c in s if c.islower())
supper=''.join(c for c in s if c.isupper())
print slower, supper

Печать

Type a word: A Title of a Book
itleofaook ATB