Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Пошук і Вимірювання | Рядки
Типи Даних у Python

bookПошук і Вимірювання

Після того як ви навчилися зчитувати частини рядка, наступним кроком є аналіз його вмісту: «чи містить він це?», «де це знаходиться?», «скільки разів?», «чи починається/закінчується на…?».

Належність

Використовуйте in, щоб перевірити, чи підрядок зустрічається у рядку. Повертає логічне значення.

123
s = "Python programming" print("gram" in s) # True print("Java" not in s) # True
copy

Пошук позицій

  • find(sub) повертає індекс початку першого входження або -1, якщо не знайдено;
  • rfind(sub) шукає з права та повертає індекс останнього входження (або -1);
  • index(sub) працює як find, але викидає ValueError, якщо підрядок відсутній.
12345
s = "abracadabra" print(s.find("bra")) # 1 print(s.rfind("bra")) # 8 print(s.find("xyz")) # -1 print(s.index("xyz")) # ValueError
copy

Підрахунок входжень

count(sub) повертає кількість неперекривних входжень підрядка.

123
s = "banana" print(s.count("a")) # 3 print(s.count("na")) # 2
copy

Початок і кінець

Для перевірки початку або кінця рядка використовуйте startswith або endswith; ці методи є зрозумілішими та безпечнішими, ніж зрізи, якщо потрібно лише отримати відповідь так/ні.

123
fname = "report_final.pdf" print(fname.startswith("report")) # True print(fname.endswith(".pdf")) # True
copy

Перевірки без урахування регістру (просто та практично)

Методи рядків є чутливими до регістру. Для пошуку без урахування регістру нормалізуйте обидві сторони за допомогою .lower() (або .upper()).

123
msg = "Hello, World!" print("hello" in msg.lower()) # True print(msg.lower().startswith("hello")) # True
copy
Note
Примітка

Ми вже використовували len() у попередньому розділі для вимірювання довжини; тут зосереджуємося на перевірках вмісту та розташування.

1. Який результат виведе цей код?

2. Який вираз не викликає помилку, якщо підрядок відсутній?

3. Дано s = "Banana". Який вираз поверне True без урахування регістру при перевірці префікса "ba"?

question mark

Який результат виведе цей код?

Select the correct answer

question mark

Який вираз не викликає помилку, якщо підрядок відсутній?

Select the correct answer

question mark

Дано s = "Banana". Який вираз поверне True без урахування регістру при перевірці префікса "ba"?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 3

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Suggested prompts:

Can you explain the difference between find and index methods?

How do I perform a case-insensitive substring search?

What happens if the substring is not found when using rfind?

Awesome!

Completion rate improved to 5

bookПошук і Вимірювання

Свайпніть щоб показати меню

Після того як ви навчилися зчитувати частини рядка, наступним кроком є аналіз його вмісту: «чи містить він це?», «де це знаходиться?», «скільки разів?», «чи починається/закінчується на…?».

Належність

Використовуйте in, щоб перевірити, чи підрядок зустрічається у рядку. Повертає логічне значення.

123
s = "Python programming" print("gram" in s) # True print("Java" not in s) # True
copy

Пошук позицій

  • find(sub) повертає індекс початку першого входження або -1, якщо не знайдено;
  • rfind(sub) шукає з права та повертає індекс останнього входження (або -1);
  • index(sub) працює як find, але викидає ValueError, якщо підрядок відсутній.
12345
s = "abracadabra" print(s.find("bra")) # 1 print(s.rfind("bra")) # 8 print(s.find("xyz")) # -1 print(s.index("xyz")) # ValueError
copy

Підрахунок входжень

count(sub) повертає кількість неперекривних входжень підрядка.

123
s = "banana" print(s.count("a")) # 3 print(s.count("na")) # 2
copy

Початок і кінець

Для перевірки початку або кінця рядка використовуйте startswith або endswith; ці методи є зрозумілішими та безпечнішими, ніж зрізи, якщо потрібно лише отримати відповідь так/ні.

123
fname = "report_final.pdf" print(fname.startswith("report")) # True print(fname.endswith(".pdf")) # True
copy

Перевірки без урахування регістру (просто та практично)

Методи рядків є чутливими до регістру. Для пошуку без урахування регістру нормалізуйте обидві сторони за допомогою .lower() (або .upper()).

123
msg = "Hello, World!" print("hello" in msg.lower()) # True print(msg.lower().startswith("hello")) # True
copy
Note
Примітка

Ми вже використовували len() у попередньому розділі для вимірювання довжини; тут зосереджуємося на перевірках вмісту та розташування.

1. Який результат виведе цей код?

2. Який вираз не викликає помилку, якщо підрядок відсутній?

3. Дано s = "Banana". Який вираз поверне True без урахування регістру при перевірці префікса "ba"?

question mark

Який результат виведе цей код?

Select the correct answer

question mark

Який вираз не викликає помилку, якщо підрядок відсутній?

Select the correct answer

question mark

Дано s = "Banana". Який вираз поверне True без урахування регістру при перевірці префікса "ba"?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 3
some-alt