Strings in Python
Strings in Python are surrounded by either single quotation marks or double quotation marks. 'hello'
is the same as "hello"
.
You can display a string literal with the print()
function:
print("Hello")
print('Hello')
Quotes Inside Quotesβ
You can use quotes inside a string, as long as they don't match the quotes surrounding the string:
print("It's alright")
print("He is called 'Johnny'")
print('He is called "Johnny"')
Assign String to a Variableβ
Assigning a string to a variable is done with the variable name followed by an equal sign and the string:
a = "Hello"
print(a)
Multiline Stringsβ
You can assign a multiline string to a variable by using three quotes:
You can use three double quotes:
a = """Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua."""
print(a)
Or three single quotes:
a = '''Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.'''
print(a)
Note: In the result, the line breaks are inserted at the same position as in the code.
Strings are Arraysβ
Like many other popular programming languages, strings in Python are arrays of bytes representing Unicode characters. However, Python does not have a character data type; a single character is simply a string with a length of 1.
Square brackets can be used to access elements of the string:
a = "Hello, World!"
print(a[1])
Looping Through a Stringβ
Since strings are arrays, we can loop through the characters in a string with a for
loop:
for x in "banana":
print(x)
String Lengthβ
To get the length of a string, use the len()
function:
a = "Hello, World!"
print(len(a))
Check Stringβ
To check if a certain phrase or character is present in a string, we can use the keyword in
.
Exampleβ
Check if "free" is present in the following text:
txt = "The best things in life are free!"
print("free" in txt)
Use it in an if
statement:
txt = "The best things in life are free!"
if "free" in txt:
print("Yes, 'free' is present.")
Check if NOTβ
To check if a certain phrase or character is NOT present in a string, we can use the keyword not in
.
Exampleβ
Check if "expensive" is NOT present in the following text:
txt = "The best things in life are free!"
print("expensive" not in txt)
Use it in an if
statement:
txt = "The best things in life are free!"
if "expensive" not in txt:
print("No, 'expensive' is NOT present.")
Slicingβ
You can return a range of characters by using the slice syntax. Specify the start index and the end index, separated by a colon, to return a part of the string.
Exampleβ
Get the characters from position 2 to position 5 (not included):
b = "Hello, World!"
print(b[2:5])
Note: The first character has index 0.
Slice From the Startβ
By leaving out the start index, the range will start at the first character:
b = "Hello, World!"
print(b[:5])
Slice To the Endβ
By leaving out the end index, the range will go to the end:
b = "Hello, World!"
print(b[2:])
Negative Indexingβ
Use negative indexes to start the slice from the end of the string:
Exampleβ
Get the characters:
From: "o"
in "World!"
(position -5)
To, but not included: "d"
in "World!"
(position -2):
b = "Hello, World!"
print(b[-5:-2])
Modify Stringsβ
Python has a set of built-in methods that you can use on strings.
Upper Caseβ
The upper()
method returns the string in upper case:
a = "Hello, World!"
print(a.upper())
Lower Caseβ
The lower()
method returns the string in lower case:
a = "Hello, World!"
print(a.lower())
Remove Whitespaceβ
Whitespace is the space before and/or after the actual text, and very often you want to remove this space.
The strip()
method removes any whitespace from the beginning or the end:
a = " Hello, World! "
print(a.strip()) # returns "Hello, World!"
Replace Stringβ
The replace()
method replaces a string with another string:
a = "Hello, World!"
print(a.replace("H", "J"))
Split Stringβ
The split()
method returns a list where the text between the specified separator becomes the list items.
The split()
method splits the string into substrings if it finds instances of the separator:
a = "Hello, World!"
print(a.split(",")) # returns ['Hello', ' World!']
String Concatenationβ
To concatenate, or combine, two strings, you can use the +
operator.
Exampleβ
Merge variable a
with variable b
into variable c
:
a = "Hello"
b = "World"
c = a + b
print(c)
To add a space between them, add a " "
:
a = "Hello"
b = "World"
c = a + " " + b
print(c)
String Formatβ
As we learned in the Python Variables chapter, we cannot combine strings and numbers like this:
Exampleβ
age = 36
txt = "My name is John, I am " + age
print(txt)
But we can combine strings and numbers by using f-strings or the format()
method!
F-Stringsβ
F-String was introduced in Python 3.6 and is now the preferred way of formatting strings.
To specify a string as an f-string, simply put an f
in front of the string literal, and add curly brackets {}
as placeholders for variables and other operations.
Exampleβ
Create an f-string:
age = 36
txt = f"My name is John, I am {age}"
print(txt)
Placeholders and Modifiersβ
A placeholder can contain variables, operations, functions, and modifiers to format the value.
Exampleβ
Add a placeholder for the price variable:
price = 59
txt = f"The price is {price} dollars"
print(txt)
A placeholder can include a modifier to format the value.
A modifier is included by adding a colon :
followed by a legal formatting type, like .2f
which means fixed-point number with 2 decimals:
Exampleβ
Display the price with 2 decimals:
price = 59
txt = f"The price is {price:.2f} dollars"
print(txt)
A placeholder can contain Python code, like math operations:
Exampleβ
Perform a math operation in the placeholder, and return the result:
txt = f"The price is {20 * 59} dollars"
print(txt)
Escape Charactersβ
To insert characters that are illegal in a string, use an escape character.
An escape character is a backslash \
followed by the character you want to insert.
An example of an illegal character is a double quote inside a string that is surrounded by double quotes:
Exampleβ
You will get an error if you use double quotes inside a string that is surrounded by double quotes:
txt = "We are the so-called "Vikings" from the north."
To fix this problem, use the escape character \"
:
Exampleβ
The escape character allows you to use double quotes when you normally would not be allowed:
txt = "We are the so-called \"Vikings\" from the north."
Other Escape Charactersβ
Other escape characters used in Python:
Code | Result |
---|---|
\' | Single Quote |
\\ | Backslash |
\n | New Line |
\r | Carriage Return |
\t | Tab |
\b | Backspace |
\f | Form Feed |
\ooo | Octal value |
\xhh | Hex value |
String Methodsβ
Python has a set of built-in methods that you can use on strings. All string methods return new values. They do not change the original string.
Method | Description |
---|---|
capitalize() | Converts the first character to upper case |
casefold() | Converts string into lower case |
center() | Returns a centeredstring |
count() | Returns the number of times a specified value occurs in a string |
encode() | Returns an encoded version of the string |
endswith() | Returns true if the string ends with the specified value |
expandtabs() | Sets the tab size of the string |
find() | Searches the string for a specified value and returns the position of where it was found |
format() | Formats specified values in a string |
format_map() | Formats specified values in a string |
index() | Searches the string for a specified value and returns the position of where it was found |
isalnum() | Returns True if all characters in the string are alphanumeric |
isalpha() | Returns True if all characters in the string are in the alphabet |
isascii() | Returns True if all characters in the string are ASCII characters |
isdecimal() | Returns True if all characters in the string are decimals |
isdigit() | Returns True if all characters in the string are digits |
isidentifier() | Returns True if the string is an identifier |
islower() | Returns True if all characters in the string are lower case |
isnumeric() | Returns True if all characters in the string are numeric |
isprintable() | Returns True if all characters in the string are printable |
isspace() | Returns True if the string contains only whitespace characters |
istitle() | Returns True if the string follows the rules of a title |
isupper() | Returns True if all characters in the string are upper case |
join() | Joins the elements of an iterable to the end of the string |
ljust() | Returns a left justified version of the string |
lower() | Converts a string into lower case |
lstrip() | Returns a left trim version of the string |
maketrans() | Returns a translation table to be used in translations |
partition() | Returns a tuple where the string is parted into three parts |
replace() | Returns a string where a specified value is replaced with another specified value |
rfind() | Searches the string for a specified value and returns the last position of where it was found |
rindex() | Searches the string for a specified value and returns the last position of where it was found |
rjust() | Returns a right justified version of the string |
rpartition() | Returns a tuple where the string is parted into three parts |
rsplit() | Splits the string at the specified separator, and returns a list |
rstrip() | Returns a right trim version of the string |
split() | Splits the string at the specified separator, and returns a list |
splitlines() | Splits the string at line breaks and returns a list |
startswith() | Returns true if the string starts with the specified value |
strip() | Returns a trimmed version of the string |
swapcase() | Swaps cases, lower case becomes upper case and vice versa |
title() | Converts the first character of each word to upper case |
translate() | Returns a translated string |
upper() | Converts a string into upper case |
zfill() | Fills the string with a specified number of 0 values at the beginning |