Обход строки
Многие задачи требуют посимвольной обработки строки. Часто обработка начинается с начала, берётся каждый символ по очереди, что-то с ним происходит, и так продолжается, пока не будет достигнут конец строки. Эта схема обработки называется обходом. Один из способов написать обход — использовать цикл for
для обхода по индексам:
s = 'school'
for i in range(len(s)):
print(f"{s[i]} {i}")
s 0
c 1
h 2
o 3
o 4
l 5
Этот цикл обходит строку и выводит каждую букву и её номер в отдельной строке.
Другой способ реализовать обход с помощью цикла for
— обход по символам:
s = 'student'
for ch in s:
print(f"{ch}")
s
t
u
d
e
n
t
В цикле каждый следующий символ в строке присваивается переменной \(ch\). Цикл продолжается до тех пор, пока не останется ни одного символа.
Оператор in
Оператор in
— это оператор, который принимает две строки и возвращает True
, если первая является подстрокой для второй:
s = 'банан'
a = 'ан' in s
b = 'семя' in s
print(f"{a}")
print(f"{b}")
True
False
Пример 1
Выведите все гласные символы строки \(s\), имеющие нечётные индексы. Нумерация индексов начинается с \(0\).
s = input()
for i in range(1, len(s), 2):
if s[i] in "aeiouy":
print(f"{s[i]}")
watermelon
a
e
Пример 2
В строке \(s\) замените все строчные буквы «a»
на заглавные «A»
.
s = input()
for ch in s:
if ch == 'a':
print(f"A", end='')
else:
print(f"{ch}", end='')
abracadabra
AbrAcAdAbrA
Пример 3
В строке \(s\) найдите самую левую позицию буквы «a»
. Позиции нумеруются с единицы слева направо. Если буквы «a»
нет в строке, выведите \(-1\).
s = input()
idx = -1
for i in range(len(s)):
if s[i] == 'a':
idx = i + 1
break
print(f"{idx}")
banana
2
none
-1
Пример 4
Преобразуйте символы строки \(s\) в нижний регистр.
s = input()
for ch in s:
if "А" <= ch <= "Я" or "A" <= ch <= "Z":
x = chr(ord(ch) + 32)
print(f"{x}", end="")
else:
print(f"{ch}", end="")
FRUIT
fruit
Пример 5
Посчитайте, сколько раз слово «YES»
встречается в слове \(w\).
w = input()
cnt = 0
for i in range(1, len(w) - 1):
s = w[i - 1] + w[i] + w[i + 1]
if s == 'YES':
cnt += 1
print(f"{cnt}")
YESTERDAY
1
Пример 6
В слове \(w\) найдите самую младшую букву (символ, имеющий наименьший ASCII код).
w = input()
mn = w[0]
for ch in w:
if ch < mn:
mn = ch
print(f"{mn}")
python
h
Пример 7
Определите, состоит ли строка \(s\) только из строчных букв.
s = input()
ans = 'YES'
for ch in s:
if not ('а' <= ch <= 'я' or 'a' <= ch <= 'z'):
ans = 'NO'
break
print(f"{ans}")
lower
YES
python3
NO