0% found this document useful (0 votes)
29 views18 pages

Understanding Python Strings Basics

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)
29 views18 pages

Understanding Python Strings Basics

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

CHAPTER -08

STRINGS
CHAPTER WEIGHTAGE
➢ 1 MCQ – 1Mark
➢ 3 Mark Quest – 1
Total Marks = 4marks
STRINGS
Definition: 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:
>>> 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
Example:
>>> str3 = """Hello World!
welcome to the world of Python"""
>>> str4 = '''Hello World!
welcome to the world of Python'''
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
• It is written in square brackets [].
• The index of the first character (from left) in the string is 0
• The index 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).
Example: Consider a string str1
#initializes a string str1 >>> str1 = 'Hello World!'
#gives the first character of str1
>>> str1[0]
'H'
#gives seventh character of str1
>>> str1[6]
'W'
#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
• Negative Indexing (Negative Index Value):
✓ Python allows an index value to be negative also.
✓ Negative indices are used to access the characters of the string from right to left.
✓ Starting from right hand side, the first character has the index as -1
✓ the last character has the index –n where n is the length of the string.
Example:
>>> str1[-1] #gives first character from right
'!'
>>> str1[-12] #gives last character from right

• len ():
✓ inbuilt function in Python
✓ returns the length of the string that is passed as parameter.
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]
'H'
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.
Example:
>>> str1 = "Hello World!"
#If we try to replace character 'e' with 'a'
>>> str1[1] = 'a'
TypeError: 'str' object does not support item assignment
STRING OPERATIONS
Python allows following operations on string data type:
1. Concatenation
2. Repetition
3. membership
4. slicing.
Concatenation:
✓ To concatenate means to join.
✓ Concatenation operator plus
✓ denoted by symbol +.
Example:
>>> str1 = 'Hello’ #First string
>>> str2 = 'World!’ #Second string
>>> str1 + str2 #Concatenated strings
'HelloWorld!'
#str1 and str2 remain same
>>> str1 #after this operation.
'Hello'
>>> str2
'World!'
Repetition:
✓ Repetition means to repeat the given string
✓ done using repetition operator
✓ denoted by symbol *.
Example:
#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.
Membership
Python has two membership operators:
1. in
2. not in
in Operator:
✓ The 'in' operator takes two strings and
✓ returns True if the first string appears as a substring in the second string,
✓ else it returns False.
>>> str1 = 'Hello World!'
>>> 'W' in str1
True
>>> ‘Wor’ in str1
True
>>> 'My' in str1
False
not in operator:
✓ 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
✓ Else returns False.
>>> str1 = 'Hello World!'
>>> 'My' not in str1
True
>>> 'Hello' not in str1
False
Slicing:
✓ To access some part of a string or substring, we use a method called “slicing”.
✓ 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).
✓ str1[n: m] returns all the characters starting from str1[n] till str1[m-1].
✓ 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!’
#gives substring starting from index 1 to 4
>>> str1[1:5]
‘ello’
#gives substring starting from 7 to 9
>>> 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.
#gives substring from index 0 to 4
>>> str1[:5]
'Hello'
• If the second index is not mentioned, the slicing is done till the end of the string (length
of the string).
#gives substring from index 6 to end
>>> str1[6:]
'World!'
• The slice operation can also take a third index that specifies the ‘step size’.
• Example:
str1[n: m: k] - every kth character is extracted from the string str1 starting from n and
ending at m-1.
• By default, the step size is one.
>>> str1[Link]
‘HloWr '
>>> str1[Link]
‘HlWl '
• Negative indexes can also be used for slicing.
#characters at index -6, -5, -4, -3 and -2 are sliced
>>> str1[-6: -1]
'World'
✓ If we ignore both the indexes and give step size as -1 string is obtained in the reverse
order
>>> str1[: : -1]
‘! dlroW olleH '
TRAVERSING A STRING
We can access each character of a string or traverse a string using
1. for loop and
2. while loop.
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.
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
In the above code:
✓ while loop runs till the condition index < len(str) is True
✓ where index varies from 0 to len(str1) -1.
STRING METHODS AND BUILT-IN FUNCTIONS
Some of the commonly used built-in functions for string manipulation.
len (): Returns the length of the given string
>>> str1 = 'Hello World!'
>>> len(str1)
12
title (): Returns the string with first letter of every word in uppercase and rest in lowercase
>>> str1 = 'hello WORLD!'
>>> [Link]()
'Hello World!'
lower (): Returns the string with all uppercase letters converted to lowercase
>>> str1 = 'hello WORLD!'
>>> [Link]()
'hello world!'
upper (): Returns the string with all lowercase letters converted to uppercase
>>> str1 = 'hello WORLD!'
>>> [Link]()
'HELLO WORLD!'
count (str, start, end):
• Returns number of times substring str occurs in the given string.
• If we do not give start and end index then searching starts from index 0 and ends at
length of the string
>>> str1 = 'Hello World! Hello
Hello'
>>> [Link]('Hello',12,25)
2>
>> [Link]('Hello')
3
find (str, start, end):
• Returns the first occurrence of index of substring str occurring in the given string.
• If we ignore start and end index then searching starts from index 0 and ends at length of
the string.
• If the substring is not present in the given string, then the function returns -1
>>> str1 = ‘Hello World! Hello Hello’
>>> [Link]('Hello',10,20)
13
>>> [Link]('Hello',15,25)
19
>>> [Link]('Hello')
0>
>> [Link]('Hee')
-1
index (str, start, end): Raises an exception if the substring is not present in the given string
>>> str1 = 'Hello World! Hello
Hello'
>>> [Link]('Hello')
0>
>> [Link]('Hee')
ValueError: substring not found
endswith ():
• Returns True if the given string ends with the supplied substring
• Else returns False
>>> str1 = 'Hello World!'
>>> [Link]('World!')
True
>>> [Link]('!')
True
>>> [Link]('lde')
False
startswith ():
• Returns True if the given string starts with the supplied substring
• Else returns False
>>> str1 = 'Hello World!'
>>> [Link]('He')
True
>>> [Link]('Hee')
False
isalnum ():
Returns True
• if characters of the given string are either alphabets or numeric.
Returns False
• If whitespace or special symbols are part of the given string
• or the string is empty
>>> str1 = 'HelloWorld'
>>> [Link]()
True
>>> str1 = 'HelloWorld2'
>>> [Link]()
True
>>> str1 = 'HelloWorld!!'
>>> [Link]()
False
islower (): Returns True if the string is
• non-empty and has all lowercase alphabets
• or has at least one character as lowercase alphabet and rest are non-alphabet characters
>>> str1 = 'hello world!'
>>> [Link]()
True
>>> str1 = 'hello 1234'
>>> [Link]()
True
>>> str1 = 'hello ??'
>>> [Link]()
True
>>> str1 = '1234'
>>> [Link]()
False
>>> str1 = 'Hello World!'
>>> [Link]()
False
isupper (): Returns True if the string is
• non-empty and has all uppercase alphabets,
• or has at least one character as uppercase character and rest are non-alphabet characters
>>> str1 = 'HELLO WORLD!'
>>> [Link]()
True
>>> str1 = 'HELLO 1234'
>>> [Link]()
True
>>> str1 = 'HELLO ??'
>>> [Link]()
True
>>> str1 = '1234'
>>> [Link]()
False
>>> str1 = 'Hello World!'
>>> [Link]()
False
isspace (): Returns True if the string is
• non-empty and
• all characters are white spaces (blank, tab, newline, carriage return)
>>> str1 = ' \n \t \r'
>>> [Link]()
True
>>> str1 = 'Hello \n'
>>> [Link]()
False
istitle (): Returns True if the string is non-empty and title case
>>> str1 = 'Hello World!'
>>> [Link]()
True
>>> str1 = 'hello World!'
>>> [Link]()
False
lstrip (): Returns the string after removing the spaces on the left of the string
>>> str1 = ' Hello World!
'>
>> [Link]()
'Hello World! '
rstrip (): Returns the string after removing the spaces on the right of the string
>>> str1 = ' Hello World!'
>>> [Link]()
' Hello World!'
strip (): Returns the string after removing the spaces both on the left and the right of the string
>>> str1 = ' Hello World!'
>>> [Link]()
'Hello World!'
replace (oldstr, newstr): Replaces all occurrences of old string with the new string
>>> str1 = 'Hello World!'
>>> [Link]('o','*')
'Hell* W*rld!'
>>> str1 = 'Hello World!'
>>> [Link]('World', 'Country')
'Hello Country!'
>>> str1 = 'Hello World! Hello'
>>> [Link]('Hello', 'Bye')
'Bye World! Bye'
join (): Returns a string where the characters in the string are joined by a separator
>>> str1 = ('HelloWorld!')
>>> str2 = '-' #separator
>>> [Link](str1)
'H-e-l-l-o-W-o-r-l-d-!'
partition ()):
• Partitions the given string at the first occurrence of the substring (separator)
• and returns the string partitioned into three parts.
1. Substring before the separator
2. Separator
3. Substring after the separator
• If the separator is not found in the string, it returns the whole string itself and two empty
strings
>>> str1 = 'India is a Great Country'
>>> [Link]('is')
('India ', 'is', ' a Great Country')
>>> [Link]('are')
('India is a Great Country',' ',' ')
split ():
• Returns a list of words delimited by the specified substring.
• If no delimiter is given then words are separated by space.
>>> str1 = 'India is a Great Country'
>>> [Link]()
['India', 'is', 'a', 'Great', 'Country']
>>> str1 = 'India is a Great Country'
>>> [Link]('a')
['Indi', ' is ', ' Gre', 't Country']
HANDLING STRINGS
User defined functions in Python are used to perform different operations on strings.
Write a program with a user defined function to count the number of times a character
(passed as argument) occurs in the given string.
def charCount (ch, st):
count = 0
for character in st:
if character == ch:
count += 1
return count
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:
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
Write a program with a user defined function with string as a parameter which replaces
all vowels in the string with '*'.
def replaceVowel(st):
newstr = ''
for character in st:
if character in 'aeiouAEIOU':
newstr += '*'
else:
newstr += character
return newstr
st = input ("Enter a String: ")
st1 = replaceVowel(st)
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
Write a program to input a string from the user and print it in the reverse order without
creating a new string.
st = input ("Enter a string: ")
for i in range (-1, -len(st)-1, -1):
print(st[i], end='')
Output:
Enter a string: Hello World
dlroW olleH
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.
def reverseString (st):
newstr = ‘ ‘ #create a new string
length = len(st)
for i in range (-1, -length-1, -1):
newstr += st[i]
return newstr
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
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.)
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
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
The given string kanak is a palindrome
Output 2:
Enter a String: computer
The given string computer is not a palindrome
Note:
✓ A string is a sequence of characters enclosed in single, double or triple quotes.
✓ Indexing is used for accessing individual characters within a string.
✓ The first character has the index 0 and the last character has the index n-1 where n is the
length of the string.
✓ The negative indexing ranges from -n to -1.
✓ Strings in Python are immutable, i.e., a string cannot be changed after it is created.
✓ Membership operator in takes two strings and returns True if the first string appears as
a substring in the second else returns False.
✓ Membership operator ‘not in’ does the reverse.
✓ Retrieving a portion of a string is called slicing. This can be done by specifying an index
range.
✓ The slice operation str1[n:m] returns the part of the string str1 starting from index n
(inclusive) and ending at m (exclusive).
✓ Each character of a string can be accessed either using a for loop or while loop.

You might also like