0% found this document useful (0 votes)
5 views

Chapter8 Strings

The document provides an overview of strings in Python, explaining their definition, creation, and characteristics such as immutability. It covers string operations including concatenation, repetition, membership, and slicing, along with examples of accessing characters and traversing strings. Additionally, it includes user-defined functions for string manipulation tasks like reversing a string, checking for palindromes, counting character occurrences, and replacing vowels.

Uploaded by

shreedarshan2603
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

Chapter8 Strings

The document provides an overview of strings in Python, explaining their definition, creation, and characteristics such as immutability. It covers string operations including concatenation, repetition, membership, and slicing, along with examples of accessing characters and traversing strings. Additionally, it includes user-defined functions for string manipulation tasks like reversing a string, checking for palindromes, counting character occurrences, and replacing vowels.

Uploaded by

shreedarshan2603
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

8.

Strings
A sequence is an orderly collection of items and each item is
indexed by an integer. Following sequence data types in
Python were also briefly introduced in Chapter 5.
• Strings
• Lists
• Tuples
Strings:
String is a sequence which is made up of one or more UNICODE
characters. Here the character can be a letter, digit, whitespace or any
other symbol. A string can be created by enclosing one or more
characters in single, double or triple quote.
Example 8.1
>>> str1 = 'Hello World!'
>>> str2 = "Hello World!"
>>> str3 = """Hello World!"""
>>> str4 = '''Hello World!''’
str1, str2, str3, str4 are all string variables having the same value 'Hello
World!'. Values stored in str3 and str4 can be extended to multiple
lines using triple codes as can be seen in the following example:
>>> str3 = """Hello World!
welcome to the world of Python"""
>>> str4 = '''Hello World!’’’

1
str1, str2, str3, str4 are all string variables having the same
value 'Hello World!'. Values stored in str3 and str4 can be
extended to multiple lines using triple codes as can be seen
in the following example:
>>> str3 = """Hello World!
welcome to the world of Python"""
>>> str4 = '''Hello World!
welcome to the world of Python'''
8.2.1 Accessing Characters in a String
Each individual character in a string can be accessed using a
technique called indexing. The index specifies the character to
be accessed in the string and is written in square brackets ([ ]).
The index of the first character (from left) in the string is 0 and
the last character is n-1 where n is the length of the string. If
we give index value out of this range then we get an IndexError.
The index must be an integer (positive, zero or negative).
#initializes a string str1
>>> str1 = 'Hello World!'
#gives the first character of str1
>>> str1[0]
'H'
#gives seventh character of str1
>>> str1[6]
'W'

2
#gives last character of str1
>>> str1[11]
'!'
#gives error as index is out of range
>>> str1[15]
IndexError: string index out of range
The index can also be an expression including variables and
operators but the expression must evaluate to an integer.
#an expression resulting in an integer index #so gives 6th
character of str1
>>> str1[2+4]
'W'
#gives error as index must be an integer
>>> str1[1.5]
TypeError: string indices must be integers
Python allows an index value to be negative also. Negative
indices are used when we want to access the characters of the
string from right to left. Starting from right hand side, the first
character has the index as -1 and the last character has the
index –n where n is the length of the string.
Table 8.1 shows the indexing of characters in the string ‘Hello
World!’ in both the cases, i.e., positive and negative indices.

3
>>> str1[-1] #gives first character from right
'!'
>>> str1[-12]#gives last character from right
'H'

An inbuilt function len() in Python returns the length of the


string that is passed as parameter. For example, the length of
string str1 = 'Hello World!' is 12.
#gives the length of the string str1
>>> len(str1)
12
#length of the string is assigned to n
>>> n = len(str1)
>>> print(n)
12
#gives the last character of the string
>>> str1[n-1]
'!'
#gives the first character of the string
>>> str1[-n]

4
'H'
8.2.2 String is Immutable
A string is an immutable data type. It means that the contents
of the string cannot be changed after it has been created. An
attempt to do this would lead to an error.
>>> str1 = "Hello World!"
#if we try to replace character 'e' with 'a'
>>> str1[1] = 'a'
TypeError: 'str' object does not support item assignment
8.3 String operations
Python allows certain operations on string data type, such as
concatenation, repetition, membership and slicing.
8.3.1 Concatenation
To concatenate means to join. Python allows us to join two
strings using concatenation operator plus which is denoted by
symbol +.
>>> str1 = 'Hello' #First string
>>> str2 = 'World!'
#Second string
>>> str1 + str2 #Concatenated strings
'HelloWorld!'
#str1 and str2 remain same
>>> str1

5
#after this operation.
'Hello'
>>> str2
'World!'
8.3.2 Repetition
Python allows us to repeat the given string using repetition
operator which is denoted by symbol *.
#assign string 'Hello' to str1
>>> str1 = 'Hello'
#repeat the value of str1 2 times
>>> str1 * 2
'HelloHello'
#repeat the value of str1 5 times
>>> str1 * 5
'HelloHelloHelloHelloHello'
Note: str1 still remains the same after the use of repetition
operator.
8.3.3 Membership
Python has two membership operators 'in' and 'not in'. The
'in' operator takes two strings and returns True if the first string
appears as a substring in the second string, otherwise it
returns False.

