Using the String data type in Python

This post is lesson 21 of 54 in the subject Python Programming Language

1. How to Create String in Python

A string is a sequence of characters. A character is simply a symbol displayed on the screen using pixels. The characters displayed on the screen are stored by binary digits 0 and 1.

The process of converting characters to binary numbers is called encoding. And the reverse process is called decoding. ASCII and Unicode are widely used encoding schemes.

A string in Python consists of a sequence of Unicode characters. The Unicode encoding scheme can encode and decode all characters in all languages, special characters, etc.

Creating Strings in Python

Strings in Python can be created using single quotes, double quotes, and even triple quotes.

# Creating a String with single Quotes
my_string = ''
# Creating a String with double Quotes
my_string = ""
# Creating a String with triple Quotes
my_string = ''''''
# Creating a String with triple Quotes
my_string = """Hello, welcome to!"""
# Creating String with triple Quotes allows multiple lines
my_string = '''Hello,

Hello, welcome to!

Strings referenced by variables

We can assign a string to a variable using the assignment operator (=). The variable will then reference an object of the str class. Example:

website = ""

<class 'str'>

2. Accessing characters of a String in Python

We can access each character in a String by its index. The index of a String starts at 0 and must be an integer. Python permits the use of negative integer indices for Strings. An index of -1 refers to the position of the last character on the right side of the String.

An example of an index of the string in python
An example of an index of the string in python
website = ''
print('website = ', website)

#first character
print('website[0] = ', website[0])

#character at index 5
print('website[5] = ', website[5])

#last character
print('website[-1] = ', website[-1])

#character at index -5
print('website[-5] = ', website[-5])


website =
website[0] =  g
website[5] =  c
website[-1] =  m
website[-5] =  t

We can access a range of consecutive characters by using the slicing operator (:).

website = ''
print('website = ', website)

#slicing 2nd to 5th character
print('website[1:5] = ', website[1:5])

#slicing 6th to 2nd last character
print('website[5:-2] = ', website[5:-2])


website =
website[1:5] =  ocho
website[5:-2] =  cit.c

If you try to access a character in a String using an index that is outside the range of valid indexes, it will result in an IndexError. If the index is not of type integer, it will result in a TypeError.

website = ''
print('website = ', website)

# index must be in range
# IndexError: string index out of range
print('website[50] = ', website[50])

# index must be an integer
# TypeError: string indices must be integers
print('website[1.5] = ', website[1.5])

3. String Operations in Python

3.1. Modifying or deleting a String

In Python, Strings have immutable values. This means that the characters within a String cannot be changed. If we attempt to modify a String, a TypeError will be thrown.

website = ''
website[1] = 'a'


TypeError: 'str' object does not support item assignment

If we want a different String, we can simply assign that String to a variable.

website = ''
website = ""


We cannot delete a character in a String, but we can use the del keyword to delete a String.

website = ''
#TypeError: 'str' object doesn't support item deletion
del website[1]
del website
#NameError: name 'website' is not defined

3.2. Operators for manipulating strings

The + operator is used to concatenate two or more strings. The * operator is used to repeat a string several times.

# Python String Operations
str1 = 'Hello, '
str2 ='Welcome to '
str3 ='!'

# using +
print('str1 + str2 + str3 = ', str1 + str2 + str3)

# using *
print('str3 * 3 =', str3 * 3)


str1 + str2 + str3 =  Hello, Welcome to!
str3 * 3 =!!!

3.3. Iterating through a String

We can iterate through each character in a string using a for loop. Below is an example that counts the number of ‘c’ characters in a string.

# Iterating through a string
count = 0
for letter in '':
    if(letter == 'c'):
        count += 1
print(count,'letters found')


3 letters found

3.4. Check if a String belongs to another String

Use the keyword in or not in to check if a String belongs to another String.

website = ''
print("it" in website)
print("ckc" in website)
print("itckc" not in website)
print("com" not in website)

3.5. Formatting Strings in Python

Python provides the ability to format strings using the format() function. The format() function uses curly braces {} to hold space in the String for the arguments of the format() function.

# Default order
String1 = "{} {} {}".format('Goc', 'hoc', 'it')
print("Print String in default order: ")

# Positional Formatting
String1 = "{1} {0} {2}".format('Goc', 'hoc', 'it')
print("Print String in Positional order: ")

# Keyword Formatting
String1 = "{l} {h} {g}".format(g='Goc', h='hoc', l='it')
print("Print String in order of Keywords: ")


Goc hoc it
Print String in Positional order:
hoc Goc it
Print String in order of Keywords:
it hoc Goc

We can format integer and float numbers with special format symbols. Example:

# Formatting of Integers
String1 = "{0:b}".format(16)
print("Binary representation of 16 is ")

# Formatting of Floats
String1 = "{0:e}".format(165.6458)
print("Exponent representation of 165.6458 is ")

# Rounding off Integers
String1 = "{0:.2f}".format(1/6)
print("one-sixth is : ")


Binary representation of 16 is
Exponent representation of 165.6458 is
one-sixth is :

If not using the format() function, we can use the formatting type with the % operator. Example:

num1 = 12.3456789
print("Formatting in 3.2f format: ")
print('The value of num1 is %3.2f' % num1)
print("Formatting in 3.4f format: ")
print('The value of num1 is %3.4f' % num1)


Formatting in 3.2f format:
The value of num1 is 12.35
Formatting in 3.4f format:
The value of num1 is 12.3457

3.6. Escape characters in Python

When printing strings with single or double quotes or an invalid character, an error will occur. For example:

#SyntaxError: unterminated string literal
print("He said, "What's there?"")
txt = "We are the so-called "Vikings" from the north."
# SyntaxError: invalid syntax
#SyntaxError: unterminated string literal

We solve these cases by using escape character \. In addition, we can ignore the escape character by placing r or R before the String.

my_string = 'I\'m a "man"'
print("Escaping Single Quote: ")
my_string = "I'm a \"man\""
print("Escaping Double Quotes: ")
my_path = "C:\\Python\\Geeks\\"
print("Escaping Backslashes: ")

print("This is \x48\x45\x58 representation")
#ignore escape character
print(r"This is \x48\x45\x58 representation")


Escaping Single Quote:
I'm a "man"
Escaping Double Quotes:
I'm a "man"
Escaping Backslashes:
This is HEX representation
This is \x48\x45\x58 representation

You can see all the escape characters here.

3.7. Some commonly used functions when working with Strings in Python

enumerate()Returns an object including all the index and corresponding characters in the String
len()Returns the number of characters in the String
lower()Converts characters in the String to lowercase
upper()Converts characters in the String to uppercase
join()Joins multiple Strings together
split()Returns a list of words in the String
find()Returns the position of the first occurrence of a string within another string.
replace()Replaces a sub-String with another String in the parent String. Then returns the new String.
website = "Welcome to"
# enumerate()
list_enumerate = list(enumerate(website))
print('list(enumerate(website) = ', list_enumerate)

#character count
print('len(website) = ', len(website))

print(website.join(["How ", " are ", " you?"]))


list(enumerate(website) =  [(0, 'W'), (1, 'e'), (2, 'l'), (3, 'c'), (4, 'o'), (5, 'm'), (6, 'e'), (7, ' '), (8, 't'), (9,
'o'), (10, ' '), (11, 'G'), (12, 'o'), (13, 'c'), (14, 'h'), (15, 'o'), (16, 'c'), (17, 'i'), (18, 't'), (19, '.'), (20, 'c'), (21, 'o'), (22, 'm')]
len(website) =  23
welcome to
['Welcome', 'to', '']
How Welcome to are Welcome to you?
Welcome to
5/5 - (1 vote)
Previous and next lesson in subject<< Using module and package in PythonThe list data structure in Python >>

Leave a Reply

Your email address will not be published. Required fields are marked *