📋 Основные задания
Основное домашнее задание по пройденным темам размещено в соответствующих уроках:
- 🏠 Домашнее задание урока 12 — цикл while, break, continue, random
- 🏠 Домашнее задание урока 14 — введение в строки, индексация, срезы, кодировки
🔄 Дополнительная репетиция
Создайте файл review.py и решите в нём три мини-задачи. Каждая задача должна использовать хотя бы один цикл while и одну строковую операцию.
Переворот строки в цикле
Запросите у пользователя строку и выведите её в обратном порядке, используя цикл while (не срез).
Enter a word: Python
Reversed: nohtyP
Проверка палиндрома для строк
Запросите строку и определите, является ли она палиндромом. Игнорируйте регистр.
Enter a phrase: Racecar
It is a palindrome.
Подсчёт букв через цикл
Запросите строку и букву. Подсчитайте, сколько раз буква встречается в строке. Регистр не учитывайте.
Enter a line: Programming is fun
Enter a letter: n
Letter 'n' occurs 2 times.
✅ Пример решения
# Task 1: reverse a string using a while loop
text = input("Enter a word: ")
reversed_text = ""
index = len(text) - 1
while index >= 0:
reversed_text += text[index]
index -= 1
print(f"Reversed: {reversed_text}")
# Task 2: palindrome check (case-insensitive)
phrase = input("Enter a phrase: ")
clean = phrase.lower()
if clean == clean[::-1]:
print("It is a palindrome.")
else:
print("It is not a palindrome.")
# Task 3: count letter occurrences
text = input("Enter a line: ").lower()
letter = input("Enter a letter: ").lower()
count = 0
index = 0
while index < len(text):
if text[index] == letter:
count += 1
index += 1
print(f"Letter '{letter}' occurs {count} times.")
🧪 Как проверить решение
- Активируйте venv:
venv\Scripts\activate(Windows) илиsource venv/bin/activate(Mac/Linux). - Запустите файл:
python review.py. - Проверьте граничные случаи: пустая строка, одна буква, строка без искомой буквы, палиндром с заглавными буквами.
💡 Советы
- Для переворота строки вручную начинайте индекс с
len(text) - 1и уменьшайте до0. - При проверке палиндрома приведите строку к нижнему регистру, чтобы регистр не влиял на результат.
- Не забудьте увеличивать индекс в цикле подсчёта, чтобы избежать бесконечного цикла.