Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Learn Searching and Measuring | Strings
Data Types in Python

bookSearching and Measuring

Once you can read pieces of a string, the next step is to ask questions about its contents: "does it contain this?", "where is it?", "how many times?", "does it start/end with…?".

Membership

Use in to check if a substring appears anywhere in a string. It returns a Boolean.

12345
# Checking if a user's bio mentions specific skills user_bio = "Experienced in Python programming and data analysis." print("Python" in user_bio) # True β†’ the bio mentions Python print("Java" not in user_bio) # True β†’ Java is not listed as a skill
copy

Finding Positions

  • find(sub) returns the starting index of the first match, or -1 if not found;
  • rfind(sub) searches from the right and returns the last match index (or -1);
  • index(sub) is like find, but raises ValueError if the substring is missing.
12345678
# Searching for keywords inside a product description description = "This brand new bracelet is made from recycled materials." print(description.find("bra")) # 5 β†’ first occurrence of "bra" print(description.rfind("bra")) # 5 β†’ only one "bra" found print(description.find("gold")) # -1 β†’ not found, returns -1 print(description.index("bra")) # 5 β†’ same as find(), but raises an error if not found print(description.index("gold")) # ValueError β†’ "gold" not in the text
copy

Counting Occurrences

count(sub) returns how many non-overlapping times the substring appears.

12345
# Counting occurrences of words or letters in a customer review review = "Amazing banana smoothie with banana slices on top!" print(review.count("banana")) # 2 β†’ the word appears twice print(review.count("a")) # 8 β†’ letter 'a' appears multiple times
copy

Starts and Ends

To check a string's start or end, use startswith or endswith, these are clearer and safer than slicing when you only need a yes/no answer.

12345
# Checking if the uploaded file has the correct name and format uploaded_file = "report_final.pdf" print(uploaded_file.startswith("report")) # True β†’ file name starts correctly print(uploaded_file.endswith(".pdf")) # True β†’ valid file format for upload
copy

Case-Insensitive Checks

String methods are case-sensitive. For case-insensitive search, normalize both sides with .lower() (or .upper()).

12345
# Checking a user's message for a polite greeting user_message = "Hello, team! Let's start the meeting." print("hello" in user_message.lower()) # True β†’ greeting detected print(user_message.lower().startswith("hello")) # True β†’ message begins with "hello"
copy

1. What will this code output?

2. Which statement does not raise an error when the substring is missing?

3. Given s = "Banana", which expression returns True case-insensitively for checking the prefix "ba"?

question mark

What will this code output?

Select the correct answer

question mark

Which statement does not raise an error when the substring is missing?

Select the correct answer

question mark

Given s = "Banana", which expression returns True case-insensitively for checking the prefix "ba"?

Select the correct answer

Everything was clear?

How can we improve it?

Thanks for your feedback!

SectionΒ 3. ChapterΒ 3

Ask AI

expand

Ask AI

ChatGPT

Ask anything or try one of the suggested questions to begin our chat

Awesome!

Completion rate improved to 5.26

bookSearching and Measuring

Swipe to show menu

Once you can read pieces of a string, the next step is to ask questions about its contents: "does it contain this?", "where is it?", "how many times?", "does it start/end with…?".

Membership

Use in to check if a substring appears anywhere in a string. It returns a Boolean.

12345
# Checking if a user's bio mentions specific skills user_bio = "Experienced in Python programming and data analysis." print("Python" in user_bio) # True β†’ the bio mentions Python print("Java" not in user_bio) # True β†’ Java is not listed as a skill
copy

Finding Positions

  • find(sub) returns the starting index of the first match, or -1 if not found;
  • rfind(sub) searches from the right and returns the last match index (or -1);
  • index(sub) is like find, but raises ValueError if the substring is missing.
12345678
# Searching for keywords inside a product description description = "This brand new bracelet is made from recycled materials." print(description.find("bra")) # 5 β†’ first occurrence of "bra" print(description.rfind("bra")) # 5 β†’ only one "bra" found print(description.find("gold")) # -1 β†’ not found, returns -1 print(description.index("bra")) # 5 β†’ same as find(), but raises an error if not found print(description.index("gold")) # ValueError β†’ "gold" not in the text
copy

Counting Occurrences

count(sub) returns how many non-overlapping times the substring appears.

12345
# Counting occurrences of words or letters in a customer review review = "Amazing banana smoothie with banana slices on top!" print(review.count("banana")) # 2 β†’ the word appears twice print(review.count("a")) # 8 β†’ letter 'a' appears multiple times
copy

Starts and Ends

To check a string's start or end, use startswith or endswith, these are clearer and safer than slicing when you only need a yes/no answer.

12345
# Checking if the uploaded file has the correct name and format uploaded_file = "report_final.pdf" print(uploaded_file.startswith("report")) # True β†’ file name starts correctly print(uploaded_file.endswith(".pdf")) # True β†’ valid file format for upload
copy

Case-Insensitive Checks

String methods are case-sensitive. For case-insensitive search, normalize both sides with .lower() (or .upper()).

12345
# Checking a user's message for a polite greeting user_message = "Hello, team! Let's start the meeting." print("hello" in user_message.lower()) # True β†’ greeting detected print(user_message.lower().startswith("hello")) # True β†’ message begins with "hello"
copy

1. What will this code output?

2. Which statement does not raise an error when the substring is missing?

3. Given s = "Banana", which expression returns True case-insensitively for checking the prefix "ba"?

question mark

What will this code output?

Select the correct answer

question mark

Which statement does not raise an error when the substring is missing?

Select the correct answer

question mark

Given s = "Banana", which expression returns True case-insensitively for checking the prefix "ba"?

Select the correct answer

Everything was clear?

How can we improve it?

Thanks for your feedback!

SectionΒ 3. ChapterΒ 3
some-alt