Drukarnia.BLOG

Всіх вітаю! Сьогодні ми розглянемо метод index() у Python, приклади його застосування та відмінність між методом find().

Суть методу

Метод index() отримує деяке значення у якості параметра і намагається знайти його у визначеному рядку. Після того, як він знаходить це значення, ми отримуємо індекс цього значення у рядку.

Крім того, даний метод має ще параметри start та end, які дозволяють вказати початковий та кінцевий індекси рядка, де буде здійснюватися пошук. Таким чином можна обмежити область пошуку значення у рядку.

Варто також пам’ятати, що index() реагує лише на перше входження шуканого значення у рядку. Тобто, серед однакових значень метод реагуватиме лише на перше, яке йому трапиться.

Використання у коді

Перший приклад

Ось перший приклад:

simple_text = "Something to write about..."
word_in_text = simple_text.index("write")

print(word_in_text)

Тут ми шукаємо слово “write“ у рядку simple_text і в результаті отримуємо індекс початку цього слова — 13.

Тобто, 13 — це індекс, де стоїть перша літера слова “write”, яке ми якраз і шукали. Це можна легко визначити, самостійно рахуючи індекси.

Другий приклад

У другому прикладі ми вказали область пошуку послідовності у рядку за допомогою параметрів start та end у методі index():

simple_text = "Something to write about..."
word_in_text = simple_text.index(" ", 10, 24)

print(word_in_text)

Отже, тут ми шукаємо в області від 10-го індексу до 24-го. У рядку це частина “to write about”. У цьому випадку ціль нашого пошуку — пробіл.

Ось результат:

12

Тобто метод вказав на пробіл, який знаходиться між словами “to” та “write” , а отже, має 12-й індекс.

Третій приклад

У даному випадку маємо два однакових слова “write” у рядку:

simple_text = "Something to write about... write about..."
word_in_text = simple_text.index("write")

print(word_in_text)

Але у результаті отримаємо лише індекс початку того слова, яке трапилося методу першим:

13

Відмінність index() від find()

Python має багацько вбудованих методів для роботи з рядками, але деякі з них можуть здатися дуже схожими, такими, що майже не мають відмінностей. Це також стосується методів index() та find().

По суті, ці методи виконують ідентичну роботу, але справа у тому, що їхня поведінка у разі незнаходження заданого значення відрізняється.

Метод index() одразу повертає помилку, якщо не зміг знайти вказану йому послідовність у рядку, а метод find() просто повертає значення -1 без ніяких повідомлень про помилку.

Тепер пропоную поглянути на це у коді, ось приклад із методом index():

simple_text = "Something to write about..."
word_in_text = simple_text.index("topic")

print(word_in_text)

Результат:

ValueError: substring not found

Як бачимо, метод index() одразу повернув помилку, бо не зміг знайти слово “topic” у рядку.

А ось приклад із методом find():

simple_text = "Something to write about..."
word_in_text = simple_text.find("topic")

print(word_in_text)

Результат:

-1

У ідентичній ситуації метод find() не став скаржитися, а просто повернув значення -1.

Висновок

Метод index() шукає відповідне значення у рядку та повертає його індекс. Те саме робить і метод find(), але вони по-різному реагують на випадок незнаходження заданого значення.

Các bài viết về doanh nghiệp địa phương và những con người thú vị:

Chia sẻ ý tưởng của bạn trong một ấn phẩm mới.
Chúng tôi đang chờ bài đọc dài của bạn!
Magnifique numérique

Magnifique numérique

@magnifiquedigitalworld

Прекрасний цифровий світ

97Bài đọc dài
2.3KLượt xem
28Người theo dõi
Trên Drukarnia kể từ 14 tháng 7 2025

Thêm từ tác giả

Bạn cũng có thể quan tâm đến:

  • 5 уроків, які я виніс з 2 півотів на Scrimmage

    Коли ви робите інвестиції, кожен ваш грошовий рух вимірюється і перевіряється, але коли ви робите ставки на спорт, ви покладаєтеся тільки на своє внутрішнє чуття, чому так? Чому б нам не змінити це і не дати кожному гравцю на спортивних ставках силу інвестора?

    Chủ đề của bài đọc dài này:

    Стартап
  • Java. Короткий огляд еволюції багатопотоковості

    У перших версіях Java багатопоточність реалізовувалася за допомогою класу Thread, який дозволяв створювати нові потоки. Проте ця модель мала багато недоліків:

    Chủ đề của bài đọc dài này:

    Java
  • Хешування паролів: використання солі та bcrypt

    Хешування паролів - це важливий елемент захисту інформації в сучасних системах. Використання солі в хешуванні додає додатковий рівень безпеки, а алгоритм BCrypt дозволяє забезпечити високу стійкість до атак грубою силою та інших видів атак.

    Chủ đề của bài đọc dài này:

    Security

Bình luận (0)

Ủng hộ tác giả trước nhé.
Viết bình luận!

Bạn cũng có thể quan tâm đến:

  • 5 уроків, які я виніс з 2 півотів на Scrimmage

    Коли ви робите інвестиції, кожен ваш грошовий рух вимірюється і перевіряється, але коли ви робите ставки на спорт, ви покладаєтеся тільки на своє внутрішнє чуття, чому так? Чому б нам не змінити це і не дати кожному гравцю на спортивних ставках силу інвестора?

    Chủ đề của bài đọc dài này:

    Стартап
  • Java. Короткий огляд еволюції багатопотоковості

    У перших версіях Java багатопоточність реалізовувалася за допомогою класу Thread, який дозволяв створювати нові потоки. Проте ця модель мала багато недоліків:

    Chủ đề của bài đọc dài này:

    Java
  • Хешування паролів: використання солі та bcrypt

    Хешування паролів - це важливий елемент захисту інформації в сучасних системах. Використання солі в хешуванні додає додатковий рівень безпеки, а алгоритм BCrypt дозволяє забезпечити високу стійкість до атак грубою силою та інших видів атак.

    Chủ đề của bài đọc dài này:

    Security