2015-12-24 3 views
-1

Как я могу написать код, так python ТОЛЬКО распечатывает нижний регистр буквы строки. В этом случае следует исключить П.Только печатать строчные буквы в строке

Я попытался это:

word = "Programming is fun!" 

for letter in word: 
     if letter.lower(): 
     print letter 

Но это не только распечатать строчные буквы. Как я мог получить только строчные символы из строки вместо целой строки в нижнем регистре.

+1

«Это не работает» является почти полностью бесполезно сообщением об ошибке. Вы можете уйти с этим в вопросе, это просто, потому что то, что неправильно, сразу становится очевидным для большинства опытных программистов на Python. Поскольку ваши программы (и ваши вопросы о них) становятся более продвинутыми, им потребуется больше информации о том, что вы пробовали, что произошло, почему вы чувствовали, что это была ошибка, и то, что вы ожидали от этого. –

+0

Спасибо, я буду помнить об этом. Я только начинал, поэтому я не очень люблю говорить, как программист. –

ответ

3

Вы хотите letter.islower() (какие тесты), а не letter.lower() (который преобразует).

Если вы хотите печатать не-обсаженных символы тоже, вы бы проверить:

if letter.islower() or not letter.isalpha(): 
0

Вы можете использовать

print filter(lambda c: c.islower(), word) 
1

Попробуйте использовать islower вместо:

letter.islower() 
1

Yours не работает, потому что вы вызвали .lower(), который является методом класса String - it cha в случае с буквой, о которой идет речь, и приводит к True.

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

word = "Hello World!" 
for letter in word: 
    if letter.islower(): 
     print(letter) 

Обратите внимание, что есть проверка на равенство в шахте, которая является то, что ваш отсутствует.

EDIT: Как указывалось в других ответах, .islower() является более лаконичным способом проверки случая буквы. Аналогично, .isupper() будет print только заглавными буквами.

0

Что будет на самом деле ответить на ваш вопрос (как я могу сказать от представленной продукции) будет что-то вроде: import string word="Programming is fun!" filter(lambda c: c.islower() or not(c.isupper() and c in string.printable), word)

Смежные вопросы