2013-06-14 8 views
0

Я видел методы вроде isAlpha(), но он принимает пробелы и пунктуации, которые я не хочу. Любой способ проверить, что строка содержит только буквы большого или верхнего регистра алфавита?Строка только содержит буквы

E.g. psudo:

"asdf".isLetters() -> true 

"as df".isLetters() -> false 
"as. df:".isLetters() -> false 

ответ

6
>>> "asdf".isalpha() 
True 
>>> "as df".isalpha() 
False 
>>> "as. df:".isalpha() 
False 

Согласно documentation for .isalpha() он делает то, что кажется, что вы после:

Возвращения верны, если все символы в строке являются алфавитными и есть по крайней мере один символ, false в противном случае.

Чтобы проверить верхний регистр, используйте my_str.isupper()

+0

'.isupper()' проверяет верхний регистр тоже –

+0

@JackAidley спасибо, я пропустил эту часть вопроса – jamylak

+0

Спасибо! Была ли какая-то логическая ошибка управления потоком, которая меня обманула – mfaerevaag

0
import re 

if re.match(r"^[A-Za-z]*$", some_string): 
    print "yey"! 
+0

Yup, и это можно легко изменить до 're.match (r"^[AZ] * $ ", some_string), чтобы обнаружить только буквы верхнего регистра –

+1

@JackAidley По-прежнему кажется, что 's.isalpha() и s.isupper()' были бы более уместны, а регулярное выражение sloww – jamylak

+0

True. Но стоит знать о более гибких решениях, позволяющих справиться с более сложными делами. –

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