0% found this document useful (0 votes)
51 views41 pages

Python String Manipulation Guide

Chapter 10 of 'Solutions of Computer Science with Python' by Sumita Arora covers string manipulation concepts for Class 11, including multiple-choice questions, fill-in-the-blanks, true/false questions, and short answer questions. It addresses string indexing, operators, functions, and methods used in Python for string handling. The chapter provides practical examples and explanations to reinforce understanding of string operations.

Uploaded by

yuval.00004
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)
51 views41 pages

Python String Manipulation Guide

Chapter 10 of 'Solutions of Computer Science with Python' by Sumita Arora covers string manipulation concepts for Class 11, including multiple-choice questions, fill-in-the-blanks, true/false questions, and short answer questions. It addresses string indexing, operators, functions, and methods used in Python for string handling. The chapter provides practical examples and explanations to reinforce understanding of string operations.

Uploaded by

yuval.00004
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

10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class

r Class 11 CBSE & NCERT | Kn…

OPEN IN APP

Home / Class 11 - Co… / String Manipula…

Chapter 10

String Manipulation
Class 11 - Computer Science with Python Sumita Arora

Multiple Choice Questions

Question 1

Negative index -1 belongs to .......... of string.

1. first character
2. last character ✓
3. second last character
4. second character

Question 2

Which of the following is/are not legal string operators?

1. in
2. +
3. *
4. / ✓

Question 3

Which of the following functions will return the total number of characters in a string?

1. count()
2. index()
Prev Exercises Chapters Next
3. len() ✓
[Link] 1/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

4. all of these

Question 4

Which of the following functions will return the last three characters of a string s?

1. s[3:]
2. s[:3]
3. s[-3:] ✓
4. s[:-3]

Question 5

Which of the following functions will return the first three characters of a string s?

1. s[3:]
2. s[:3] ✓
3. s[-3:]
4. s[:-3]

Question 6

Which of the following functions will return the string in all caps?

1. upper() ✓
2. toupper()
3. isupper()
4. to-upper()

Question 7

Which of the following functions will return the string with every 'P' replaced with a 'z'?

1. find()
2. index()
3. replace() ✓
4. split()

Question 8

Which of the following functions will return a list containing all words of the string?

1. find()

[Link] 2/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

2. index()
3. partition()
4. split() ✓

Question 9

Which of the following functions will always return a tuple of 3 elements?

1. find()
2. index()
3. partition() ✓
4. split()

Question 10

What is the output of the following code?

str1 = "Mission 999"


str2 = "999"
print([Link](),[Link]())

1. False True ✓
2. False False
3. True False
4. True True

Question 11

Choose the correct function to get the ASCII code of a character.

1. char('char')
2. ord('char') ✓
3. ascii('char')
4. All of these

Question 12

Which method should I use to convert String "Python programming is fun" to "Python
Programming Is Fun" ?

1. capitalize()
2. title() ✓

[Link] 3/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

3. istitle()
4. upper()

Question 13

Guess the correct output of the following String operations.

str1 = 'Wah'
print(str1*2)

1. WahWah ✓
2. TypeError: unsupported operand type(s) for * : 'str' and 'int'
3. WWaahh
4. Wah2

Question 14

What is the output of the following string operation?

str = "My roll no. is 12"


print([Link]())

1. True
2. False ✓
3. Error
4. No output

Question 15

Select the correct output of the following String operations.

str1 = 'Waha'
print(str1[:3] + 'Bhyi' + str1[-3:])

1. Wah Bhyi Wah


2. WahBhyiaha ✓
3. WahBhyiWah
4. WahBhyiWaha

Question 16

[Link] 4/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

Select the correct output of the following String operations.

str = "my name is Anu John"


print([Link]())

1. 'My name is anu john' ✓


2. TypeError: unsupported operand type(s) for * : 'str' and 'int'
3. 'My name is Anu John'
4. 'My Name Is Anu John'

Question 17

Choose the correct function to get the character from ASCII number.

1. ascii(number)
2. char(number)
3. chr(number) ✓
4. all of these

Question 18

s = ' '(single space). Then [Link]() will return.

1. True
2. False ✓
3. Error
4. nothing

Question 19

Which of the following functions removes all leading and trailing spaces from a string?

1. lstrip()
2. rstrip()
3. strip() ✓
4. all of these

Question 20

Which of the following functions will raise an error if the given substring is not found in
the string?

[Link] 5/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

1. find()
2. index() ✓
3. replace()
4. all of these

Fill in the Blanks

Question 1

The string indexes begin 0 onwards.

Question 2

For strings, + operator performs concatenation.

Question 3

For strings, * operator performs replication.

Question 4

The in and not in are membership operators for strings (in, not in).

Question 5

The ord() returns the ASCII value of a given character.

Question 6

If a string contains letters and digits, function isalnum() will return true.

Question 7

'ab'.isalpha() will return value as True.

Question 8

To get each word's first letter capitalized, title() function is used.

Question 9

Function index() raises an exception if the substring is not found.

Question 10

Function split() divides a line of text into individual words.

