✅ Решения заданий

⚠️ Рекомендация: попробуйте решить задания самостоятельно, прежде чем смотреть ответы. Решения — это последняя инстанция, когда собственные попытки исчерпаны.

Решение задания 1: Палиндром

📄 task_01_palindrome.py
text = input("Введите строку: ")

if text == text[::-1]:
    print("Строка является палиндромом")
else:
    print("Строка не является палиндромом")

Логика решения: срез text[::-1] создаёт копию строки в обратном порядке. Если она совпадает с оригиналом, строка — палиндром.

Решение задания 2: Шифр Цезаря

📄 task_02_caesar.py
encrypted_text = input("Введите зашифрованный текст: ")
shift = int(input("Введите сдвиг: "))

decrypted_text = ""

i = 0
while i < len(encrypted_text):
    char = encrypted_text[i]
    decrypted_char = chr(ord(char) - shift)
    decrypted_text += decrypted_char
    i += 1

print("Расшифрованный текст:", decrypted_text)

Логика решения: цикл while проходит по всем символам. Каждый символ преобразуется в код Unicode, из него вычитается сдвиг, и результат преобразуется обратно в символ.

Решение задания 3: Подсчёт символа

📄 task_03_count_char.py
text = input("Введите строку: ")
symbol = input("Введите символ: ")

count = 0
for char in text:
    if char == symbol:
        count += 1

print(f"Символ {symbol} встречается {count} раз(а).")

# Alternative one-liner
# print(f"Символ {symbol} встречается {text.count(symbol)} раз(а).")

Логика решения: цикл for перебирает символы строки. При совпадении увеличивается счётчик. В комментарии показан вариант через метод count().

Решение задания 4: Строка из цифр

📄 task_04_isdigit.py
text = input("Введите строку: ")

if text.isdigit():
    print("Строка состоит только из цифр: True")
else:
    print("Строка состоит только из цифр: False")

Логика решения: метод isdigit() возвращает True, если все символы строки — цифры, и строка не пустая.

Решение задания 5: Развёрнутая строка через один символ

📄 task_05_reverse_step.py
text = input("Введите строку: ")
result = text[::-2]
print(f"Результат: {result}")

Логика решения: срез [::-2] начинает с конца строки и движется к началу с шагом 2, выбирая каждый второй символ в обратном порядке.

💡 Альтернатива: для более сложных преобразований можно сначала развернуть строку text[::-1], а затем применить срез с положительным шагом.