Перебор всех символов
Поскольку к символу можно обращаться по индексу, для перебора всех символов можно использовать цикл по переменной, которая будет принимать возможные значения индексов. Например, программа, которая выводит на экран все коды символов строки
s
будет выглядеть так
for i in range(len(s)):
print(s[i], ord(s[i]))
Пояснения к программе:
1) Функция
len(s)
находит длину строки. Индекс первого символа равен 0, а индекс последнего len(s)-1. Переменная цикла
i
как раз и будет принимать последовательно значения от
0
до
len(s)-1
.
2) В каждой строке сначала будет выводиться сам символ, а затем его код, который возвращает встроенная функция
ord().
Такой же перебор можно записать короче:
for c in s:
print(c, ord(c))
В данном фрагменте заголовок цикла перебирает все символы s, помещая их по очереди в переменную
c
.
Как уже говорилось, особенность Python при работе со строками заключается в том, что строки - это неизменяемые объекты. Другими словами, мы не можем изменять отдельные символы строки.
Например, не сработает следующий оператор
s[5]='a'
Но можно составлять из символов новую строку с требуемыми изменениями.
Задача
Во входной строке заменить все символы 'a' на символы 'b'.
s = input()
sNew = ""
for c in s:
if c == 'a':
c = 'b'
sNew += c
print(sNew)
В данной программе цикл перебирает все символы строки s. В теле цикла проверяем значение переменной
с
: если символ совпадает с символом '
a
', то заменяем его на '
b
', и добавляем его в конец новой строки
sNew
с помощью оператора сложения.
Данный вариант работает достаточно медленно.
В будущем мы познакомимся со встроенными функциями работы со строками и узнаем как сделать это быстрее.