[Link] 6/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

True/False Questions

Question 1

Strings have both positive and negative indexes.


True

Question 2

Python does not support a character type; a single character is treated as strings of length
one.
True

Question 3

Strings are immutable in Python, which means a string cannot be modified.


True

Question 4

Like '+', all other arithmetic operators are also supported by strings.
False

Question 5

Functions capitalize() and title() return the same result.


False

Question 6

Functions partition() and split() work identically.


False

Question 7

The find() and index() are similar functions.


True

Question 8

The find() does not raise an exception if the substring is not found.
True

Question 9

[Link] 7/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

The partition() function's result is always a 3-element tuple.


True

Question 10

The split() returns always a 3-element list.


False

Type A : Short Answer Questions/Conceptual Questions

Question 1

Write a Python script that traverses through an input string and prints its characters in
different lines — two characters per line.

Answer

str = input("Enter the string: ")


length = len(str)
for a in range(0, length, 2):
print(str[a:a+2])

Output

Enter the string: KnowledgeBoat


Kn
ow
le
dg
eB
oa
t

Question 2

Out of the following operators, which ones can be used with strings in Python?

=, -, *, /, //, %, >, <>, in, not in, <=

Answer

The following Python operators can be used with strings:

=, *, >, in, not in, <=

Question 3
[Link] 8/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

What is the result of following statement, if the input is 'Fun'?

print(input("...") + "trial" + "Ooty" * 3)

Answer

The result of the statement is:

FuntrialOotyOotyOoty

Question 4

Which of the following is not a Python legal string operation?

(a) 'abc' + 'abc'


(b) 'abc' * 3
(c) 'abc' + .3
(d) '[Link]()

Answer

'abc' + .3 is not a legal string operation in Python. The operands of + operator should be
both string or both numeric. Here one operand is string and other is numeric. This is not
allowed in Python.

Question 5

Can you say strings are character lists? Why? Why not?

Answer

Strings are sequence of characters where each character has a unique index. This implies
that strings are iterable like lists but unlike lists they are immutable so they cannot be
modified at runtime. Therefore, strings can't be considered as character lists. For
example,

str = 'cat'
# The below statement
# is INVALID as strings
# are immutable
str[0] = 'b'

# Considering character lists


strList = ['c', 'a', 't']
# The below statement
# is VALID as lists

[Link] 9/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

# are mutable
strList[0] = 'b'

Question 6

Given a string S = "CARPE DIEM". If n is length/2 (length is the length of the given string),
then what would following return?

(a) S[: n]
(b) S[n :]
(c) S[n : n]
(d) S[1 : n]
(e) S[n : length - 1]

Answer

(a) CARPE
(b) DIEM
(c) (Empty String)
(d) ARPE
(e) DIE

Question 7

From the string S = "CARPE DIEM", which ranges return "DIE" and "CAR"?

Answer

1. S[6:9] returns DIE


2. S[:3] returns CAR

Question 8

What happens when from a string slice you skip the start and/or end values of the slice?

Answer

If start value is skipped, it is assumed as 0 i.e. the slice begins from the start of the string.

If end value is skipped, it is assumed as the last index of the string i.e. the slice extends till
the end of the string.

Question 9

What would the following expressions return?

[Link] 10/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

1. "Hello World".upper( ).lower( )


2. "Hello World".lower( ).upper( )
3. "Hello World".find("Wor", 1, 6)
4. "Hello World".find("Wor")
5. "Hello World".find("wor")
6. "Hello World".isalpha( )
7. "Hello World".isalnum( )
8. "1234".isdigit( )
9. "123FGH".isdigit( )

Answer

1. hello world
2. HELLO WORLD
3. -1
4. 6
5. -1
6. False
7. False
8. True
9. False

Explanation

1. upper() first converts all letters of "Hello World" to uppercase. Then "HELLO
WORLD".lower() converts all letters to lowercase.
2. lower() first converts all letters of "Hello World" to lowercase. Then "hello
world".upper() converts all letters to uppercase.
3. "Hello World".find("Wor", 1, 6) searches for the presence of substring "Wor" between
1 and 6 indexes of string "Hello World". Substring from 1 to 6 index is "ello W". As
"Wor" is not present in this hence the result is False.
4. "Hello World".find("Wor") searches for the presence of substring "Wor" in the entire
"Hello World" string. Substring "Wor" starts at index 6 of "Hello World" hence the
result is 6.
5. "Hello World".find("wor") searches for the presence of substring "wor" in the entire
"Hello World" string. find() performs case sensitive search so "wor" and "Wor" are
different hence the result is -1.

[Link] 11/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

6. "Hello World".isalpha( ) checks if all characters in the string as alphabets. As a space is


also present in the string hence it returns False.
7. "Hello World".isalnum( ) checks if all characters in the string are either alphabets or
digits. As a space is also present in the string which is neither an alphabet nor a string
hence it returns False.
8. "1234".isdigit( ) checks if all characters in the string are digits or not. As all characters
are digits hence the result is True.
9. As "FGH" in the string "123FGH" are not digits hence the result is False.

