СтрокиУрок 7 из 7
Строки и циклы
20 мин25 XP
Работа со строками в циклах
Подсчёт символов
pythontext = "Hello, World!"
freq = {}
for char in text:
freq[char] = freq.get(char, 0) + 1
print(freq)
Построение строки
python# Каждый символ отдельно:
result = ""
for char in "Python":
result += char.upper() + "-"
print(result) # P-Y-T-H-O-N-
Шифр Цезаря (простой)
pythondef shift_char(c, n):
if c.isalpha():
base = ord('A') if c.isupper() else ord('a')
return chr((ord(c) - base + n) % 26 + base)
return c
text = "Hello"
shifted = "".join(shift_char(c, 3) for c in text)
print(shifted) # Khoor
Фильтрация символов
pythontext = "H3ll0 W0rld"
letters_only = "".join(c for c in text if c.isalpha())
print(letters_only) # HllWrld
📌 Запомни
"".join(iterable)— эффективнее, чемresult += charв большом циклеord(c)— код символа,chr(n)— символ по коду- Используйте generator expression для компактной фильтрации
Квест
ROT13 шифр
15 мин45 XP
Реализуйте шифр ROT13: каждая латинская буква сдвигается на 13 позиций в алфавите.
a→n, b→o, n→a, A→N и т.д. Нелатинские символы не изменяются.
Дана строка text = "Hello".
Выведите зашифрованную строку: Uryyb
Ctrl+Enter — выполнить · Ctrl+Shift+Enter — проверить
Результаты появятся здесь после выполнения кода.