Skip to main content

Strings

Updated Oct 28, 2019 ·

Overview

Strings are one of the most common types of data used in Python. We can loop over them, but they also have special methods for formatting, joining, and searching

Formatted Strings

Formatted strings, or f-strings, let you insert variables and expressions directly into a string. You create them by placing an f before the opening quote and using curly braces {} for variables.

cookie_name = "Anzac"
cookie_price = "1.99"

print(f"Each {cookie_name} cookie costs {cookie_price}")

Output:

Each Anzac cookie costs 1.99

Joining with Strings

Strings have a join() method that combines elements from a list or other iterable into one string using the string as a separator.

child_ages = ["3", "4", "7", "8"]

# Join with a comma
print(', '.join(child_ages))

# Combine with f-string
print(f"The children are ages {', '.join(child_ages[0:3])}, and {child_ages[-1]}")

Output:

3, 4, 7, 8
The children are ages 3, 4, 7, and 8

Matching Parts of a String

You can check if a string starts or ends with certain characters using startswith() or endswith(). This is case-sensitive.

For example, we can use startswith to search a list for names starting with "A":

boy_names = ["James", "John", "Bob", "Adam", "Ted", "Alex", "Robin"]
names_with_a = []

for name in boy_names:
if name.startswith('A'):
names_with_a.append(name)

print(names_with_a)

Output:

['Adam', 'Alex']

Checking for Existence

The in operator checks if a substring exists inside a string. It is case-sensitive by default.

quote = "Life is a long lesson in humility."

print("long" in quote) # True
print("Long" in quote) # False
print("life" in quote) # False

To ignore case when searching, use the lower() method on the string to convert it to lowercase.

quote = "Life is a long lesson in humility."

print("life" in quote.lower()) # True