Question 10

Which functions would you choose to use to remove leading and trailing white spaces
from a given string?

Answer

lstrip() removes leading white-spaces, rstrip() removes trailing white-spaces and strip()
removes leading and trailing white-spaces from a given string.

Question 11

Try to find out if for any case, the string functions isalnum( ) and isalpha( ) return the
same result

Answer

isalnum( ) and isalpha( ) return the same result in the following cases:

1. If string contains only alphabets then both isalnum( ) and isalpha( ) return True. For
example, "Hello".isalpha() and "Hello".isalnum() return True.
2. If string contains only special characters and/or white-spaces then both isalnum( )
and isalpha( ) return False. For example, "*#".isalpha() and "*#".isalnum() return
False.

Question 12

Suggest appropriate functions for the following tasks:

1. To check whether the string contains digits


2. To find for the occurrence a string within another string
3. To convert the first letter of a string to upper case
4. to capitalize all the letters of the string
5. to check whether all letters of the string are in capital letters
[Link] 12/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

6. to remove from right of a string all string-combinations from a given set of letters
7. to remove all white spaces from the beginning of a string

Answer

1. isdigit()
2. find()
3. capitalize()
4. upper()
5. isupper()
6. rstrip(characters)
7. lstrip()

Question 13

In a string slice, the start and end values can be beyond limits. Why?

Answer

String slicing always returns a subsequence and empty subsequence is a valid sequence.
Thus, when a string is sliced outside the bounds, it still can return empty subsequence
and hence Python gives no errors and returns empty subsequence.

Question 14

Can you specify an out of bound index when accessing a single character from a string?
Why?

Answer

We cannot specify an out of bound index when accessing a single character from a string,
it will cause an error. When we use an index, we are accessing a constituent character of
the string. If the index is out of bounds there is no character to return from the given
index hence Python throws string index out of range error.

Question 15

Can you add two strings? What effect does ' + ' have on strings?

Answer

Yes two strings can be added using the '+' operator. '+' operator concatenates two strings.

Type B: Application Based Questions

[Link] 13/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

Question 1a

What is the result of the following expression?

print("""
1
2
3
""")

Answer

1
2
3

Question 1b

What is the result of the following expression?

text = "Test.\nNext line."


print (text)

Answer

Test.
Next line.

Question 1c

What is the result of the following expression?

print ('One', ' Two ' * 2)


print ('One ' + 'Two' * 2)
print (len('10123456789'))

Answer

One Two Two


One TwoTwo
11

[Link] 14/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

Question 1d

What is the result of the following expression?

s = '0123456789'
print(s[3], ", ", s[0 : 3], " - ", s[2 : 5])
print(s[:3], " - ", s[3:], ", ", s[3:100])
print(s[20:], s[2:1], s[1:1])

Answer

3 , 012 - 234
012 - 3456789 , 3456789

Question 1e

What is the result of the following expression?

s ='987654321'
print (s[-1], s[-3])
print (s[-3:], s[:-3])
print (s[-100:-3], s[-100:3])

Answer

1 3
321 987654
987654 987

Question 2a

What will be the output produced by following code fragments?

y = str(123)
x = "hello" * 3
print (x, y)
x = "hello" + "world"
y = len(x)
print (y, x)

Answer

Output

[Link] 15/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

hellohellohello 123
10 helloworld

Explanation

str(123) converts the number 123 to string and stores in y so y becomes "123". "hello" * 3
repeats "hello" 3 times and stores it in x so x becomes "hellohellohello".

"hello" + "world" concatenates both the strings so x becomes "helloworld". As


"helloworld" contains 10 characters so len(x) returns 10.

Question 2b

What will be the output produced by following code fragments?

x = "hello" + \
"to Python" + \
"world"
for char in x :
y = char
print (y, ' : ', end = ' ')

Answer

Output

h : e : l : l : o : t : o : : P : y : t : h : o : n : w :

Explanation

Inside the for loop, we are traversing the string "helloto Pythonworld" character by
character and printing each character followed by a colon (:).

Question 2c

What will be the output produced by following code fragments?

x = "hello world"
print (x[:2], x[:-2], x[-2:])
print (x[6], x[2:4])
print (x[2:-3], x[-4:-2])

Answer

[Link] 16/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

Output

he hello wor ld
w ll
llo wo or

Explanation

x[:2] ⇒ he
x[:-2] ⇒ hello wor
x[-2:] ⇒ ld

x[6] ⇒ w
x[2:4] ⇒ ll

x[2:-3] ⇒ llo wo
x[-4:-2] ⇒ or

Question 3

Carefully go through the code given below and answer the questions based on it :

theStr = " This is a test "


inputStr = input(" Enter integer: ")
inputlnt = int(inputStr)
testStr = theStr
while inputlnt >= 0 :
testStr = testStr[1:-1]
inputlnt = inputlnt - 1
testBool = 't' in testStr
print (theStr) # Line 1
print (testStr) # Line 2
print (inputlnt) # Line 3
print (testBool) # Line 4

