Зачем решать задачи на строки в Python
Работа со строками — это одна из основ программирования на Python. Строки используются повсеместно: от обработки текстовых данных до создания веб-приложений. Задачи на строки помогают развить навыки работы с текстом, научиться манипулировать данными и улучшить логическое мышление.
Основные операции со строками
Перед тем как перейти к задачам, давайте вспомним основные операции, которые можно выполнять со строками в Python:
- Конкатенация — объединение строк с помощью оператора
+. - Повторение — умножение строки на число с помощью оператора
*. - Извлечение подстрок — использование срезов для получения части строки.
- Методы строк — использование встроенных методов, таких как
upper(),lower(),replace()и многих других.
Задача 1: Перевернуть строку
Напишите функцию, которая принимает строку и возвращает её в перевёрнутом виде.
def reverse_string(s):
return s[::-1]
Эта задача поможет вам освоить срезы в Python.
Задача 2: Проверка на палиндром
Создайте функцию, которая проверяет, является ли строка палиндромом (читается одинаково слева направо и справа налево).
def is_palindrome(s):
return s == s[::-1]
Не забудьте удалить пробелы и привести строку к одному регистру перед проверкой.
Задача 3: Подсчёт гласных
Напишите функцию, которая подсчитывает количество гласных букв в строке.
def count_vowels(s):
vowels = 'aeiouAEIOU'
return sum(1 for char in s if char in vowels)
Используйте генератор списков для более лаконичного кода.
Задача 4: Удаление дубликатов
Создайте функцию, которая удаляет все дубликаты из строки, сохраняя порядок символов.
def remove_duplicates(s):
seen = set()
result = []
for char in s:
if char not in seen:
seen.add(char)
result.append(char)
return ''.join(result)
Эта задача поможет вам понять, как работать с множествами и списками.
Задача 5: Смена регистра
Напишите функцию, которая меняет регистр каждой буквы в строке на противоположный.
def swap_case(s):
return s.swapcase()
Функция swapcase() — это встроенный метод строк, который делает эту задачу очень простой.
Задача 6: Подсчёт частоты символов
Создайте функцию, которая возвращает словарь с частотой каждого символа в строке.
def char_frequency(s):
freq = {}
for char in s:
freq[char] = freq.get(char, 0) + 1
return freq
Эта задача поможет вам освоить работу со словарями в Python.
Задача 7: Замена символов
Напишите функцию, которая заменяет все пробелы в строке на символ подчеркивания.
def replace_spaces(s):
return s.replace(' ', '_')
Обратите внимание, что метод replace() возвращает новую строку, а не изменяет исходную.
Задача 8: Сортировка слов в строке
Создайте функцию, которая принимает строку и возвращает строку, содержащую слова, отсортированные по длине.
def sort_words_by_length(s):
words = s.split()
return ' '.join(sorted(words, key=len))
Вы можете использовать параметр reverse=True, чтобы отсортировать слова по убыванию длины.
Задача 9: Удаление пробелов
Напишите функцию, которая удаляет все пробелы из строки.
def remove_spaces(s):
return ''.join(s.split())
Эта задача поможет вам понять, как использовать методы split() и join() вместе.
Задача 10: Форматирование строки
Создайте функцию, которая принимает имя и возраст, а затем возвращает строку в формате: "Имя: {имя}, Возраст: {возраст}".
def format_string(name, age):
return f"Имя: {name}, Возраст: {age}"
Использование f-строк делает форматирование строк очень удобным и читаемым.
Заключение
Решение задач на строки в Python — это отличный способ улучшить свои навыки программирования. Эти задачи помогут вам освоить основные операции со строками и научиться применять их на практике. Не бойтесь экспериментировать и пробовать новые подходы к решению задач!