Продолжаем наш цикл практических занятий, сегодня у нас на очереди задачи на строки python. В этой статье, мы разберем несколько практических задач.
- Ищем слова палиндромы
- Удалить знаки препинания в строке
- Сортировка слов по алфавиту
- Подсчет гласных букв
- Анаграмма двух строк
- Количество вхождений символа в строку
Палиндром в питоне
В ходе работы над этой небольшой программой, мы поймем, как можно определить, является ли слово палиндромом или нет. Палиндром — это строка, которая читается одинаково, и спереди и сзади, например слово «Мадам». Для того, что бы хорошо освоить этот материал, вам необходимо знать следующие темы:
Исходный код программы
my_str = 'мадам'
my_str = my_str.casefold()
rev_str = reversed(my_str)
if list(my_str) == list(rev_str):
print("Строка является палиндромом")
else:
print("Строка не является палиндромом")
Разбираем код:
- В этой программе, мы берем строку, которая хранится в my_str.
- Далее используем метод casefold(), для преобразования строки в нижний регистр
- Производим реверс строки с помощью метода reversed()
- Далее создаем условия, в котором производим сравнение. Перед сравнением упаковываем все в список.
Удалить знаки препинания python
В этом примере, вы научитесь удалять знаки препинания из строки. Логика реализации довольна простая, мы запустим цикл for, и будем проверять каждый символ строки, если символ является пунктуацией, присвоим ему пустой элемент. Для того, что бы хорошо разобраться в этом примере, вам следует знать следующие темы:
Исходный код программы:
punctuations = '''!()-[]{};:'"\,<>./?@#$%^&*_~'''
my_str = "Привет!!!, Меня зовут ---Алексей."
# my_str = input("Введи строку ")
no_punct = ""
for char in my_str:
if char not in punctuations:
no_punct = no_punct + char
print(no_punct)
- В самом начале в переменной punctuations , мы определили знаки препинания
- Затем переменной my_str присвоили строку
- Определяем переменную no_punct, который присваиваем пустую строку
- Запускаем цикл, перебираем my_str, если в нем встречается символ пунктуации, заменяем ее на пустую строку
Алфавитный порядок слов Python
В этой программе, мы научимся сортировать слова в алфавитном порядке. Для реализации этой идеи мы воспользуемся циклом for. Для того, что бы хорошо понять работу этой программы, нам необходимо знать следующие темы:
В этом примере, мы наглядно рассмотрим то, как слова можно отсортировать в алфавитном порядке, возможно этот кусок кода, когда нибудь облегчит для вас рутинную задачу.
my_str = "Привет, это пример строки в алфавитном порядке"
#my_str = input("Enter a string: ")
words = [word.lower() for word in my_str.split()]
words.sort()
print("The sorted words are:")
for word in words:
print(word)
Результат:
Алфавитный порядок:
алфавитном
в
порядке
привет,
пример
строки
это
- Переменной my_str присваиваем строку, которую надо отсортировать в алфавитном порядке
- С помощью метода split(), мы преобразовываем каждое слово в список слов
- Методом sort(), производим сортировку и выводим на печать
Количество гласных букв в слове
В этом примере, мы научимся подсчитывать количество гласных букв в предложении, возможно в будущем, вам понадобиться в какой либо программе реализовать такую штуку. И так, для более четкого понимания, вам необходимо знать следующие темы:
Исходный код:
glasalph = 'аеёиоуэюя'
ip_str = 'Привет, меня зовут Тимур, мне 30 лет, в этом предложении, мы будет считать количество глассных букв?'
ip_str = ip_str.casefold()
count = {}.fromkeys(glasalph,0)
for char in ip_str:
if char in count:
count[char] += 1
print(count)
Результат:
{'а': 2, 'е': 8, 'ё': 0, 'и': 6, 'о': 5, 'у': 4, 'э': 1, 'ю': 0, 'я': 1}
Разбор кода:
- Объявили переменную glasalph, которой присвоили строку, с гласными буквами
- Объявили переменную ip_str, в которой хранится строка, где мы будем искать гласные
- Используем метод casefold(), и переводим всю строку в нижний регистр
- Используем метод словаря fromkeys(), для построения нового словаря с каждым гласным в качестве ключа, с нулевым значением
- Запускаем цикл for, и на каждой итерации смотрим, есть ли символ в ключах словаря, если есть, увеличиваем его значение на 1
Анаграммы Python
В этом практическом примере, мы созданим небольшую программу, которая сможет определить, являются ли две строки анаграммами? Для лучшего понимания этого примера, вам необходимо знать следующие темы:
И так, давайте немного разберемся. Анаграма — это слова состоящие из одних и тех же букв, расположенных в разном порядке. Наша задача, определить, являются ли две строки анаграммами. Как мы можем это сделать? В данном случае, я вижу довольно простой алгоритм.
- Привести обе строки в нижний регистр
- Отсортировать обе строки и сравнить их
- Если обе строки равны, то это анаграмма
Приступаем к коду:
str1 = "Игра"
str2 = "Рига"
# Приводим в нижний регистр
str1 = str1.lower()
str2 = str2.lower()
# Сравниваем длину строк
if(len(str1) == len(str2)):
# Сортируем обе строки
sorted_str1 = sorted(str1)
sorted_str2 = sorted(str2)
if(sorted_str1 == sorted_str2):
print(str1 + " и " + str2 + " Являются анаграмой.")
else:
print(str1 + " и " + str2 + " не являются анаграмой.")
else:
print(str1 + " и " + str2 + " не являются анаграмой")
Количество символов в строке python
На самом деле, этот практический пример, довольно простой, и в тоже время эффективный. При работе со строками, мне часто приходится считать количество вхождений символа в строку, я думаю решение этой небольшой задачи, когда нибудь облегчит вам вашу задачу.
Для решения этой задачи, вам необходимо знать следующие темы:
Исходный код:
count = 0
my_string = "Pydocssss.ru"
my_char = "s"
for i in my_string:
if i == my_char:
count += 1
print(count)
- Мы объявили переменную count, которая будет счетчиком
- Переменная my_string, в которой хранится наша строка
- Переменная my_char, в которой хранится искомый символ
- Запускаем цикл for, перебираем строку, и если в строке есть тот же символ что и в переменной my_char
- Переменной count, которая изначально равно 0, добавляем 1, и так до тех пор, пока перебор строки не закончится
Мысль на тему “Задачи на строки python”
Спасибо, теперь немного разобрался со строками в python:)