(i) Given the input integer 3, what output is produced by Line 1?

1. This is a test
2. This is a
3. is a test
4. is a
5. None of these

Answer

[Link] 17/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

Option 1 — This is a test

(ii) Given the input integer 3, what output is produced by Line 2?

1. This is a test
2. s is a t
3. is a test
4. is a
5. None of these

Answer

Option 2 — s is a t

Explanation

As input is 3 and inside the while loop, inputlnt decreases by 1 in each iteration so the
while loop executes 4 times for inputlnt values 3, 2, 1, 0.

1st Iteration
testStr = "This is a test"

2nd Iteration
testStr = "his is a tes"

3rd Iteration
testStr = "is is a te"

4th Iteration
testStr = "s is a t"

(iii) Given the input integer 2, what output is produced by Line 3?

1. 0
2. 1
3. 2
4. 3
5. None of these

Answer

Option 5 — None of these

Explanation

[Link] 18/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

Value of inputlnt will be -1 as till inputlnt >= 0 the while loop will continue executing.

(iv) Given the input integer 2, what output is produced by Line 4?

1. False
2. True
3. 0
4. 1
5. None of these

Answer

Option 2 — True

Explanation

As input is 2 and inside the while loop, inputlnt decreases by 1 in each iteration so the
while loop executes 3 times for inputlnt values 2, 1, 0.

1st Iteration
testStr = "This is a test"

2nd Iteration
testStr = "his is a tes"

3rd Iteration
testStr = "is is a te"

After the while loop finishes executing, value of testStr is "is is a te". 't' in testStr returns
True as letter t is present in testStr.

Question 4

Carefully go through the code given below and answer the questions based on it :

testStr = "abcdefghi"
inputStr = input ("Enter integer:")
inputlnt = int(inputStr)
count = 2
newStr = ''
while count <= inputlnt :
newStr = newStr + testStr[0 : count]
testStr = testStr[2:] #Line 1
count = count + 1
print (newStr) # Line 2
print (testStr) # Line 3

[Link] 19/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

print (count) # Line 4


print (inputlnt) # Line 5

(i) Given the input integer 4, what output is produced by Line 2?

1. abcdefg
2. aabbccddeeffgg
3. abcdeefgh
4. ghi
5. None of these

Answer

Option 3 — abcdeefgh

Explanation

Input integer is 4 so while loop will execute 3 times for values of count as 2, 3, 4.

1st Iteration
newStr = newStr + testStr[0:2]
⇒ newStr = '' + ab
⇒ newStr = ab

testStr = testStr[2:]
⇒ testStr = cdefghi

2nd Iteration
newStr = newStr + testStr[0:3]
⇒ newStr = ab + cde
⇒ newStr = abcde

testStr = testStr[2:]
⇒ testStr = efghi

3rd Iteration
newStr = newStr + testStr[0:4]
⇒ newStr = abcde + efgh
⇒ newStr = abcdeefgh

testStr = testStr[2:]
⇒ testStr = ghi

(ii) Given the input integer 4, what output is produced by Line 3?

[Link] 20/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

1. abcdefg
2. aabbccddeeffgg
3. abcdeefgh
4. ghi
5. None of these

Answer

Option 4 — ghi

Explanation

Input integer is 4 so while loop will execute 3 times for values of count as 2, 3, 4.

1st Iteration
testStr = testStr[2:]
⇒ testStr = cdefghi

2nd Iteration
testStr = testStr[2:]
⇒ testStr = efghi

3rd Iteration
testStr = testStr[2:]
⇒ testStr = ghi

(iii) Given the input integer 3, what output is produced by Line 4?

1. 0
2. 1
3. 2
4. 3
5. None of these

Answer

Option 5 — None of these

Explanation

Looking at the condition of while loop — while count <= inputlnt , the while loop will stop
executing when count becomes greater than inputlnt. Value of inputlnt is 3 so when loop
stops executing count will be 4.

[Link] 21/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

(iv) Given the input integer 3, what output is produced by Line 5?

1. 0
2. 1
3. 2
4. 3
5. None of these

Answer

Option 4 — 3

Explanation

The input is converted from string to integer and after that its value is unchanged in the
code so line 5 prints the input integer 3.

(v) Which statement is equivalent to the statement found in Line 1?

1. testStr = testStr[2:0]
2. testStr = testStr[2:-1]
3. testStr = testStr[2:-2]
4. testStr = testStr - 2
5. None of these

Answer

Option 5 — None of these

Question 5

Carefully go through the code given below and answer the questions based on it :

inputStr = input(" Give me a string:")


biglnt = 0
littlelnt = 0
otherlnt = 0
for ele in inputStr:
if ele >= 'a' and ele <= 'm': # Line 1
littlelnt = littlelnt + 1
elif ele > 'm' and ele <= 'z':
biglnt = biglnt + 1
else:
otherlnt = otherlnt + 1
print (biglnt) # Line 2

[Link] 22/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

print (littlelnt) # Line 3


print (otherlnt) # Line 4
print ([Link]()) # Line 5

