Строка содержит только буквы python

Как я могу проверить, содержит ли строка только буквы в Python?

Примечание: в python2 это не поддерживает Unicode, поэтому «ä».isalpha() — False. Тем не менее, в python3 «ä».isalpha() имеет значение True, потому что python3 имеет строки unicode по умолчанию.

Да, я просто добавил это как дополнительную полезную информацию для ничего не подозревающих читателей

Работает функция str.isalpha() . то есть.

if my_string.isalpha(): print('it is letters') 

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

import re def only_letters(tested_string): match = re.match("^[ABCDEFGHJKLM]*$", tested_string) return match is not None 

Извините, что пошли на придирки, но регулярное выражение в вашем примере также может быть ^[A-HJ-M]*$ , что, на мой взгляд, более читабельно.

Функция string.isalpha() будет работать для вас.

Похоже, люди говорят использовать str.isalpha .

Это одна строка, чтобы проверить, являются ли все символы буквами.

def only_letters(string): return all(letter.isalpha() for letter in string) 

all принимает итерабельное значение booleans и возвращает True , если все логические значения True .

В общем случае all возвращает True , если объекты в вашем iterable будут считаться True . Они считались бы False

На самом деле, теперь мы находимся в глобализированном мире 21 века, и люди больше не общаются с ASCII, поэтому, когда возникает вопрос о том, «это только буквы», вам нужно принимать во внимание буквы из алфавитов, отличных от ASCII. Python имеет довольно классную unicodedata библиотеку, которая, среди прочего, позволяет классифицировать символы Unicode:

unicodedata.category('陳') 'Lo' unicodedata.category('A') 'Lu' unicodedata.category('1') 'Nd' unicodedata.category('a') 'Ll' 

категории и их аббревиатуры определены в стандарте Unicode. Отсюда вы можете легко получить такую ​​функцию:

def only_letters(s): for c in s: cat = unicodedata.category(c) if cat not in ('Ll','Lu','Lo'): return False return True 
only_letters('Bzdrężyło') True only_letters('He7lo') False 

Как вы можете видеть, категории с белым списком можно легко контролировать с помощью кортежа внутри функции. Подробнее см. в этой статье.

Источник

Python операции со строками

В Python операции со строками можно производить различными методами. Практически для каждой операции есть свои методы. В статьте методы строк Python, которая является частью этой статьи, рассмотрены дополнительные методы, советую вам с ними ознакомиться.

isalnum Python

Метод isalnum python возвращает значение True , в случае, если все символы в строке являются буквами и цифрами. В противном случаем метод isalnum() вернет нам значение False .

Пример 1. Работа isalnum()

 
name = "M234onica" print(name.isalnum()) # С пробелом name = "M3onica Gell22er " print(name.isalnum()) name = "Mo3nicaGell22er" print(name.isalnum()) name = "133" print(name.isalnum()) #Результат

Пример 2. Работа isalnum()

 
name = "M0n1caG3ll3r" if name.isalnum() == True: print("Все символы строки (name) являются буквами и цифрами.") else: print("Символы не являются буквенно-цифровыми.")

isalpha Python

Метод isalpha Python, проверяет являются ли все символы в строке алфавитными буквами, в случае если это так, возвращает True , иначе False .

Пример 1. Работа isalpha

 
name = "Monica" print(name.isalpha()) # С пробелом name = "Monica Geller" print(name.isalpha()) # С цифрами name = "Mo3nicaGell22er" print(name.isalpha()) #Результат

Пример 2. Работа isalpha

 
name = "MonicaGeller" if name.isalpha() == True: print("Все строки являются буквенными") else: print("Не являются буквенными") #Результат
All characters are alphabets

Python isdecimal

Метод Python isdecimal проверяет, есть ли в строке десятичные символы. В случае если десятичные символы присутствуют, то он возвращает нам значение True , иначе возвращает значение False .

Пример 1. Работа с isdecimal

 
s = "28212" print(s.isdecimal()) # contains alphabets s = "32ladk3" print(s.isdecimal()) # contains alphabets and spaces s = "Mo3 nicaG el l22er" print(s.isdecimal()) #Результат

Так же существуют еще два метода isdigit() и isnumeric() , которые так же проверяют содержит ли строка цифровые символы, советую вам так же с ними ознакомиться.

isdigit Python

В предыдущем блоке, я описал метод isdecimal() , метод isdigit() работает похожим образом. Данный метод вернет нам значение True , еси все символы в строке являются цифрами, или false в противном случае.

 
str1 = '342' print(str1.isdigit()) str2 = 'python' print(str2.isdigit()) # Результат: True # False

Пример. Работа с методом isdigit

 
s = "28212" print(s.isdigit()) # Содержит буквы и цифры s = "Mo3 nicaG el l22er" print(s.isdigit()) #Результат

В Python надстрочные и подстрочные индексы так же считаются цифровым символом. Соответственно, в случае если в строке содержатся такие символы, то метод isdigit() вернет нам значение True .

Римские цифры к примеру считаются цифровыми символами, но не цифрами, соответственно метод isdigit() вернет нам значение false .

Для проверки, является ли символ числовым, вы можете воспользоваться методом isnumeric() .

islower Python

Метод islower python проверяет являются ли все буквы в строке, буквами нижнего регистра. В случае, если все буквы являются буквами нижнего регистра, метод islower() вернет нам значение True , в случае если в строке содержится хотя бы один заглавный символ, мы получим значение False .

 
s = 'this is good' print(s.islower()) s = 'th!s is a1so g00d' print(s.islower()) s = 'this is Not good' print(s.islower()) #Результат

Как использовать метод islower() в программе?

 
s = 'this is good' if s.islower() == True: print('Does not contain uppercase letter.') else: print('Contains uppercase letter.') s = 'this is Good' if s.islower() == True: print('Does not contain uppercase letter.') else: print('Contains uppercase letter.') #Результат Does not contain uppercase letter. Contains uppercase letter.

Совместно с методом islower() настоятельно советую ознакомиться с методом capitalize().

Python isnumeric

Метод isnumeric() возвращает значение True , в случае если все символы в строке являются числовыми символами. В противном случае метод isnumeric() вернет значение False .

Немного разберемся, что является числовым символом в Python.

  • Десятичные символы — 0,1,2,3,4,5
  • Цифры — Нижний и верхний индекс
  • Символы — Дробь, римские цифры, числители валют

Пример. Работа с методом isnumeric()

 
s = '1242323' print(s.isnumeric()) #s = '²3455' s = '\u00B23455' print(s.isnumeric()) # s = '½' s = '\u00BD' print(s.isnumeric()) s = '1242323' s='python12' print(s.isnumeric()) #Результат

isupper Python

Метод isupper Python проверяет находятся ли все символы в строке в верхнем регистре? Метод isupper() возвращает два параметра.

  • True — в случае если все символы в строке находятся в верхнем регистре
  • False — в случае если все символы в строке находятся в нижнем регистре

Пример 1: Возвращаемое значение isupper()

 
# Пример строки string = "THIS IS GOOD!" print(string.isupper()); # Цифры и буквы string = "THIS IS ALSO G00D!" print(string.isupper()); # Строка с нижним регистром string = "THIS IS not GOOD!" print(string.isupper()); #Результат

Источник

Читайте также:  PHP Program to show current page URL
Оцените статью