Strings in Python

 Print   13 min read  
07 Mar 2023


As a learner or programmer, manipulating and creating strings is an important skill to have. Whether you're formatting data for printing or configuring personalized welcome messages for your users, being able to write clean code with strings makes all the difference in quality development. Thankfully mastering string manipulation doesn't have to be a difficult task if you know how Python handles String values it can be pretty easy! In this article, we'll show you everything you need to know about working with Strings in Python language.

What are Strings in Python?

Strings in Python are an integral part of the programming language and are used to represent text data. Strings are immutable so they cannot be changed once they are created. This means strings can be stored in the same way each time they’re used, making them more efficient for developers. In Python, strings can be manipulated in a variety of ways with built-in functions such as upper() and lower(). Additionally, strings can also support regular expressions for string matching and replacement. Due to the feature of versatility strings in Python offer developers many different options when dealing with textual data.


var1 = 'Hello World!'

var2 = "Python Programming"

Accessing String Values in Python

Accessing string values in Python programming language is easy to do, and can be an invaluable tool when working on larger programming projects. Python has a built-in setup for accessing the characters in each string, known as 'slicing'. With the slicing syntax, anyone can “extract” or “slice” different parts of the string in order to get specific values. Accessing string values also opens up applications such as changing the capitalization of letters within a word and more.


var1 = 'Hello World!'

var2 = "Python Programming"

print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]


var1[0]: H
var2[1:5]: ytho

Updating Strings

Updating Strings in Python programming language can be a straightforward process. In order to take advantage of all the latest features, a user must first learn how to edit the existing strings in their code. Updating existing strings will involve changing their value or contents, whether it be just for cosmetic purposes or for functionality updates. The two main ways to update strings are by using slicing and indexing operations and the replace() method. Both offer simple solutions that allow string updates to happen quickly and easily. Updating Strings in Python is an essential skill for anyone looking to maximize effectiveness when coding.


var1 = 'Hello World!'
print "Updated String :- ", var1[:6] + 'Python'


Updated String :- Hello Python

Python escape characters

Backslash notationHexadecimal characterDescription
\a0x07Bell or alert
\cx Control-x
\C-x Control-x
\nnn Octal notation, where n is in the range of 0.7
\r0x0dCarriage return
\v0x0bVertical tab
\x Character x
\xnn Hexadecimal notation, where n is in the range 0.9, a.f, or A.F

String Special Operators

+Concatenation - It adds values on either side of the operatora + b will give HelloPython
*Repetition - It creates new “strings”, concatenating multiple copies of the same stringa*2 will give -HelloHello
[]Slice - This operator gives the character from the given indexa[1] will give e
[ : ]Range Slice - It gives the characters from the given rangea[1:4] will give ell
inMembership - This particular operator returns “true” if a character exists in the given stringH in a will give 1
not inMembership - It returns “true” if a character does not exist in the given stringM not in a will give 1
r/RRaw String - This particular operator suppresses the actual meaning of “Escape characters”. The syntax for raw strings is the same as for any normal strings with the exception of the raw string operator, the 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.print r'\n' prints \n and print R'\n'prints \n
%Format - Performs String formattingExplain in the following section

String formatting Operator in Python

String formatting operators in python are powerful tools that allow developers to save valuable time. Rather than manually replacing strings, a string formatting operator can automate the entire process with just a few lines of code. String formatting operations can also improve the readability and maintainability of code, which is especially helpful if there are many variables or strings to be replaced


print "My name is %s and weight is %d kg!" % ('Urmi', 45)


My name is Urmi and weight is 45 kg!

Here is the list of a complete set of symbols that can be used along with % −
Format SymbolConversion
%sstring conversion via str() prior to formatting
%isigned decimal integer
%dsigned decimal integer
%uunsigned decimal integer
%ooctal integer
%xhexadecimal integer (lowercase letters)
%Xhexadecimal integer (UPPERcase letters)
%eexponential notation (with lowercase 'e')
%Eexponential notation (with UPPERcase 'E')
%ffloating point real number
%gthe shorter of %f and %e
%Gthe shorter of %f and %E

Other supported symbols and their functionality are listed in the following table −

Symbol Functionality
* the 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' was used.
0pad from left with zeros (instead of spaces)
%'%%' leaves you with a single literal '%'
(var)mapping variable (dictionary arguments)
m.n.m is the minimum total width and n is the number of digits to display after the decimal point (if appl.)