(i) Given the input abcd what output is produced by Line 2?

1. 0
2. 1
3. 2
4. 3
5. 4

Answer

Option 1 — 0

Explanation

In the input abcd, all the letters are between a and m so the condition — if ele >= 'a'
and ele <= 'm' is always true. Hence, biglnt is 0.

(ii) Given the input Hi Mom what output is produced by Line 3?

1. 0
2. 1
3. 2
4. 3
5. None of these

Answer

Option 3 — 2

Explanation

In the input Hi Mom, only two letters i and m satisfy the condition — if ele >= 'a' and
ele <= 'm' . Hence, value of littlelnt is 2.

(iii) Given the input Hi Mom what output is produced by Line 4?

1. 0
2. 1
3. 2

[Link] 23/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

4. 3
5. None of these

Answer

Option 4 — 3

Explanation

In the input Hi Mom, 3 characters H, M and space are not between a and z. So for these 3
characters the statement in else part — otherlnt = otherlnt + 1 is executed. Hence,
value of otherlnt is 3.

(iv) Given the input 1+2 =3 what output is produced by Line 5?

1. 0
2. 1
3. True
4. False
5. None of these

Answer

Option 4 — False

Explanation

As all characters in the input string 1+2 =3 are not digits hence isdigit() returns False.

(v) Give the input Hi Mom, what changes result from modifying Line 1 from

if ele >= 'a' and ele <='m' to the expression


if ele >= 'a' and ele < 'm'?

1. No change
2. otherlnt would be larger
3. littlelnt would be larger
4. biglnt would be larger
5. None of these

Answer

Option 2 — otherlnt would be larger

Explanation
[Link] 24/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

For letter m, now else case will be executed increasing the value of otherlnt.

Question 6

Carefully go through the code given below and answer the questions based on it :

in1Str = input(" Enter string of digits: ")


in2Str = input(" Enter string of digits: ")

if len(in1Str)>len(in2Str):
small = in2Str
large = in1Str
else:
small = in1Str
large = in2Str
newStr = ''
for element in small:
result = int(element) + int(large[0])
newStr = newStr + str(result)
large = large[1:]
print (len(newStr)) # Line 1
print (newStr) # Line 2
print (large) # Line 3
print (small) # Line 4

(i) Given a first input of 12345 and a second input of 246, what result is produced by Line
1?

1. 1
2. 3
3. 5
4. 0
5. None of these

Answer

Option 2 — 3

Explanation

As length of smaller input is 3, for loop executes 3 times so 3 characters are added to
newStr. Hence, length of newStr is 3.

(ii) Given a first input of 12345 and a second input of 246, what result is produced by Line
2?

[Link] 25/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

1. 369
2. 246
3. 234
4. 345
5. None of these

Answer

Option 1 — 369

Explanation

For loop executes 3 times as length of smaller input is 3.

1st Iteration
result = 2 + 1
⇒ result = 3

newStr = '' + '3'


⇒ newStr = '3'

large = 2345

2nd Iteration
result = 4 + 2
⇒ result = 6

newStr = '3' + '6'


⇒ newStr = '36'

large = 345

3rd Iteration
result = 6 + 3
⇒ result = 9

newStr = '36' + '9'


⇒ newStr = '369'

large = 45

Final value of newStr is '369'.

(iii) Given a first input of 123 and a second input of 4567, what result is produced by Line
3?

[Link] 26/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

1. 3
2. 7
3. 12
4. 45
5. None of these

Answer

Option 2 — 7

Explanation

For loop executes 3 times as length of smaller input is 3. Initial value of large is 4567.

1st Iteration
large = large[1:]
⇒ large = 567

2nd Iteration large = large[1:]


⇒ large = 67

3rd Iteration large = large[1:]


⇒ large = 7

(iv) Given a first input of 123 and a second input of 4567, what result is produced by Line
4?

1. 123
2. 4567
3. 7
4. 3
5. None of these

Answer

Option 1 — 123

Explanation

As length of 123 is less than length of 4567 so 123 is assigned to variable small and gets
printed in line 4.

Question 7a

[Link] 27/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

Find the output if the input string is 'Test'.

S = input("Enter String :")


RS = " "
for ch in S :
RS = ch + RS
print(S + RS)

Answer

Output

TesttseT

Explanation

The for loop reverses the input string and stores the reversed string in variable RS. After
that original string and reversed string are concatenated and printed.

Question 7b

Find the output if the input string is 'Test'.

S = input("Enter String :")


RS = " "
for ch in S :
RS = ch + 2 + RS
print(S + RS)

Answer

The program gives an error at line RS = ch + 2 + RS . The operands to + are a mix of string
and integer which is not allowed in Python.

Question 8a

Find the errors. Find the line numbers causing errors.

1. S = "PURA VIDA"
2. print(S[9] + S[9 : 15])

Answer

The error is in line 2. Length of string S is 9 so its indexes range for 0 to 8. S[9] is causing
error as we are trying to access out of bound index.
[Link] 28/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

Question 8b

Find the errors. Find the line numbers causing errors.

