Skip to content

Python Strings



A string in Python is a series of characters enclosed into quotes or double quotes:


You can assign a string value to a variable:

name = "Roger"

You can concatenate two strings using the + operator:

phrase = "Roger" + " is a good dog"

You can append to a string using +=:

name = "Roger"
name += " is a good dog"

print(name) #Roger is a good dog

You can convert a number to a string using the str class constructor:

str(8) #"8"

This is essential to concatenate a number to a string:

print("Roger is " + str(8) + " years old") #Roger is 8 years old

A string can be multi-line when defined with a special syntax, enclosing the string in a set of 3 quotes:

print("""Roger is


years old

#double quotes, or single quotes

Roger is


years old

A string has a set of built-in methods, like:

and many more.

None of those methods alter the original string. They return a new, modified string instead. For example:

name = "Roger"
print(name.lower()) #"roger"
print(name) #"Roger"

You can use some global functions to work with strings, too.

In particular I think of len(), which gives you the length of a string:

name = "Roger"
print(len(name)) #5

The in operator lets you check if a string contains a substring:

name = "Roger"
print("ger" in name) #True

Escaping is a way to add special characters into a string.

For example, how do you add a double quote into a string that’s wrapped into double quotes?

name = "Roger"

"Ro"Ger" will not work, as Python will think the string ends at "Ro".

The way to go is to escape the double quote inside the string, with the \ backslash character:

name = "Ro\"ger"

This applies to single quotes too \', and for special formatting characters like \t for tab, \n for new line and \\ for the backslash.

Given a string, you can get its characters using square brackets to get a specific item, given its index, starting from 0:

name = "Roger"
name[0] #'R'
name[1] #'o'
name[2] #'g'

Using a negative number will start counting from the end:

name = "Roger"
name[-1] #"r"

You can also use a range, using what we call slicing:

name = "Roger"
name[0:2] #"Ro"
name[:2] #"Ro"
name[2:] #"ger"
β†’ Get my Python Handbook
β†’ Get my Python Handbook
  • Learn modern web development in my BOOTCAMP (SIGNUP END TOMORROW FEB 20, 2024)
  • THE VALLEY OF CODE (+ PRO), your web development manual
  • I wrote 15+ coding BOOKS, all available in THE VALLEY OF CODE PRO
  • Indie solopreneur internet business masterclass SOLO LAB (summer 2024)