Python Strings
In computer programming, a string is a sequence of characters. For example,
"hello" is a string containing a sequence of characters 'h', 'e', 'l', 'l', and
'o'.
We use single quotes or double quotes to represent a string in Python. For
example,
# create a string using double quotes
string1 = "Python programming"
# create a string using single quotes
string1 = 'Python programming'
Here, we have created a string variable named string1. The variable is
initialized with the string Python Programming.
Syntax:
1. str = "Hi Python !"
Here, if we check the type of the variable str using a Python script
1. print(type(str)), then it will print a string (str).
In Python, strings are treated as the sequence of characters, which means that Python
doesn't support the character data-type; instead, a single character written as 'p' is
treated as the string of length 1.
Creating String in Python
We can create a string by enclosing the characters in single-quotes or double- quotes.
Python also provides triple-quotes to represent the string, but it is generally used for
multiline string or docstrings.
1. #Using single quotes
2. str1 = 'Hello Python'
3. print(str1)
4. #Using double quotes
5. str2 = "Hello Python"
6. print(str2)
7.
8. #Using triple quotes
9. str3 = '''''Triple quotes are generally used for
10. represent the multiline or
11. docstring'''
12. print(str3)
Output:
Hello Python
Hello Python
Triple quotes are generally used for
represent the multiline or
docstring
Strings indexing and splitting
Like other languages, the indexing of the Python strings starts from 0. For example, The
string "HELLO" is indexed as given in the below figure.
Consider the following example:
1. str = "HELLO"
2. print(str[0])
3. print(str[1])
4. print(str[2])
5. print(str[3])
6. print(str[4])
7. # It returns the IndexError because 6th index doesn't exist
8. print(str[6])
Output:
H
E
L
L
O
IndexError: string index out of range
As shown in Python, the slice operator [] is used to access the individual characters of
the string. However, we can use the : (colon) operator in Python to access the substring
from the given string. Consider the following example.
Here, we must notice that the upper range given in the slice operator is always exclusive
i.e., if str = 'HELLO' is given, then str[1:3] will always include str[1] = 'E', str[2] = 'L' and
nothing else.
Consider the following example:
1. # Given String
2. str = "JAVATPOINT"
3. # Start Oth index to end
4. print(str[0:])
5. # Starts 1th index to 4th index
6. print(str[1:5])
7. # Starts 2nd index to 3rd index
8. print(str[2:4])
9. # Starts 0th to 2nd index
10. print(str[:3])
11. #Starts 4th to 6th index
12. print(str[4:7])
Output:
JAVATPOINT
AVAT
VA
JAV
TPO
We can do the negative slicing in the string; it starts from the rightmost character, which
is indicated as -1. The second rightmost index indicates -2, and so on. Consider the
following image.
Consider the following example
1. str = 'JAVATPOINT'
2. print(str[-1])
3. print(str[-3])
4. print(str[-2:])
5. print(str[-4:-1])
6. print(str[-7:-2])
7. # Reversing the given string
8. print(str[::-1])
9. print(str[-12])
Output:
T
I
NT
OIN
ATPOI
TNIOPTAVAJ
IndexError: string index out of range
Reassigning Strings
Updating the content of the strings is as easy as assigning it to a new string. The string
object doesn't support item assignment i.e A string can only be replaced with a new
string since its content cannot be partially replaced. Strings are immutable in Python.
Consider the following example.
Example 1
1. str = "HELLO"
2. str[0] = "h"
3. print(str)
Output:
Traceback (most recent call last):
File "12.py", line 2, in <module>
str[0] = "h";
TypeError: 'str' object does not support item assignment
However, in example 1, the string str can be assigned completely to a new content as
specified in the following example.
Example 2
1. str = "HELLO"
2. print(str)
3. str = "hello"
4. print(str)
Output:
HELLO
hello
Deleting the String
As we know that strings are immutable. We cannot delete or remove the characters
from the string. But we can delete the entire string using the del keyword.
1. str = "JAVATPOINT"
2. del str[1]
Output:
TypeError: 'str' object doesn't support item deletion
Now we are deleting the entire string.
1. str1 = "JAVATPOINT"
2. del str1
3. print(str1)
Output:
NameError: name 'str1' is not defined
String Operators
Operat Description
or
+ It is known as concatenation operator used to join the strings given either
side of the operator.
* It is known as repetition operator. It concatenates the multiple copies of
the same string.
[] It is known as slice operator. It is used to access the sub-strings of a
particular string.
[:] It is known as range slice operator. It is used to access the characters
from the specified range.
in It is known as membership operator. It returns if a particular sub-string is
present in the specified string.
not in It is also a membership operator and does the exact reverse of in. It
returns true if a particular substring is not present in the specified string.
r/R It is used to specify the raw string. Raw strings are used in the cases
where we need to print the actual meaning of escape characters such as
"C://python". To define any string as a raw string, the character r or R is
followed by the string.
% It is used to perform string formatting. It makes use of the format
specifiers used in C programming like %d or %f to map their values in
python. We will discuss how formatting is done in python.
Eg:
1. str = "Hello"
2. str1 = " world"
3. print(str*3) # prints HelloHelloHello
4. print(str+str1)# prints Hello world
5. print(str[4]) # prints o
6. print(str[2:4]); # prints ll
7. print('w' in str) # prints false as w is not present in str
8. print('wo' not in str1) # prints false as wo is present in str1.
9. print(r'C://python37') # prints C://python37 as it is written
10. print("The string str : %s"%(str)) # prints The string str : Hello
Output:
HelloHelloHello
Hello world
o
ll
False
False
C://python37
The string str : Hello
The format() method
The format() method is the most flexible and useful method in formatting strings. The
curly braces {} are used as the placeholder in the string and replaced by the format()
method argument. Let's have a look at the given an example:
1. # Using Curly braces
2. print("{} and {} both are the best friend".format("Devansh","Abhishek"))
3.
4. #Positional Argument
5. print("{1} and {0} best players ".format("Virat","Rohit"))
6.
7. #Keyword Argument
8. print("{a},{b},{c}".format(a = "James", b = "Peter", c = "Ricky"))
Output:
Devansh and Abhishek both are the best friend
Rohit and Virat best players
James,Peter,Ricky
Python String functions
Python provides various in-built functions that are used for string handling. Many String
fun
Method Description
capitalize() It capitalizes the first character of the String. This
function is deprecated in python3
casefold() It returns a version of s suitable for case-less
comparisons.
center(width ,fillchar) It returns a space padded string with the original
string centred with equal number of left and right
spaces.
count(string,begin,end) It counts the number of occurrences of a substring in
a String between begin and end index.
decode(encoding = 'UTF8', Decodes the string using codec registered for
errors = 'strict') encoding.
encode() Encode S using the codec registered for encoding.
Default encoding is 'utf-8'.
endswith(suffix It returns a Boolean value if the string terminates with
,begin=0,end=len(string)) given suffix between begin and end.
expandtabs(tabsize = 8) It defines tabs in string to multiple spaces. The
default space value is 8.
find(substring ,beginIndex, It returns the index value of the string where
endIndex) substring is found between begin index and end
index.
format(value) It returns a formatted version of S, using the passed
value.
index(subsring, beginIndex, It throws an exception if string is not found. It works
endIndex) same as find() method.
isalnum() It returns true if the characters in the string are
alphanumeric i.e., alphabets or numbers and there is
at least 1 character. Otherwise, it returns false.
isalpha() It returns true if all the characters are alphabets and
there is at least one character, otherwise False.
isdecimal() It returns true if all the characters of the string are
decimals.
isdigit() It returns true if all the characters are digits and there
is at least one character, otherwise False.
isidentifier() It returns true if the string is the valid identifier.
islower() It returns true if the characters of a string are in lower
case, otherwise false.
isnumeric() It returns true if the string contains only numeric
characters.
isprintable() It returns true if all the characters of s are printable or
s is empty, false otherwise.
isupper() It returns false if characters of a string are in Upper
case, otherwise False.
isspace() It returns true if the characters of a string are
white-space, otherwise false.
istitle() It returns true if the string is titled properly and false
otherwise. A title string is the one in which the first
character is upper-case whereas the other characters
are lower-case.
isupper() It returns true if all the characters of the string(if
exists) is true otherwise it returns false.
join(seq) It merges the strings representation of the given
sequence.
len(string) It returns the length of a string.
ljust(width[,fillchar]) It returns the space padded strings with the original
string left justified to the given width.
lower() It converts all the characters of a string to Lower
case.
lstrip() It removes all leading whitespaces of a string and
can also be used to remove particular character from
leading.
partition() It searches for the separator sep in S, and returns the
part before it, the separator itself, and the part after it.
If the separator is not found, return S and two empty
strings.
maketrans() It returns a translation table to be used in translate
function.
replace(old,new[,count]) It replaces the old sequence of characters with the
new sequence. The max characters are replaced if
max is given.
rfind(str,beg=0,end=len(str)) It is similar to find but it traverses the string in
backward direction.
rindex(str,beg=0,end=len(str)) It is same as index but it traverses the string in
backward direction.
rjust(width,[,fillchar]) Returns a space padded string having original string
right justified to the number of characters specified.
rstrip() It removes all trailing whitespace of a string and can
also be used to remove particular character from
trailing.
rsplit(sep=None, maxsplit = It is same as split() but it processes the string from
-1) the backward direction. It returns the list of words in
the string. If Separator is not specified then the string
splits according to the white-space.
split(str,num=string.count(str Splits the string according to the delimiter str. The
)) string splits according to the space if the delimiter is
not provided. It returns the list of substring
concatenated with the delimiter.
splitlines(num=string.count('\ It returns the list of strings at each line with newline
n')) removed.
startswith(str,beg=0,end=len( It returns a Boolean value if the string starts with
str)) given str between begin and end.
strip([chars]) It is used to perform lstrip() and rstrip() on the string.
swapcase() It inverts case of all characters in a string.
title() It is used to convert the string into the title-case i.e.,
The string meEruT will be converted to Meerut.
translate(table,deletechars = It translates the string according to the translation
'') table passed in the function .
upper() It converts all the characters of a string to Upper
Case.
zfill(width) Returns original string left padded with zeros to a
total of width characters; intended for numbers, zfill()
retains any sign given (less one zero).