Проверка на регистр Python
Здравствуйте. Можно ли как-нибудь проверить символ на регистр, не сравнивая его со списком всех букв алфавита в нужном регистре? Т.е. необходимо избежать подобной конструкции:
if symbol in ('a','b','c'. )
Отслеживать
задан 21 окт 2017 в 16:10
139 1 1 золотой знак 2 2 серебряных знака 9 9 бронзовых знаков
конструкцию, кстати, можно было бы заменить на symbol in ‘abc. ‘
21 окт 2017 в 16:16
интересно как проверить символы $%& на регистр?
24 июн 2022 в 10:12
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Отслеживать
ответ дан 21 окт 2017 в 16:12
Sergey Gornostaev Sergey Gornostaev
66.4k 6 6 золотых знаков 51 51 серебряный знак 112 112 бронзовых знаков
о, отлично, спасибо
21 окт 2017 в 16:14
a = "a" print(a.isupper())
Отслеживать
27.2k 2 2 золотых знака 45 45 серебряных знаков 76 76 бронзовых знаков
ответ дан 1 дек 2020 в 14:54
user418941 user418941
11 1 1 бронзовый знак
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.21.1314
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Метод str.isupper() в Python, проверяет строку на верхний регистр
Проверяет, что все символы строки находятся в верхнем регистре
Синтаксис:
str.isupper()
Параметры:
Возвращаемое значение:
- bool , True — если все слова имеют верхний регистр символов
Описание:
Метод str.isupper() возвращает True , если все символы в строке str прописные (имеют верхний регистр), при этом строка не должна быть пустой, то есть должна иметь хотя бы один символ в верхнем регистре и не состоять из одних пробелов.
Метод str.isupper() во всех других случаях возвращает False .
Строка состоящая из символов не имеющих возможности приведение к верхнему регистру также будет возвращать False .
Например выражение ‘379’.isupper() возвращает False .
Для приведения символов строки к верхнему регистру используйте метод str.upper() .
Примеры проверки строки на верхний регистр.
>>> ''.isupper() # False >>> 'а'.isupper() # False >>> 'А'.isupper() # True >>> '20'.isupper() # False >>> 'Это 20'.isupper() # False >>> 'ЭТО 20'.isupper() # True >>> 'ВСЕ СИМВОЛЫ в СТРОКЕ ПРОПИСНЫЕ (ИМЕЮТ ВЕРХНИЙ РЕГИСТР)'.isupper() # False >>> 'ВСЕ СИМВОЛЫ В СТРОКЕ ПРОПИСНЫЕ (ИМЕЮТ ВЕРХНИЙ РЕГИСТР)'.isupper() # True
- ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
- Метод str.capitalize(), первая буква в строке заглавная
- Метод str.casefold(), сворачивает регистр строки
- Метод str.center(), выравнивает строку по центру
- Метод str.count(), считает совпадения в строке
- Метод str.encode(), преобразует строку в байты
- Метод str.endswith(), совпадение с концом строки
- Метод str.expandtabs(), меняет табуляцию на пробел
- Метод str.find(), индекс первого совпадения в строке
- Метод str.format(), форматирует строку
- Метод str.format_map()
- Метод str.index(), индекс первого совпадения подстроки
- Метод str.isalnum(), строка состоит из цифр и букв
- Метод str.isalpha(), строка состоит только из букв
- Метод str.isascii(), все символы в строке являются ASCII
- Метод str.isdecimal(), проверяет строку на десятичное число
- Метод str.isdigit(), строка состоит только из цифр
- Метод str.isidentifier() проверяет строку на идентификатор Python
- Метод str.islower( ), проверяет строку на нижний регистр
- Метод str.isnumeric(), проверяет строку на числовые символы
- Метод str.isprintable(), проверяет на доступность для печати
- Метод str.isspace(), является ли строка пробелом
- Метод str.istitle(), проверяет наличие заглавных букв в словах
- Метод str.isupper(), проверяет строку на верхний регистр
- Метод str.join(), объединяет список строк
- Метод str.ljust(), ровняет строку по левому краю
- Метод str.lower(), строку в нижний регистр
- Метод str.lstrip(), обрезает символы в начале строки
- Метод str.maketrans(), таблица символов для str.translate()
- Метод str.partition(), делит строку по первому совпадению
- Метод str.removeprefix(), удаляет префикс строки
- Метод str.removesuffix(), удаляет суффикс строки
- Метод str.replace(), меняет подстроку/символ в строке
- Метод str.rfind(), индекс последнего совпадения подстроки
- Метод str.rindex(), индекс последнего совпадения в строке
- Метод str.rjust(), ровняет строку по правому краю
- Метод str.rpartition(), делит строку по последнему совпадению
- Метод str.rsplit(), делит строку справа
- Метод str.rstrip(), обрезает символы на конце строки
- Метод str.split(), делит строку по подстроке
- Метод str.splitlines(), делит текст по символу ‘\n’
- Метод str.startswith(), совпадение с началом строки
- Метод str.strip(), обрежет строку с обоих концов
- Метод str.swapcase(), сменит регистр символов в строке
- Метод str.title(), каждое слово с заглавной буквы
- Метод str.translate(), транслирование строки
- Метод str.upper(), переведет строку в верхний регистр
- Метод str.zfill(), дополнит строку нулями
- Форматирование строк в стиле printf
- F-string. Форматированные строки
Как проверить регистр буквы python
Рассмотрим основные методы строк, которые мы можем применить в приложениях:
- isalpha() : возвращает True, если строка состоит только из алфавитных символов
- islower() : возвращает True, если строка состоит только из символов в нижнем регистре
- isupper() : возвращает True, если все символы строки в верхнем регистре
- isdigit() : возвращает True, если все символы строки — цифры
- isnumeric() : возвращает True, если строка представляет собой число
- startswith(str) : возвращает True, если строка начинается с подстроки str
- endswith(str) : возвращает True, если строка заканчивается на подстроку str
- lower() : переводит строку в нижний регистр
- upper() : переводит строку в вехний регистр
- title() : начальные символы всех слов в строке переводятся в верхний регистр
- capitalize() : переводит в верхний регистр первую букву только самого первого слова строки
- lstrip() : удаляет начальные пробелы из строки
- rstrip() : удаляет конечные пробелы из строки
- strip() : удаляет начальные и конечные пробелы из строки
- ljust(width) : если длина строки меньше параметра width, то справа от строки добавляются пробелы, чтобы дополнить значение width, а сама строка выравнивается по левому краю
- rjust(width) : если длина строки меньше параметра width, то слева от строки добавляются пробелы, чтобы дополнить значение width, а сама строка выравнивается по правому краю
- center(width) : если длина строки меньше параметра width, то слева и справа от строки равномерно добавляются пробелы, чтобы дополнить значение width, а сама строка выравнивается по центру
- find(str[, start [, end]) : возвращает индекс подстроки в строке. Если подстрока не найдена, возвращается число -1
- replace(old, new[, num]) : заменяет в строке одну подстроку на другую
- split([delimeter[, num]]) : разбивает строку на подстроки в зависимости от разделителя
- partition(delimeter) : разбивает строку по разделителю на три подстроки и возвращает кортеж из трех элементов — подстрока до разделителя, разделитель и подстрока после разделителя
- join(strs) : объединяет строки в одну строку, вставляя между ними определенный разделитель
Например, если мы ожидаем ввод с клавиатуры числа, то перед преобразованием введенной строки в число можно проверить, с помощью метода isnumeric() введено ли в действительности число, и если так, то выполнить операцию преобразования:
string = input("Введите число: ") if string.isnumeric(): number = int(string) print(number)
Проверка, начинается или оканчивается строка на определенную подстроку:
file_name = "hello.py" starts_with_hello = file_name.startswith("hello") # True ends_with_exe = file_name.endswith("exe") # False
Удаление пробелов в начале и в конце строки:
string = " hello world! " string = string.strip() print(string) # hello world!
Дополнение строки пробелами и выравнивание:
print("iPhone 7:", "52000".rjust(10)) print("Huawei P10:", "36000".rjust(10))
iPhone 7: 52000 Huawei P10: 36000
Поиск в строке
Для поиска подстроки в строке в Python применяется метод find() , который возвращает индекс первого вхождения подстроки в строку и имеет три формы:
- find(str) : поиск подстроки str ведется с начала строки до ее конца
- find(str, start) : параметр start задает начальный индекс, с которого будет производиться поиск
- find(str, start, end) : параметр end задает конечный индекс, до которого будет идти поиск
Если подстрока не найдена, метод возвращает -1:
welcome = "Hello world! Goodbye world!" index = welcome.find("wor") print(index) # 6 # поиск с 10-го индекса index = welcome.find("wor",10) print(index) # 21 # поиск с 10 по 15 индекс index = welcome.find("wor",10,15) print(index) # -1
Замена в строке
Для замены в строке одной подстроки на другую применяется метод replace() :
- replace(old, new) : заменяет подстроку old на new
- replace(old, new, num) : параметр num указывает, сколько вхождений подстроки old надо заменить на new. По умолчанию num равно -1, что соответствует первой версии метода и приводит к замене всех вхождений.
phone = "+1-234-567-89-10" # замена дефисов на пробел edited_phone = phone.replace("-", " ") print(edited_phone) # +1 234 567 89 10 # удаление дефисов edited_phone = phone.replace("-", "") print(edited_phone) # +12345678910 # замена только первого дефиса edited_phone = phone.replace("-", "", 1) print(edited_phone) # +1234-567-89-10
Разделение на подстроки
Метод split() разбивает строку на список подстрок в зависимости от разделителя. В качестве разделителя может выступать любой символ или последовательность символов. Данный метод имеет следующие формы:
- split() : в качестве разделителя используется пробел
- split(delimeter) : в качестве разделителя используется delimeter
- split(delimeter, num) : параметр num указывает, сколько вхождений delimeter используется для разделения. Оставшаяся часть строки добавляется в список без разделения на подстроки
text = "Это был огромный, в два обхвата дуб, с обломанными ветвями и с обломанной корой" # разделение по пробелам splitted_text = text.split() print(splitted_text) print(splitted_text[6]) # дуб, # разбиение по запятым splitted_text = text.split(",") print(splitted_text) print(splitted_text[1]) # в два обхвата дуб # разбиение по первым пяти пробелам splitted_text = text.split(" ", 5) print(splitted_text) print(splitted_text[5]) # обхвата дуб, с обломанными ветвями и с обломанной корой
Еще один метод — partition() разбивает строку по разделителю на три подстроки и возвращает кортеж из трех элементов — подстрока до разделителя, разделитель и подстрока после разделителя:
text = "Это был огромный, в два обхвата дуб, с обломанными ветвями и с обломанной корой" text_parts = text.partition("дуб") print(text_parts) # ('Это был огромный, в два обхвата ', 'дуб', ', с обломанными ветвями и с обломанной корой')
Если разделитель с строке не найден, то возвращается кортеж с одной строкой.
Соединение строк
При рассмотрении простейших операций со строками было показано, как объединять строки с помощью операции сложения. Другую возможность для соединения строк представляет метод join() : он объединяет список строк. Причем текущая строка, у которой вызывается данный метод, используется в качестве разделителя:
words = ["Let", "me", "speak", "from", "my", "heart", "in", "English"] # разделитель - пробел sentence = " ".join(words) print(sentence) # Let me speak from my heart in English # разделитель - вертикальная черта sentence = " | ".join(words) print(sentence) # Let | me | speak | from | my | heart | in | English
Вместо списка в метод join можно передать простую строку, тогда разделитель будет вставляться между символами этой строки:
word = "hello" joined_word = "|".join(word) print(joined_word) # h|e|l|l|o
Функции обрабатывающие регистр символов в строке
Функция capitalize() возвращает копию строки с первым символом в верхнем регистре, а другие символы в нижнем регистре.
Пример.
# Функция str.capitalize() # Ко вниманию принимаются только буквы s1 = 'abcdef ghi' s2 = str.capitalize(s1) # s2 = 'Abcdef ghi' s1 = 't' s2 = str.capitalize(s1) # s2 = 'T' s1 = '234' s2 = str.capitalize(s1) # s2 = '234' s1 = 'ABCDEF GHI' s2 = str.capitalize(s1) # s2 = 'Abcdef ghi' # Учет кирилличной азбуки s1 = 'байт!' s2 = str.capitalize(s1) # s2 = '\xc1\xe0\xe9\xf2!'
2. Функция str.casefold() . Вернуть свернутую копию строки
Функция str.casefold() возвращает свернутую копию строки. Понятие «свернутая копия» строки означает, что в такой копии удалены все отличия регистра символов в строке.
Особенность «свернутой» копии строки состоит в том, что функция lower() не может быть применена к некоторым символам, а функция casefold() может. Примером такого символа есть немецкий символ ‘ß’, который в функции casefold() заменяется на символы ss в отличие от функции lower() .
Функция введена в Python начиная из версии 3.3.
Пример.
# Функция casefold() - возвращает свернутую копию строки # Использование со строками, содержащими символы верхнего и нижнего регистров s1 = 'Abcdef Ghi' s2 = str.casefold(s1) # s2 = 'abcdef ghi' s3 = s1.casefold() # s3 = 'abcdef ghi' # использование со строками, содержащими символы верхнего регистра s4 = 'ABCDEF SS' s5 = s4.casefold() # s5 = 'abcdef ss'
3. Функция str.lower() . Преобразование регистра символов
Функция str.lower() преобразовывает символы в нижний регистр.
Пример.
# Функция str.lower() s1 = 'ABCD' s2 = s1.lower() # s2 = 'abcd' s2 = 'Hello World!'.lower() # s2 = 'hello world!'
4. Функция str.swapcase() . Вернуть копию строки с преобразованием строчных символов в заглавные и наоборот
Функция str.swapcase() возвращает копию строки с заглавными буквами, преобразованными в строчные и, наоборот, строчными преобразованными в заглавные. Общая форма вызова функции следующая:
s2 = s1.swapcase()
- s1 – исходная строка, которую нужно преобразовать;
- s2 – результирующая строка в которой все заглавные символы преобразованы в строчные, а все строчные преобразованы в заглавные.
Для данной функции нельзя утверждать, что нижеследующее выражение
s.swapcase().swapcase() == s
будет всегда выполняться.
Пример.
# Функция str.swapcase() s1 = 'Abcd' s2 = s1.swapcase() # s2 = 'aBCD' s1 = 'a+5+BC+D' s2 = str.swapcase(s1) # s2 = 'A+5+bc+d' s2 = 'hELLO WORLD'.swapcase() # s2 = 'Hello world' # Для кириллицы s1 = 'вЕБ-САЙТ' s2 = s1.swapcase() # s2 = 'Веб-сайт'
5. Функция str.title() . Вернуть строку с заглавными буквами в словах
Функция str.title() возвращает строку, в которой все слова начинаются с заглавной буквы. Другие символы в этих словах есть строчные. Общая форма использования функции следующая:
s2 = s1.title()
- s1 – исходная строка;
- s2 – результирующая строка, в которой реализуется корректировка символов, которые есть началами слов.
Функция имеет одну особенность. Символ ‘\» апострофа образовывает границу слова. В некоторых случаях это нежелательно. Во избежание этого недостатка нужно использовать регулярные выражения.
Пример.
# Функция str.title s1 = 'hello world!' # s2 = 'Hello World!' s2 = s1.title() s1 = 'HELLO WORLD!' s2 = str.title(s1) # s2 = 'Hello World!' # Отдельный случай с символом апострофа '\'' s1 = "I'm happy!" s2 = s1.swapcase() # s2 = 'i'M HAPPY!'
6. Функция str.upper() . Конвертировать символы строки в верхний регистр
Функция str.upper() позволяет получить копию строки в которой все символы находятся в верхнем регистре. Согласно документации Python общая форма функции следующая:
s2 = s1.upper()
- s1 – исходная строка;
- s2 – результирующая строка-копия, в которой символы нижнего регистра строки s1 заменены на символы верхнего регистра.
Конвертирование символов осуществляется только для символов имеющих верхний регистр. Это символы, которые включены в следующие категории:
- «Lu» – Letter uppercase;
- «Ll» – Letter lowercase;
- «Lt» – Letter titlecase.
Пример.
# Функция str.upper() s1 = 'abcdef' s2 = s1.upper() # s2 = 'ABCDEF' s1 = '' # пустая строка s2 = str.upper(s1) # s2 = '' s1 = '5+6=11' s2 = s1.upper() # s2 = '5+6=11' s2 = 'aBc deFg'.upper() # s2 = 'ABC DEFG'
Связанные темы
- Функции для работы со строками, определяющие особенности строки
- Функции поиска и замены подстроки в строке
- Функции обрабатывающие и определяющие начало и конец строки
- Функции обработки строки в соответствии с форматом или правилом кодирования. Стили форматирования
- Функции выравнивания строк
