JavaRush /Курсы /Модуль 1: Python Core /Строка как массив

Строка как массив

Модуль 1: Python Core
6 уровень , 9 лекция
Открыта

10.1 Цикл по символам строки

В Python строки часто рассматриваются как массивы/списки символов, что делает их особенно удобными для манипуляций, аналогичных работе с массивами в других языках программирования.

Ну, а раз строка – это набор символов, то по ним можно пройтись циклом.

Цикл по символам строки

Для итерации по каждому символу строки можно использовать простой цикл for. Это позволяет выполнять операции с каждым символом отдельно:


text = "Hello"
for char in text:
    print(char)

На экран будет выведено:
H
e
l
l
o
            

Важно! В Python нет типа char для отдельного символа. Один символ строки — это все равно строка.

10.2 Определение длинны строки

Что еще можно сделать со строкой? Ну конечно же определить ее длину – узнать сколько в ней символов. Для этого в Python есть специальная встроенная функция len(). Эта функция возвращает количество символов в строке:


text = "Hello, world!"
length = len(text)
print(length)  # Выведет: 13
        

10.3 Получение конкретного символа

Так же вы можете получить конкретный символ строки по его номеру. Вернее, по его индексу.

Важно! Индексы списков и массивов в Python начинаются с 0. Если в стоке 10 символов, то они будут иметь индексы: 0, 1, 2, ...,9.

Общий вид получения символа по индексу выглядит так:


string[index]

Давайте выведем на экран все символы строки, но обратимся к ним по их индексам:


text = "Hello" 
for i in range(len(text)):
    print(text[i])
                            

На экран будет выведено:
H
e
l
l
o
            

10.4 Вхождение подстроки

Проверка вхождения одной строки в другую — одна из базовых задач, которую часто нужно решать при программировании на Python. Эта возможность широко используется во многих приложениях, включая обработку текстовых данных, валидацию ввода пользователя и поиск данных в строках.

Для этой задачи в Python есть несколько способов, как уникальные лично для него, так и распространённые в других языках программирования:

Оператор in:

Это самый простой и часто используемый метод для проверки наличия подстроки в строке. Он возвращает True, если подстрока присутствует в строке, и False в противном случае.


text = "Hello, world!"
print("world" in text)  # Выведет: True
        

Метод find():

Метод find() возвращает индекс первого вхождения подстроки в строку, если подстрока найдена, и -1, если подстрока отсутствует. Это позволяет не только проверить наличие подстроки, но и узнать её положение.


text = "Hello, world!"
position = text.find("world")
print(position)  # Выведет: 7
        

Метод index():

Похож на find(), но вместо возвращения -1 при отсутствии подстроки, метод index() генерирует исключение ValueError. Этот метод полезен, когда отсутствие подстроки является неожиданным и должно привести к ошибке.


text = "Hello, world!"
try:
    position = text.index("world")
    print(position)  # Выведет: 7
except ValueError:
    print("Substring not found.")
       

Метод count():

Метод count() подсчитывает, сколько раз подстрока встречается в строке. Это полезно, когда нужно знать не только факт вхождения, но и количество вхождений.


text = "Hello, world!"
cnt = text.count("l")
print(cnt)  # Выведет: 3
       
2
Задача
Модуль 1: Python Core, 6 уровень, 9 лекция
Недоступна
Поиск подстроки.
Поиск подстроки.
2
Задача
Модуль 1: Python Core, 6 уровень, 9 лекция
Недоступна
Символы в строке
Символы в строке
Комментарии (17)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Дима Белый Уровень 23
22 октября 2025
Еще и запрещают матом уведомлять о выходе из диапазона.. беспредел какой-то)
Александр Уровень 12
16 декабря 2025
Вряд ли на работе такое позволят
Andrey Уровень 27
15 октября 2025
Зачем выводить на экран индекс первого вхождения и количество вхождений в случае, если подстрока вообще не входит в строку?! Где логика?
27 июля 2025
Ещё и орфографические ошибки проверяет! Какая разница - я написал "построка" или "подстрока", если условия задания выполнены! И названия переменных должны быть именно string и substring - имена переменных user_str и user_substr не катят - вообще бред
shinobi Уровень 19
26 июля 2025
"10.2 Определение длинны строки" Ну как можно заголовок лекции писать с ошибкой? Какое у меня может быть доверие в обучении автору языку питон, если он уже какую страницу подряд даже на своём родном не может писать без ошибок?
26 августа 2025
На каком языке и какими методами - не важно. Главное, чтобы доступно объяснил и программировать научил.
AlterAyrol Уровень 25
19 октября 2025
ну да, мы же тут проходим курс по русскому языку и филологии, а не программирование. Может быть вы выбрали не тот курс для прохождения? Поддержу "Главное, чтобы доступно объяснил и программировать научил.", ведь это цель прохождения курса, а не изучение грамматики и правописания😎
shinobi Уровень 19
24 октября 2025
И как вы поймёте, что вас научили программировать, если вы закрываете глаза даже на то, что человек делает самые глупые ошибки в тексте? Верите всему что написано? Тогда вы выбрали верный курс, программировать он вас скорее всего не научит, но с вашем уровнем присутствия, вы закроете глаза и на это)
AlterAyrol Уровень 25
25 октября 2025
понять что научили программировать, очень просто - написанный код выполняет заданные условия и не падает с ошибкой. "кАличесвтва АпИчоток" в тех задании на код никак не должно влиять😎
Antl N Уровень 14
24 июля 2025
Во второй задаче print(a[i]) ничего не выдавало на экран. Через IDE все прошло.
Марина Уровень 14
24 марта 2025
тоже вопрос. во второй задаче в проверке почему не проходит if len(text) >= index: рекомендует заменить на if index <= len(text): в чем прикол?
Марина Уровень 14
24 марта 2025
а, даже if index < len(text): рекомендует.... так почему нельзя наоборот?
Дмитрий/MrJonson Уровень 92
6 февраля 2025
проверку 1й задачи какая то недалекая блондинка писала
Zlyden Уровень 49
3 марта 2025
Атомная блондинка...
Dmitry Ryabov Уровень 23
28 января 2025
Орфографическая ошибка в лекции 10.2 Определение длинны строки Исправьте на длины
Александр Уровень 19 Expert
22 января 2025
Первый пример с кривой разметкой: text = "Hello" for char in text: print(char) почему каждый оператор цикла с новой строки ? такой пример даже не запустится... ошибка наверное
shinobi Уровень 19
26 июля 2025
Да, неправильно код в лекцию вставили и забили хер, даже спустя пол года - не исправили