Цикл по значениям
| Задача | Ввод | Вывод |
| s = input() for ch in s: print(ch) |
Школа |
Ш к о л а |
Цикл по индексам
| Задача | Ввод | Вывод |
| s = input() for k in range(len(s)): print(k, s[k]) |
Школа |
0 Ш 1 к 2 о 3 л 4 а |
Правило сравнения символов
| Задача | Ввод | Вывод |
| a = "@" b = "+" if a > b: print(a, ">", b) else: print(a, "<", b) |
@ + |
@ > + |
Все языки программирования, не только Python, сравнивают символы, используя таблицу ASCII. Какой символ в этой таблице имеет больший номер, тот и больше.
Сравнение строки с перевёрнутой
s = input() # Пользователь вводит строку, сохраняем её в переменную s
if s < s[::-1]: # Сравниваем исходную строку с перевёрнутой
print(s) # Если исходная меньше, печатаем её
elif s[::-1] < s: # Если перевёрнутая меньше исходной
print(s[::-1]) # Печатаем перевёрнутую строку
else: # Если строки равны (одинаковые)
print("ПЛНДРМ") # Печатаем "ПЛНДРМ" (это палиндром)
Комментарии:
-
s[::-1] — создаёт новую строку, в которой символы идут в обратном порядке.
-
Сравнение строк происходит лексикографически (по алфавиту).
-
Если строки равны — это палиндром.
Извлечение цифр из строки.
s = input() # Пользователь вводит строку, сохраняем её в s
digits = "" # Создаём пустую строку, куда будем собирать цифры
for number in s: # Перебираем каждый символ строки s
if number in "0123456789": # Если символ является цифрой (проверяем вхождение в строку-образец)
digits += number # Добавляем этот символ в строку digits
print(digits) # Печатаем получившуюся строку из цифр
print(int(digits) * 2) # Преобразуем строку digits в число, умножаем на 2 и печатаем
Комментарии:
-
number — имя переменной цикла, можно назвать как угодно, например char или c.
-
in "0123456789" — проверяет, есть ли символ в строке, содержащей все цифры.
-
digits += number — это то же самое, что digits = digits + number.
-
int(digits) — преобразует строку с цифрами в целое число.
-
Если цифр не было, digits останется пустой строкой, и преобразование в int() вызовет ошибку.
Поиск одинаковых соседей (с ошибкой в условии).
s = input() # Пользователь вводит строку, сохраняем в s
for z in range(1, len(s)-2): # Перебираем индексы от 1 до len(s)-3 (потенциальная ошибка!)
if s[z] == s[z - 1] or [z] == s[z + 1]: # Здесь опечатка: [z] вместо s[z]
print('YES') # Печатаем YES
break # Прерываем цикл
else: # Этот блок выполнится, если цикл завершился без break
print('NO') # Печатаем NO
Комментарии:
-
range(1, len(s)-2) — неправильный диапазон. Правильно: range(1, len(s)-1).
-
[z] == s[z + 1] — это сравнение списка [z] с символом строки, всегда будет False. Должно быть s[z] == s[z + 1].
-
break — немедленно выходит из цикла.
-
else у цикла — выполняется, только если цикл не был прерван break.
Подсчёт совпадений в двух строках.
s1 = input() # Вводим первую строку
s2 = input() # Вводим вторую строку
ans = 0 # Счётчик совпадений, изначально 0
for z in range(len(s1)): # Перебираем все индексы от 0 до длины строки s1-1
if s1[z] == s2[z]: # Сравниваем символы на одинаковых позициях
ans = ans + 1 # Если равны, увеличиваем счётчик на 1
print(ans) # Печатаем количество совпадений
Комментарии:
-
len(s1) — длина первой строки (строки одинаковой длины по условию).
-
range(len(s1)) — создаёт последовательность чисел от 0 до len(s1)-1.
-
ans = ans + 1 — можно записать короче: ans += 1.
-
print(ans) — выводит итоговое число.