1. S = "PURA VIDA"
2. S1 = S[: 10] +S[10 :]
3. S2 = S[10] + S[-10]

Answer

The error is in line 3. Length of string S is 9 so its forward indexes range for 0 to 8 and
backwards indexes range from -1 to -9. S[10] and S[-10] are trying to access out of bound
indexes.

Question 8c

Find the errors. Find the line numbers causing errors.

1. S = "PURA VIDA"
2. S1 = S * 2
3. S2 = S1[-19] + S1[-20]
4. S3 = S1[-19 :]

Answer

The error is in line 3. S1[-19] and S1[-20] are trying to access out of bound indexes.

Question 8d

Find the errors. Find the line numbers causing errors.

1. S = "PURA VIDA"
2. S1 = S[: 5]
3. S2 = S[5 :]
4. S3 = S1 * S2
5. S4 = S2 + '3'
6. S5 = S1 + 3

Answer

The errors are in line 4 and line 6. Two strings cannot be multiplied. A string and an
integer cannot be added.

Question 9

[Link] 29/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

What is the output produced?

(i) >>> "whenever" .find("never")

(ii) >>> "whenever" .find("what")

Answer

(i) 3
The starting index of substring "never" in "whenever" is 3.

(ii) -1
Substring "what" is not present in "whenever".

Question 10

What is the output produced?

(i) >>> "-".join(['123','365','1319'])

(ii) >>> " ".join(['Python', 'is', 'fun'])

Answer

(i) '123-365-1319'

(ii) 'Python is fun'

Question 11

Given a string S, write expressions to print

1. first five characters of S


2. Ninth character of S
3. reversed S
4. alternate characters from reversed S

Answer

1. print(S[:5])
2. print(S[8])
3. for a in range(-1, (-len(S) - 1), -1) :
print(S[a], end = '')
4. for a in range(-1, (-len(S) - 1), -2) :
print(S[a], end = '')

[Link] 30/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

Type C: Programming Practice/Knowledge based Questions

Question 1

Write a program to count the number of times a character occurs in the given string.

Solution

str = input("Enter the string: ")


ch = input("Enter the character to count: ");
c = [Link](ch)
print(ch, "occurs", c, "times")

Output

Enter the string: KnowledgeBoat


Enter the character to count: e
e occurs 2 times

Question 2

Write a program which replaces all vowels in the string with '*'.

Solution

str = input("Enter the string: ")


newStr = ""
for ch in str :
lch = [Link]()
if lch == 'a' \
or lch == 'e' \
or lch == 'i' \
or lch == 'o' \
or lch == 'u' :
newStr += '*'
else :
newStr += ch
print(newStr)

Output

Enter the string: Computer Studies


C*mp*t*r St*d**s

Question 3
[Link] 31/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

Write a program which reverses a string and stores the reversed string in a new string.

Solution

str = input("Enter the string: ")


newStr = ""
for ch in str :
newStr = ch + newStr
print(newStr)

Output

Enter the string: computer studies


seiduts retupmoc

Question 4

Write a program that prompts for a phone number of 10 digits and two dashes, with
dashes after the area code and the next three numbers. For example, 017-555-1212 is a
legal input. Display if the phone number entered is valid format or not and display if the
phone number is valid or not (i.e., contains just the digits and dash at specific places.)

Solution

phNo = input("Enter the phone number: ")


length = len(phNo)
if length == 12 \
and phNo[3] == "-" \
and phNo[7] == "-" \
and phNo[:3].isdigit() \
and phNo[4:7].isdigit() \
and phNo[8:].isdigit() :
print("Valid Phone Number")
else :
print("Invalid Phone Number")

Output

Enter the phone number: 017-555-1212


Valid Phone Number

=====================================

Enter the phone number: 017-5A5-1212


Invalid Phone Number

[Link] 32/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

Question 5

Write a program that should do the following :

prompt the user for a string


extract all the digits from the string
If there are digits:
sum the collected digits together
print out the original string, the digits, the sum of the digits
If there are no digits:
print the original string and a message "has no digits"

Sample

given the input : abc123


prints abc123 has the digits 123 which sum to 6
given the input : abcd
prints abcd has no digits

Solution

str = input("Enter the string: ")


sum = 0
digitStr = ''
for ch in str :
if [Link]() :
digitStr += ch
sum += int(ch)
if not digitStr :
print(str, "has no digits")
else :
print(str, "has the digits", digitStr, "which sum to", sum)

Output

Enter the string: abc123


abc123 has the digits 123 which sum to 6

=====================================

Enter the string: KnowledgeBoat


KnowledgeBoat has no digits

[Link] 33/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

Question 6

Write a program that should prompt the user to type some sentence(s) followed by
"enter". It should then print the original sentence(s) and the following statistics relating to
the sentence(s) :

Number of words
Number of characters (including white-space and punctuation)
Percentage of characters that are alphanumeric

Hints

Assume any consecutive sequence of non-blank characters is a word.

Solution

str = input("Enter a few sentences: ")


length = len(str)
spaceCount = 0
alnumCount = 0

