Python - Strings
Strings are amongst the most popular types in Python. We can create them simply by enclosing
characters in quotes. Python treats single quotes the same as double quotes. Creating strings is as
simple as assigning a value to a variable. For example −
var1 = 'Hello World!'
var2 = "Python Programming"
Accessing Values in Strings
Python does not support a character type; these are treated as strings of length one, thus also
considered a substring.
To access substrings, use the square brackets for slicing along with the index or indices to obtain
your substring. For example −
Live Demo
#!/usr/bin/python
var1 = 'Hello World!'
var2 = "Python Programming"
print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]
When the above code is executed, it produces the following result −
var1[0]: H
var2[1:5]: ytho
Updating Strings
You can "update" an existing string by (re)assigning a variable to another string. The new value
can be related to its previous value or to a completely different string altogether. For example −
Live Demo
#!/usr/bin/python
var1 = 'Hello World!'
print "Updated String :- ", var1[:6] + 'Python'
When the above code is executed, it produces the following result −
Updated String :- Hello Python
Escape Characters
Following table is a list of escape or non-printable characters that can be represented with
backslash notation.
An escape character gets interpreted; in a single quoted as well as double quoted strings.
Backslash notation Hexadecimal character Description
\a 0x07 Bell or alert
\b 0x08 Backspace
\cx Control-x
\C-x Control-x
\e 0x1b Escape
\f 0x0c Formfeed
\M-\C-x Meta-Control-x
\n 0x0a Newline
\nnn Octal notation, where n is in the range 0.7
\r 0x0d Carriage return
\s 0x20 Space
\t 0x09 Tab
\v 0x0b Vertical tab
\x Character x
\xnn Hexadecimal notation, where n is in the range 0.9, a.f, or A.F
String Special Operators
Assume string variable a holds 'Hello' and variable b holds 'Python', then −
Operator Description Example
Concatenation - Adds values on either side of
+ a + b will give HelloPython
the operator
Repetition - Creates new strings,
* concatenating multiple copies of the same a*2 will give -HelloHello
string
Slice - Gives the character from the given
[] a[1] will give e
index
Range Slice - Gives the characters from the
[:] a[1:4] will give ell
given range
Membership - Returns true if a character
in H in a will give 1
exists in the given string
Membership - Returns true if a character does
not in M not in a will give 1
not exist in the given string
Raw String - Suppresses actual meaning of
Escape characters. The syntax for raw strings
is exactly the same as for normal strings with
the exception of the raw string operator, the
r/R print r'\n' prints \n and print R'\n'prints \n
letter "r," which precedes the quotation
marks. The "r" can be lowercase (r) or
uppercase (R) and must be placed
immediately preceding the first quote mark.
% Format - Performs String formatting See at next section
String Formatting Operator
One of Python's coolest features is the string format operator %. This operator is unique to
strings and makes up for the pack of having functions from C's printf() family. Following is a
simple example −
Live Demo
#!/usr/bin/python
print "My name is %s and weight is %d kg!" % ('Zara', 21)
When the above code is executed, it produces the following result −
My name is Zara and weight is 21 kg!
Here is the list of complete set of symbols which can be used along with % −
Format Symbol Conversion
%c character
%s string conversion via str() prior to formatting
%i signed decimal integer
%d signed decimal integer
%u unsigned decimal integer
%o octal integer
%x hexadecimal integer (lowercase letters)
%X hexadecimal integer (UPPERcase letters)
%e exponential notation (with lowercase 'e')
%E exponential notation (with UPPERcase 'E')
%f floating point real number
%g the shorter of %f and %e
%G the shorter of %f and %E
Other supported symbols and functionality are listed in the following table −
Symbol Functionality
* argument specifies width or precision
- left justification
+ display the sign
<sp> leave a blank space before a positive number
add the octal leading zero ( '0' ) or hexadecimal leading '0x' or '0X',
#
depending on whether 'x' or 'X' were used.
0 pad from left with zeros (instead of spaces)
% '%%' leaves you with a single literal '%'
(var) mapping variable (dictionary arguments)
m is the minimum total width and n is the number of digits to display
m.n.
after the decimal point (if appl.)
Triple Quotes
Python's triple quotes comes to the rescue by allowing strings to span multiple lines, including
verbatim NEWLINEs, TABs, and any other special characters.
The syntax for triple quotes consists of three consecutive single or double quotes.
Live Demo
#!/usr/bin/python
para_str = """this is a long string that is made up of
several lines and non-printable characters such as
TAB ( \t ) and they will show up that way when displayed.
NEWLINEs within the string, whether explicitly given like
this within the brackets [ \n ], or just a NEWLINE within
the variable assignment will also show up.
"""
print para_str
When the above code is executed, it produces the following result. Note how every single special
character has been converted to its printed form, right down to the last NEWLINE at the end of
the string between the "up." and closing triple quotes. Also note that NEWLINEs occur either
with an explicit carriage return at the end of a line or its escape code (\n) −
Unicode String
Normal strings in Python are stored internally as 8-bit ASCII, while Unicode strings are stored as
16-bit Unicode. This allows for a more varied set of characters, including special characters from
most languages in the world. I'll restrict my treatment of Unicode strings to the following −
Live Demo
#!/usr/bin/python
print u'Hello, world!'
When the above code is executed, it produces the following result −
Hello, world!
As you can see, Unicode strings use the prefix u, just as raw strings use the prefix r.
Built-in String Methods
Python includes the following built-in methods to manipulate strings −
Python String capitalize() Method
It returns a copy of the string with only its first character capitalized.
Syntax
str.capitalize()
Parameters
NA
Return Value
string
Example
Live Demo
#!/usr/bin/python
str = "this is string example....wow!!!";
print "str.capitalize() : ", str.capitalize()
Python String len() Method
Description
The method len() returns the length of the string.
Syntax
Following is the syntax for len() method −
len( str )
Parameters
NA
Return Value
This method returns the length of the string.
Example
The following example shows the usage of len() method.
Live Demo
#!/usr/bin/python
str = "this is string example....wow!!!";
print "Length of the string: ", len(str)
When we run above program, it produces following result −
Length of the string: 32
Python String lower() Method
Description
The method lower() returns a copy of the string in which all case-based characters have been
lowercased.
Syntax
Following is the syntax for lower() method −
str.lower()
Parameters
NA
Return Value
This method returns a copy of the string in which all case-based characters have been
lowercased.
Example
The following example shows the usage of lower() method.
Live Demo
#!/usr/bin/python
str = "THIS IS STRING EXAMPLE....WOW!!!";
print str.lower()
When we run above program, it produces following result −
this is string example....wow!!!
Python String upper() Method
Description
The method upper() returns a copy of the string in which all case-based characters have been
uppercased.
Syntax
Following is the syntax for upper() method −
str.upper()
Parameters
NA
Return Value
This method returns a copy of the string in which all case-based characters have been
uppercased.
Example
The following example shows the usage of upper() method.
Live Demo
#!/usr/bin/python
str = "this is string example....wow!!!";
print "str.capitalize() : ", str.upper()
When we run above program, it produces following result −
str.capitalize() : THIS IS STRING EXAMPLE....WOW!!!