Unicode String

Normal strings in Python programming language are stored internally as the 8-bit ASCII, while Unicode strings are stored as the 16-bit Unicode. This particular feature allows for a more varied set of characters which includes special characters from most languages in the world.


print 'Hello, world!'


Hello, world!

Built-in String Methods

Python includes the following built-in methods to manipulate strings
Sr.No. Methods Description
1.capitalize() Capitalizes the first letter of the string, fillchar)Returns a space-padded string with the original string centered to a total of width columns.
3.count(str, beg= 0,end=len(string))Counts how many times str occurs in a string or in a substring of string if starting index beg and ending index end are given.
4.decode(encoding='UTF-8',errors='strict')Decodes the string using the codec registered for encoding. encoding defaults to the default string encoding.
5.encode(encoding='UTF-8',errors='strict')Returns encoded string version of string; on error, default is to raise a ValueError unless errors are given with 'ignore' or 'replace'
6.endswith(suffix, beg=0, end=len(string))Determines if a string or a substring of string (if starting index begs and ending index end are given) ends with a suffix; returns true if so and false otherwise.
7.expandtabs(tabsize=8)Expands tabs in the string to multiple spaces; defaults to 8 spaces per tab if tab size not provided
10.find(str, beg=0 end=len(string))Determine if str occurs in string or in a substring of string if starting index beg and ending index end are given returns index if found and -1 otherwise.
11.index(str, beg=0, end=len(string))Same as find(), but raises an exception if str is not found.
12.isalnum()Returns true if the string has at least 1 character and all characters are alphanumeric and false otherwise.
13.isalpha()Returns true if the string has at least 1 character and all characters are alphabetic and false otherwise.
14.isdigit()Returns true if the string contains only digits and false otherwise.
15.islower()Returns true if the string has at least 1 cased character and all cased characters are in lowercase and false otherwise
16.istitle()Returns true if the string is properly "titlecased" and false otherwise
17.isupper()Returns true if the string has at least one cased character and all cased characters are in uppercase and false otherwise.
18.join(seq)Merges (concatenates) the string representations of elements in sequence seq into a string, with separator string.
19.len(string)Returns the length of the string
20.ljust(width[, fillchar])Returns a space-padded string with the original string left-justified to a total of width columns.
21.lower()Converts all uppercase letters in a string to lowercase.
22.lstrip()Removes all leading whitespace in string.
23.maketrans()Returns a translation table to be used in the translate function.
24.max(str)Returns the max alphabetical character from the string str.
25.min(str)Returns the min alphabetical character from the string str.
26.replace(old, new [, max])Replaces all occurrences of old in the string with new or at most max occurrences if max is given.
27.rfind(str, beg=0,end=len(string))Same as find(), but search backward in string.
28.rindex( str, beg=0, end=len(string))Same as index(), but search backward in string.
29.rjust(width,[, fillchar])Returns a space-padded string with the original string right-justified to a total of width columns.
30.rstrip()Removes all trailing whitespace of string.
31.split(str="", num=string.count(str))Splits string according to delimiter str (space if not provided) and returns list of substrings; split into at most num substrings if given.
32.splitlines( num=string.count('\n'))Splits string at all (or num) NEWLINEs and returns a list of each line with NEWLINEs removed.
33.startswith(str, beg=0,end=len(string))Determines if a string or a substring of string (if starting index beg and ending index end are given) starts with substring str; returns true if so and false otherwise.
34.strip([chars])Performs both lstrip() and rstrip() on the string.
35.swapcase()Inverts case for all letters in the string.
36.title()Returns "titlecased" version of the string, that is, all words begin with uppercase and the rest are lowercase.
37.translate(table, deletechars="")Translates string according to translation table str(256 chars), removing those in the del string.
38.upper()Converts lowercase letters in a string to uppercase.
39.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).
40.isdecimal()Returns true if a Unicode string contains only decimal characters and false otherwise.

In Python, a string is a sequence of characters. Characters in a string are individually called elements of the string. A character can be anything like symbols, letters, and even white space characters. Strings are one of the data types available in Python. You can create strings by using single or double quotes. Creating strings is quite simple in Python programming language. Even an empty string is considered a valid string in the python language

Accept cookies & close this