for ch in str :
if [Link]() :
spaceCount += 1
elif [Link]() :
alnumCount += 1

alnumPercent = alnumCount / length * 100

print("Original Sentences:")
print(str)

print("Number of words =", (spaceCount + 1))


print("Number of characters =", (length + 1))
print("Alphanumeric Percentage =", alnumPercent)

Output

Enter a few sentences: Python was conceived in the late 1980s by Guido van Rossum at Cen
Original Sentences:
Python was conceived in the late 1980s by Guido van Rossum at Centrum Wiskunde & Informa
Number of words = 34
Number of characters = 206
Alphanumeric Percentage = 80.48780487804879

[Link] 34/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

Question 7

Write a Python program as per specifications given below:

Repeatedly prompt for a sentence (string) or for 'q' to quit.


Upon input of a sentence s, print the string produced from s by converting each lower
case letter to upper case and each upper case letter to lower case.
All other characters are left unchanged.

For example,
Please enter a sentence, or 'q' to quit : This is the Bomb!
tHIS IS THE bOMB!
Please enter a sentence, or 'q ' to quit : What's up Doc ???
wHAT'S UP dOC ???
Please enter a sentence, or 'q' to quit : q

Solution

while True :
str = input("Please enter a sentence, or 'q' to quit : ")
newStr = ""
if [Link]() == "q" :
break
for ch in str :
if [Link]() :
newStr += [Link]()
elif [Link]() :
newStr += [Link]()
else :
newStr += ch
print(newStr)

Output

Please enter a sentence, or 'q' to quit : This is the Bomb!


tHIS IS THE bOMB!
Please enter a sentence, or 'q' to quit : What's up Doc ???
wHAT'S UP dOC ???
Please enter a sentence, or 'q' to quit : q

Question 8

Write a program that does the following :

takes two inputs : the first, an integer and the second, a string

[Link] 35/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

from the input string extract all the digits, in the order they occurred, from the string.
if no digits occur, set the extracted digits to 0
add the integer input and the digits extracted from the string together as integers
print a string of the form :
"integer_input + string_digits = sum"

For example :
For inputs 12, 'abc123' → '12 + 123 = 135'
For inputs 20, 'a5b6c7' → '20 + 567 =587'
For inputs 100, 'hi mom' → '100 + 0 = 100'

Solution

num = int(input("Enter an integer: "))


str = input("Enter the string: ")

digitsStr = ''
digitsNum = 0;

for ch in str :
if [Link]() :
digitsStr += ch

if digitsStr :
digitsNum = int(digitsStr)

print(num, "+", digitsNum, "=", (num + digitsNum))

Output

Enter an integer: 12
Enter the string: abc123
12 + 123 = 135

=====================================

Enter an integer: 20
Enter the string: a5b6c7
20 + 567 = 587

=====================================

Enter an integer: 100


Enter the string: hi mom
100 + 0 = 100

[Link] 36/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

Question 9

Write a program that takes two strings from the user and displays the smaller string in
single line and the larger string as per this format :

1st letter last letter


2nd letter 2nd last letter
3rd letter 3rd last letter

For example,
if the two strings entered are Python and PANDA then the output of the program should
be :

PANDA
P n
y o
t h

Solution

str1 = input("Enter first string: ")


str2 = input("Enter second string: ")

small = str1
large = str2

if len(str1) > len(str2) :


large = str1
small = str2

print(small)

