Searching 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
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 likefind, but raisesValueErrorif 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
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
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
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"
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"?
Thanks for your feedback!
Ask AI
Ask AI
Ask anything or try one of the suggested questions to begin our chat
Awesome!
Completion rate improved to 5.26
Searching 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
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 likefind, but raisesValueErrorif 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
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
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
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"
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"?
Thanks for your feedback!