Метод str.isalpha() в Python, строка состоит только из букв
Проверяет, что строка состоит только из буквенных символов
Синтаксис:
str.isalpha()
Внимание! Ссылки для тех, кто ищет:
- как можно проверить наличие/вхождение определенного символа/буквы/подстроки в строке,
- узнать порядковый индекс определенного символа/буквы/подстроки в строке,
- сколько раз встречается определенный символ/буква/подстрока в строке.
Параметры:
Возвращаемое значение:
- bool , True — если строка содержит только буквы
Описание:
Метод строки str.isalpha() возвращает True , если все символы в строке str являются буквенными и есть хотя бы один символ (строка не пустая и не состоит из одного пробела), в противном случае False .
Буквенные символы — это символы, определенные в базе данных символов Юникода как “буква”. То есть, те символы, у которых общее свойство категории является одним из Lm , Lt , Lu , Ll или Lo . Обратите внимание, что это определение отличается от понятия “Алфавитный”, определенного в стандарте Unicode.
Примеры определения, что строка состоит только из буквенных символов.
>>> ''.isalpha() # False >>> ' '.isalpha() # False >>> '123'.isalpha() # False >>> 'abcABC'.isalpha() # True >>> '123abc'.isalpha() # False >>> '123 abc'.isalpha() # False >>> '123-abc'.isalpha() # False
- ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
- Метод 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
Выведите все символы ASCII с кодами от 33 до 126 и их коды в следующем виде:
! 33 " 34 # 35 . > 125 ~ 126
B: От омеги до коппы
Напишите программу, которые выводит исторические кириллические символы, начиная с омеги и заканчивая коппой.
Программа должна вывести заглавные буквы, их коды — чётные числа от 1120 до 1152, разделяя символы пробелом.
Ѡ Ѣ Ѥ Ѧ Ѩ Ѫ Ѭ Ѯ Ѱ Ѳ Ѵ Ѷ Ѹ Ѻ Ѽ Ѿ Ҁ
С: Следующий символ
Дан один символ. Выведите следующий за ним символ в таблице ASCII.
D: Символы в заданном интервале
Выведите подряд, без пробелов, все символы, лежащие в таблице ASCII между двумя заданными символами.
Программа получает на вход два символа, каждый в отдельной строке и должна вывести строку, начинающуюся первым из заданных символов и заканчивающуюся вторым.
ABCD
0123456789
E: isdigit
Для данного символа проверьте, является ли он цифрой.
Решение оформите в виде функции isdigit(c: str) -> bool .
На проверку сдайте только тело функции.
В решении нельзя использовать циклы условную инструкцию. В решении нельзя использовать константы с неочевидным значением типа 48 или 57. Да и функция ord тоже не нужна.
isdigit('0')
True
isdigit('A')
False
Для тех, кто решил эту задачу. У строк в языке Python есть метод isdigit() , то есть использовать его нужно так: s.isdigit() . Если длина строки больше 1, то метод возвращает True , если все символы строки являются цифрами.
Помимо этого есть методы isalpha , isupper , islower , проверяющие, является ли символ буквой, заглавной буквой, строчной буквой. Об этих и других методах можно прочитать в документации.
F: upper
Напишите функцию upper(c: str) -> str , которая переводит символ в верхний регистр, то есть для строчной буквы латинского алфавита возвращает сооветствующую заглавную букву латинского алфавита, а для остальных символов возвращает тот же символ.
На проверку сдайте только тело функции.
upper('f')
upper('F')
upper('4')
G: lower
Напишите функцию lower(s: str) -> str , которая переводит все символы данной строки в нижний регистр.
На проверку сдайте только тело функции.
lower('Hello, world!')
'hello, world!'
Для тех, кто решил эту задачу. У строк в языке Python есть методы upper() и lower() , аналогичные данным. Об этих и других методах можно прочитать в документации.
H: Палиндром
Дано слово, состоящее только из заглавных и строчных латинских букв. Проверьте, верно ли что это слово читается одинаково как справа налево, так и слева направо (то есть является палиндромом), если считать заглавные и строчные буквы не различающимися.
Решение оформите в виде функции is_palindrome(s: str) -> bool , возвращающей значение типа bool .
is_palindrome('Radar')
True
is_palindrome('True')
False
I: Значение выражения — 1
Дана непустая строка, состоящая из \(n\) цифр (т.е. однозначных чисел), между которыми стоит \(n-1\) знак операции, каждый из которых может быть либо +, либо -. Вычислите значение данного выражения.
Решение оформите в виде функции evaluate(s: str) -> int , получающей в качестве аргумента строку и возвращающую ее значение.
На проверку сдайте только тело функции. Решение должно иметь сложность \(O(n)\), где \(n\) — длина строки.
evaluate('1+2-3')
J: Значение выражения — 2
Дано выражение одно из следующих видов: \(A+B\), \(A-B\) или \(A\ast B\), где \(A\) и \(B\) — целые неотрицательные числа. Определите значение этого выражения.
Решение оформите в виде функции evaluate(s: str) -> int , получающей в качестве аргумента строку и возвращающую ее значение.
На проверку сдайте только тело функции.
evaluate('2*2')
evaluate('100-101')
K: Количество слов
Дана строка, возможно, содержащая пробелы. Определите количество слов в этой строке. Слово — это несколько подряд идущих букв латинского алфавита (как заглавных, так и строчных).
Решение оформите в виде функции count_words(s: str) -> int , возвращающее значение типа int .
На проверку сдайте только тело функции.
count_words('Yesterday, all my troubles seemed so far away')
L: Самое длинное слово
Дана строка. Найдите в этой строке самое длинное слово и выведите его. Если в строке несколько слов одинаковой максимальной длины, выведите первое из них. Решение оформите в виде функции longest_word(s: str) -> str , возвращающей значение типа str . Если в строке нет ни одной буквы, функция возвращает пустую строку.
На проверку сдайте только тело функции.
longest_word('In a hole in the ground there lived a hobbit.')
'ground'
M: Слова с прописной буквы
Дана строка. Измените регистр символов в этой строке так, чтобы первая буква каждого слова была заглавной, а остальные буквы — строчными.
Решение оформите в виде функции capitalize(s: str) -> str .
На проверку сдайте только тело функции.
capitalize('In a hole in the ground there lived a hobbit.')
'In A Hole In The Ground There Lived A Hobbit.'
N: Максимальная буква
Дана строка. Определите максимальную букву, которая встречается в этой строке, при этом заглавные и строчные буквы нужно считать одинаковыми. Под буквой подразумеваются как русские, так и английские буквы, строка может содержать русские и английские буквы.
При решении задачи вам понадобятся методы строк, упомянутые раньше:
s.isalpha() — возвращает True или False , в зависимости от того, является ли символ буквой (все символы строки, если их несколько).
s.upper() — возвращает значение строки, переведённой в верхний регистр.
s.lower() — возвращает значение строки, переведённой в нижний регистр.
Решение оформите в виде функции max_char(s: str) -> str . Функция должна возвращать максимальную букву в верхнем регистре.
Если в данной строке нет символов, являющихся буквами, функция возвращает пустую строку.
На проверку сдайте только тело функции.
max_char('Встретив двусмысленность, отбрось искушение угадать.')
O: Частота появления букв
Дана программа, которая может содержать ASCII-символы и русские буквы. Посчитайте, сколько раз в этой строке встречается каждый возможный символ. Выведите все встречающиеся в этой строке символы в порядке возрастания их кодов, а затем количество вхождений этого символа. Пробелы при этом игнорируйте (считаются только символы, чьи коды больше 32).
Задача должна решаться за однократный проход по данной строке. Для этого создайте список count , в котором значение count[i] будет равно количеству вхождений символа chr(i) в данную строку.
Максимальный код символа русского алфавита равен 1105 (для буквы «ё»).
Встретив двусмысленность, отбрось искушение угадать.
, 1 . 1 В 1 а 2 б 1 в 2 г 1 д 2 е 4 и 3 к 1 л 1 м 1 н 3 о 3 р 2 с 6 т 5 у 3 ш 1 ы 1 ь 3
P: Самая частая буква
Дана строка содержащая буквы русского и латинского алфавитов и иные символы. Определите, какая буква (или какие буквы) в этой строке встречается чаще всего. При решении этой задачи заглавные и строчные буквы считаются одинаковыми, а прочие символы, не являющиеся буквами, не учитываются. Буква «Ё» в тексте не встречается. Заглавные и строчные буквы считаются одинаковыми.
Программа должна вывести в первой строке все буквы, которые встречаются чаще всего в исходной строке. Выводить буквы необходимо в заглавном написании, в алфавитном порядке, без пробелов. Во второй строке выведите единственное число — сколько раз в данной строке встречаются эти буквы.
При решении этой задачи нельзя пользоваться вложенными циклами. Входная строка должна обрабатываться за один проход.
Beautiful is better than ugly. Красивое лучше, чем уродливое.
Q: Анаграммы
Даны две строки. Определите, можно ли получить одну из другой перестановкой символов.
Программа получает на вход две строки, содержащие только ASCII-символы, не содержащие пробелы.
Программа должна вывести слово YES , если одна строка может быть получена из другой перестановкой букв или NO .
Заглавные и строчные буквы в этой задаче считаются различными.
eleven_plus_two
twelve_plus_one
Eleven_plus_two
Twelve_plus_one
R: Пробелы после запятой
После запятой в тексте должен строять пробел. Дана строка, вставкой пробелов в неё добейтесь выполнения этого правила. Не надо вставлять пробел, если он там уже есть.
Question of Life,The Universe, and Everything
Question of Life, The Universe, and Everything
S: Шифр Цезаря
В шифре Цезаря каждый символ заменяется на другой символ, третий по счету в алфавите после данного, с цикличность. То есть символ A заменяется на D, символ B — на E, символ C — на F, . символ Z на C.
Дана строка, зашифруйте ее при помощи шифра Цезаря. Решение оформите в виде функции caesar_cipher(s: str, k: int) -> str , возвращающей новую строку. s — исходная строка, k — величина сдвига. Величина сдвига может быть произвольным целым числом, в том числе и отрицательным.
В тексте могут быть только заглавные английские буквы и символы ASCII, не являющиеся буквами.
caesar_cipher('IN A HOLE IN THE GROUND THERE LIVED A HOBBIT.', 3)
'LQ D KROH LQ WKH JURXQG WKHUH OLYHG D KREELW.'
T: Шифр замены — зашифровать сообщение
Шифр замены обобщение шифра Цезаря. Каждая буква сообщения меняется на какую-то другую букву (разные буквы меняются на разные буквы). Символы, не являющиеся буквами, остаются такими же. Ключом шифрования является перестановка: указание того, на какую букву должна быть заменена каждая другая буква.
Вам дана строка, содержащая только заглавные латинские буквы и символы ASCII, не являющиеся буквами. Зашифруйте её при помощи шифра замены.
Решение оформите в виде функции substitution_cipher(msg: str, key: str) -> str , возвращающей новую строку с зашифрованным сообщением. msg — исходное сообщение, key — ключ шифрования.
Ключ шифрования представляет собой строку длиной 26, являющейся перестановкой символов от A до Z. В строке последовательно записаны буквы, в которые переходят буквы A, B, C, . Z исходного сообщения.
substitution_cipher('IN A HOLE IN THE GROUND THERE LIVED A HOBBIT.', 'ABCDIFGHEJKLMNUPQRSTOVWXYZ')
'EN A HULI EN THI GRUOND THIRI LEVID A HUBBET.'
U: Шифр замены — расшифровать сообщение
Расшифруйте сообщение, зашифрованное шифром замены.
Решение оформите в виде функции substitution_decipher(msg: str, key: str) -> str , возвращающей новую строку с расшифрованным сообщением. msg — зашифрованное сообщение, key — ключ шифрования, заданный как в предыдущей задаче.
substitution_decipher('EN A HULI EN THI GRUOND THIRI LEVID A HUBBET.', 'ABCDIFGHEJKLMNUPQRSTOVWXYZ')
'IN A HOLE IN THE GROUND THERE LIVED A HOBBIT.'
V: Значение выражения — 3
Дана строка, содержащая одно или более целых неотрицательных чисел, разделенных знаками “+” или “-”. Вычислите значение этого выражения.
Решение оформите в виде функции evaluate(s) .
На проверку сдайте только тело функции.
evaluate('21+7-10')
W: 12-часовой формат времени
Во многих англоговорящих странах время записывается в 12-часовом формате с указанием одного из двух 12-часовых интервалов: до полудня (a.m.) или после полудня (p.m.). Формально запись времени в 12-часовом формате выглядит, как строка “h:mm x.m.”, где h — число часов от 1 до 12 (однозначное или двухзначное), mm — число минут от 00 до 59, дополненное нулями до двух разрядов, x — одна из двух букв “a” или “p”. Подробней примеры записи времени и их перевод в 24-часовой формат можно найти в википедии.
Дана строка с записью некоторого времени в 12-часовом формате. Выведите его в 24-часовом формате “hh:mm” (hh — количество часов от 00 до 23, дополненное нулями до двух разрядов, mm — количество минут от 00 до 59, дополненное нулями до двух разрядов).
1:00 a.m.
01:00
12:34 p.m.
12:34
X: IP-адрес
В сети интернет каждому компьютеру присваивается четырехбайтовый код, который принято записывать в виде четырех чисел, каждое из которых может принимать значения от 0 до 255, разделенных точками. Вот примеры правильных IP-адресов:
127.0.0.0 192.168.0.1 255.0.255.255
Программа получает на вход строку из произвольных символов. Если эта строка является корректной записью IP-адреса, выведите YES , иначе выведите NO .
127.0.0.1
Y: Детская задача
Хорошо известна задача-шутка, в которой требуется продолжить числовую последовательность:
1 11 21 1211 111221 312211 13112221 1113213211 .
Свойства данного ряда изучались математиками, а сама последовательность названа look-and-say sequence.
Напишите программу, которая по данному числу \(k\le 25\) выводит \(k\)-е число в этой последовательности.
1211
Z: Шифр перестановки
В шифре перестановки меняется порядок следования букв, но сами буквы не меняются. При шифровании сообщение разбивается на блоки длины \(n\), символы внутри блока переставляются в соответствии с ключом. Ключ — это перестановка длины \(n\).
Дано сообщение и ключ шифрования, зашифруйте сообщение при помощи данного ключа.
Длина ключа может быть строкой длиной \(n\) (\(1 \le n \le 9\)), состоящей из неповторяющихся цифр от 1 до \(n\). Перестановка показывает, на какие позиции переходят символы блока с номерами 1, 2, . \(n\). То есть перестановка вида 51234 означает, что блок длины 5 циклически сдвигается вправо на 1 символ.
При шифровании сообщение разбивается на блоки длины \(n\), если длина сообщения некратна \(n\), то в конец сообщения дописываются точки.
Решение оформите в виде функции transposition_cipher(msg: str, key: str) -> str , где msg — исходное сообщение, key — ключ шифрования.
transposition_cipher('IN A HOLE IN THE GROUND THERE LIVED A HOBBIT', '312')
' INHA EOLN IH TGE URO NDETH REVLI EDHA BOB.IT'
YES , если слово является палиндромом и словов NO , если не является.
Решение оформите в виде функции IsPalindrome (S) . Длина входной строки может быть до \(10^6\) символов. При решении этой задачи нельзя пользоваться дополнительными строками и списками, модифицировать исходную строку.
Was it a rat I saw?
abca
X: Форматирование текста
- В начале и конце строки не должно быть пробелов.
- Все слова разделяются ровно одним пробелом.
- Точки и запятые пишутся слитно с предыдущим словом, после знака препинания ставится пробел.
Выведите полученную строку, добавив в конец символ “#”.
Hello , world .
Hello, world.#
Y: Календарь
Напечатайте календарь на месяц. Месяц может состоять из 28, 29, 30, 31 дня. Календарь на месяц состоит из 4, 5 или 6 столбцов, заполненных числами (датами). Ширина каждого столбца — два символа, между столбцами промежуток в один символ. Однозначные числа дополняются пробелом слева. Промежуток между столбцами — один пробел. В каждом столбце должно быть записано хотя бы одно число.
Программа получает на вход два числа — количество дней в месяце (от 28 до 31) и день недели, на которое приходится первое число месяца (от 1 до 7) и должна вывести календарь на указанный месяц.
31 3
6 13 20 27
7 14 21 28
1 8 15 22 29
2 9 16 23 30
3 10 17 24 31
4 11 18 25
5 12 19 26
Z: Значение выражения — 4
Строка состоит из целых неотрицательных чисел, разделенных знаками операций “+”, “-” и “*”. Вычислите значение этого выражения выполняя действия по правилам арифметики.
Тесты к этой задаче закрытые.
Как я могу проверить есть ли в строке python определенные символы
Мне необходимо проверить строку ‘gkegfemeeуууее&@(‘ на то, что есть ли в ей только русские и латинские символы, без учета регистра, если в строке есть какие-то прочие символы — тогда ответ должен быть True , иначе False Сделать это необходимо как можно короче, но чтобы при этом для меня было понятно, использование регулярок — запрещено.
Отслеживать
48.6k 17 17 золотых знаков 56 56 серебряных знаков 100 100 бронзовых знаков
задан 5 сен 2021 в 17:00
869 3 3 золотых знака 8 8 серебряных знаков 30 30 бронзовых знаков
А кто запретил Вам использовать регулярки?
5 сен 2021 в 17:03
Вот как буду понимать, тогда и будет разрешение 🙂
5 сен 2021 в 17:03
6 ответов 6
Сортировка: Сброс на вариант по умолчанию
Хоть и без регулярки, но попробую объяснить, что это достаточно просто и ничего страшного в регулярных выражениях нет.
import re regex = "^[a-zA-Zа-яА-ЯёЁ]+$" string = "gkegfemeeуууее&@(" pattern = re.compile(regex) print(pattern.search(string) is not None) # False
Пример выведет False для строки gkegfemeeуууее&@( , т.к. она не соответствует нашему регулярному выражению. Разберём нашу регулярку:
- ^ -> Указывает на начало строки
- [] -> Тут указывает список из разрешённых символов (должно быть что-то из списка)
- a-z -> Все латинские символы в нижнем регистре
- A-Z -> Все латинские символы в верхнем регистре
- а-я -> Все символы кириллицы в нижнем регистре
- А-Я -> Все символы кириллицы в верхнем регистре
- ёЁ -> Особенные символы русского языка 🙂
- + -> Указывает на то, что строка продолжается и может иметь больше одного символа
- $ -> Указываем на конец строки
Python: Извлечение символов из строки
Иногда нужно получить один символ из строки. Например, если сайт знает имя и фамилию пользователя, и в какой-то момент требуется вывести эту информацию в формате A. Ivanov. Для этого компьютеру потребуется взять первый символ из имени. В Python есть подходящая операция, которую мы изучим сегодня.
Представим, что из имени Alexander нужно вывести на экран только первую букву. Это выглядит так:
first_name = 'Alexander' print(first_name[0]) # => A
Операция с квадратными скобками с цифрой извлекает элемент по индексу — позицией символа внутри строки. Индексы начинаются с 0 почти во всех языках программирования. Поэтому, чтобы получить первый символ, нужно указать индекс 0 . Индекс последнего элемента равен длине строки минус единица. Обращение к индексу за пределами строки приведет к ошибке:
# Длина строки 9, поэтому последний индекс — это 8 first_name = 'Alexander' print(first_name[8]) # => r print(first_name[9]) IndexError: string index out of range
Чтобы лучше закрепить новые знания, посмотрите на код ниже и подумайте, что он выдаст:
magic = '\nyou' print(magic[1]) # => ?
Бывают и нестандартные ситуации. Например, нужно вывести элемент из конца, причем из выражения с большим количеством символов. В этом случае можно воспользоваться отрицательным индексом, который облегчит работу программиста.
Допустимо использовать отрицательные индексы. В этом случае идет обращение к символам, начиная с конца строки. -1 — индекс последнего символа, -2 — предпоследнего и так далее. В отличие от прямой индексации, обратный отсчет идет от -1 :
first_name = 'Alexander' print(first_name[-1]) # => r
Индексом может быть не только конкретное число, но и значение переменной. Посмотрите на пример ниже. Здесь мы записали индекс внутри квадратных скобок не числом, а переменной. Такой код приведет к тому же результату — выводу на экран символа A:
first_name = 'Alexander' index = 0 print(first_name[index]) # => A
Чтобы выводить из выражения лишь некоторые символы, не нужно писать большое количество строк кода — достаточно извлечь элемент с помощью индекса. Также можно пользоваться отрицательным индексом, чтобы легче выводить символы с конца выражения. Далее разберемся, как с помощью этих знаний можно извлекать подстроки из строки.
Задание
Выведите на экран последний символ строки, находящейся в переменной name
Упражнение не проходит проверку — что делать?
Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:
- Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.
В моей среде код работает, а здесь нет
Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.
Мой код отличается от решения учителя
Это нормально , в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.
В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.
Прочитал урок — ничего не понятно
Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.
Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.
Определения
- Индекс — позиция символа внутри строки.