lenLarge = len(large)
for i in range(lenLarge // 2) :
print(' ' * i, large[i], ' ' * (lenLarge - 2 * i), large[lenLarge - i - 1], sep='')

Output

Enter first string: Python


Enter second string: PANDA
PANDA
P n
y o
t h

[Link] 37/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

Question 10

Write a program to convert a given number into equivalent Roman number (store its
value as a string). You can use following guidelines to develop solution for it:

From the given number, pick successive digits, using %10 and /10 to gather the digits
from right to left.
The rules for Roman Numerals involve using four pairs of symbols for ones and five,
tens and fifties, hundreds and five hundreds. An additional symbol for thousands
covers all the relevant bases.
When a number is followed by the same or smaller number, it means addition. "II" is
two 1's = 2. "VI" is 5 + 1 = 6.
When one number is followed by a larger number, it means subtraction. "IX" is 1
before 10 = 9. "IIX isn't allowed, this would be "VIII". For numbers from 1 to 9, the
symbols are "I" and "V", and the coding works like this. "I" , "II", "III", "IV", "V", "VI",
"VII", "VIII", "IX".
The same rules work for numbers from 10 to 90, using "X" and "L". For numbers from
100 to 900, using the symbols "C" and "D". For numbers between 1000 and 4000,
using "M".

Here are some examples. 1994 = MCMXCIV, 1956 = MCMLVI, 3888= MMMDCCCLXXXVIII

Solution

n = int(input("Enter the number: "))


num = (1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1)
rom = ('M', 'CM', 'D', 'CD','C', 'XC','L','XL','X','IX','V','IV','I')

result = ''

for i in range(len(num)) :
count = int(n / num[i])
result += str(rom[i] * count)
n -= num[i] * count

print(result)

Output

Enter the number: 1994


MCMXCIV

=====================================

[Link] 38/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

Enter the number: 1956


MCMLVI

=====================================

Enter the number: 3888


MMMDCCCLXXXVIII

Question 11

Write a program that asks the user for a string (only single space between words) and
returns an estimate of how many words are in the string. (Hint. Count number of spaces)

Solution

str = input("Enter a string: ")


count = 0
for ch in str :
if [Link]() :
count += 1
print("No of words =", (count + 1))

Output

Enter a string: Python was conceived in the late 1980s by Guido van Rossum at Centrum Wi
No of words = 20

Question 12

Write a program to input a formula with some brackets and checks, and prints out if the
formula has the same number of opening and closing parentheses.

Solution

str = input("Enter a formula: ")


count = 0

for ch in str :
if ch == '(' :
count += 1
elif ch == ')' :
count -= 1

if count == 0 :
print("Formula has same number of opening and closing parentheses")

[Link] 39/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

else :
print("Formula has unequal number of opening and closing parentheses")

Output

Enter a formula: s(s-a)(s-b)(s-c)


Formula has same number of opening and closing parentheses

=====================================

Enter a formula: s((s-a)(s-b)(s-c)


Formula has unequal number of opening and closing parentheses

Question 13

Write a program that inputs a line of text and prints out the count of vowels in it.

Solution

str = input("Enter a string: ")


count = 0

for ch in str :
lch = [Link]()
if lch == 'a' \
or lch == 'e' \
or lch == 'i' \
or lch == 'o' \
or lch == 'u' :
count += 1

print("Vowel Count =", count)

Output

Enter a string: Internet of Things


Vowel Count = 5

Question 14

Write a program to input a line of text and print the biggest word (length wise) from it.

Solution

[Link] 40/45
10/10/21, 5:28 PM Chapter 10: String Manipulation | Solutions of Computer Science with Python by Sumita Arora for Class 11 CBSE & NCERT | Kn…

str = input("Enter a string: ")


words = [Link]()
longWord = ''

for w in words :
if len(w) > len(longWord) :
longWord = w

print("Longest Word =", longWord)

Output

Enter a string: TATA FOOTBALL ACADEMY WILL PLAY AGAINST MOHAN BAGAN
Longest Word = FOOTBALL

Question 15

Write a program to input a line of text and create a new line of text where each word of
input line is reversed.

Solution

str = input("Enter a string: ")


words = [Link]()
newStr = ""

for w in words :
rw = ""
for ch in w :
rw = ch + rw
newStr += rw + " "

print(newStr)

Output

Enter a string: Python is Fun


nohtyP si nuF

[Link] 41/45

Common questions

Powered by AI

The program iterates over each character, converts it to lowercase, and checks if it is a vowel ('a', 'e', 'i', 'o', 'u'). If it is, it appends an asterisk to the new string; otherwise, it appends the character itself. This effectively replaces all vowels with asterisks .

The program first compares the lengths of the strings to identify the larger one. It then prints the smaller string on a single line. For the larger one, it interleaves letters from the start and end towards the center, maintaining the correct spacing, producing an interleavened pattern .

The program checks if the length of the input string is 12, the fourth and eighth characters are dashes, and segments before, between, and after these dashes are numeric. If all checks are satisfied, the input is marked as a 'Valid Phone Number'. Otherwise, it is 'Invalid' .

The program iterates through each character of the string, counting spaces. Since words are separated by spaces, the number of words is the number of spaces plus one, which accounts for the first word in the absence of a preceding space .

Initially, testStr is ' This is a test '. With inputlnt = 3, the while loop executes 4 times. Each iteration trims one character from the start and end of the string: 1st Iteration: 'This is a test', 2nd: 'his is a tes', 3rd: 'is is a te', 4th: 's is a t'. The final value of testStr is 's is a t' .

The program uses a count variable initialized to zero. For each opening parenthesis encountered, the count is incremented; for each closing parenthesis, it is decremented. If the count is zero after processing the string, parentheses are balanced. An imbalance is indicated by a non-zero count .

If no digits are found in the string during iteration, digitsStr remains an empty string and digitsNum is set to 0. Hence, when no digits are present, the default value 0 is used in the final addition with the input integer .

The conversion uses a list of numerical values and their Roman numeral equivalents. For each numeral, the input number is divided successively to count how many times each Roman numeral fits, appending the respective number of symbols to the result. The process continues until the input number is decomposed entirely, efficiently constructing the Roman numeral representation .

The output will be 'hel rld lo '. Explanation: x[:3] returns the first three characters 'hel', x[-3:] returns the last three characters 'rld', and x[3:6] returns the substring from index 3 to before index 6 which is 'lo ' .

Iterate over each character of the string. If the character is a digit, it's added to a new string digitStr and its integer value is summed. If digitStr is not empty after iteration, print the original string, the extracted digits, and their sum. Otherwise, print the original string with a message stating 'has no digits' .

You might also like