6
>>> str1 = 'Hello World!'
>>> 'W' in str1
True
>>> 'Wor' in str1
True
>>> 'My' in str1
False
The 'not in' operator also takes two strings and returns True if
the first string does not appear as a substring in the second
string, otherwise returns False.
>>> str1 = 'Hello World!'
>>> 'My' not in str1
True
>>> 'Hello' not in str1
False
8.3.4 Slicing
In Python, to access some part of a string or substring, we use
a method called slicing. This can be done by specifying an index
range. Given a string str1, the slice operation str1[n:m] returns
the part of the string str1 starting from index n (inclusive) and
ending at m (exclusive).
The numbers of characters in the substring will always be equal
to difference of two indices m and n, i.e., (m-n).
>>> str1 = 'Hello World!'

7
#gives substring starting from index 1 to 4
>>> str1[1:5]
'ello'
#gives substring starting from 7 to 9
Hello World!
>>> str1[7:10]
'orl'
#index that is too big is truncated down to
#the end of the string
>>> str1[3:20]
'lo World!'
#first index > second index results in an #empty '' string
>>> str1[7:2]
If the first index is not mentioned, the slice starts from index 0.
#gives substring from index 0 to 4
>>> str1[:5]
'Hello'
If the second index is not mentioned, the slicing is done till the
length of the string.
#gives substring from index 6 to end
>>> str1[6:]
'World!

8
The slice operation can also take a third index that specifies the
‘step size’. For example, str1[n:m:k], means every kth character
has to be extracted from the string str1 starting from n and
ending at m-1. By default, the step size is one.
>>> str1[0:10:2]
Hello World!
'HloWr'
>>> str1[0:10:3]
'HlWl'
Negative indexes can also be used for slicing.
#characters at index -6,-5,-4,-3 and -2 are
#sliced
>>> str1[-6:-1]
Hello World!
'World'
If we ignore both the indexes and give step size as -1
#str1 string is obtained in the reverse order
>>> str1[::-1]
'!dlroW olleH'

8.4 Traversing a String


We can access each character of a string or traverse a
string using for loop and while loop.

9
(A) String Traversal Using for Loop:
>>> str1 = 'Hello World!'
>>> for ch in str1:
print(ch,end = '')
Hello World! #output of for loop
In the above code, the loop starts from the first character of
the string str1 and automatically ends when the last character
is accessed.
(B) String Traversal Using while Loop:
>>> str1 = 'Hello World!'
>>> index = 0
#len(): a function to get length of string
>>> while index < len(str1):
print(str1[index],end = '')
index += 1
Hello World! #output of while loop
Here while loop runs till the condition index < len(str) is True,
where index varies from 0 to len(str1) -1.
8.5 String Methods and Built-In Functions
Python has several built-in functions that allow us to work with
strings. Table 8.2 describes some of the commonly used built-
in functions for string manipulation.

10
11
12
13
14
8.6 Handling Strings
Program 8-4 Write a program which reverses a string passed
as parameter and stores the reversed string in a new string.
Use a user defined function for reversing the string.
#Program 8-4
#Function to reverse a string
def reverseString(st):
newstr = '' #create a new string
length = len(st)
for i in range(-1,-length-1,-1):
newstr += st[i]
return newstr
#end of function
st = input("Enter a String: ")
st1 = reverseString(st)
print("The original String is:",st)
print("The reversed String is:",st1)
Output:
Enter a String: Hello World
The original String is: Hello World
The reversed String is: dlroW olleH

15
Program 8-5 Write a program using a user defined function to
check if a string is a palindrome or not. (A string is called
palindrome if it reads same backwards as forward. For
example, Kanak is a palindrome.)
#Program 8-5
#Function to check if a string is palindrome or not
def checkPalin(st):
i=0
j = len(st) - 1
while(i <= j):
if(st[i] != st[j]):
return False
i += 1
j -= 1
return True
#end of function
st = input("Enter a String: ")
result = checkPalin(st)
if result == True:
print("The given string",st,"is a palindrome")
else:
print("The given string",st,"is not a palindrome")
Output 1:
Enter a String: kanak

16
The given string kanak is a palindrome
Output 2:
Enter a String: computer
The given string computer is not a palindrome
Program 8-1 Write a program with a user defined function to
count the number of times a character (passed as argument)
occurs in the given string.
#Program 8-1
#Function to count the number of times a character occurs in
a #string
def charCount(ch,st):
count = 0
for character in st:
if character == ch:
count += 1
return count
#end of function
st = input("Enter a string: ")
ch = input("Enter the character to be searched: ")
count = charCount(ch,st)
print("Number of times character",ch,"occurs in the string
is:",count)
Output:

17
Enter a string: Today is a Holiday
Enter the character to be searched: a
Number of times character a occurs in the string is: 3
Program 8-2 Write a program with a user defined function
with string as a parameter which replaces all vowels in the
string with '*'.
#Program 8-2
#Function to replace all vowels in the string with '*'
def replaceVowel(st):
#create an empty string
newstr = ''
for character in st:
#check if next character is a vowel
if character in 'aeiouAEIOU':
#Replace vowel with *
newstr += '*'
else:
newstr += character
return newstr
#end of function
st = input("Enter a String: ")
st1 = replaceVowel(st)

18
print("The original String is:",st)
print("The modified String is:",st1)
Output:
Enter a String: Hello World
The original String is: Hello World
The modified String is: H*ll* W*rld

19

You might also like