Python MCQs and Concepts for Class 12
Python MCQs and Concepts for Class 12
Question 1
1. my_day_2
2. 2nd_day
3. Day_two
4. _2
Answer
2nd_day
Reason — Variable names cannot begin with a number, although they can contain numbers.
Question 2
1. name
2. break
3. section
4. mark12
Answer
break
Question 3
1. eval
2. assert
3. nonlocal
4. pass
Answer
eval
Question 4
1. _init_
2. in
3. it
4. on
Answer
in
Question 5
1. Lists
2. Dictionary
3. Tuples
4. Class
Answer
Class
Question 6
1. x^y
2. x**y
3. x^^y
4. none of these
Answer
x**y
Question 7
1. 14
2. 27
3. 12
4. 0
Answer
27
Reason — According to operator precedence remainder (%) operation will be done first and
then addition (+) will be done.
14 + 13 % 15
= 14 + 13
= 27
Question 8
1. 0.0
2. 0
3. 1.0
4. 1
Answer
Reason — According to operator precedence, floor division (//) and remainder (%) both have
equal precedence hence the expression will be evaluated from left to right.
A % B // A
= 16 % 15 // 16
= 1 // 16
=0
Question 9
1. 17
2. 14
3. 15
4. 23
Answer
15
Reason — According to operator precedence, division will be done first followed by addition
and then it will convert to integer.
x = int(13.25 + 4/2)
x = int(13.25 + 2.0)
x = int(15.45)
x = 15
Question 10
The expression 8/4/2 will evaluate equivalent to which of the following expressions:
1. 8/(4/2)
2. (8/4)/2
Answer
(8/4)/2
Reason — As both the operators are division operators, the expression will be evaluated
from left to right.
Question 11
Which among the following list of operators has the highest precedence?
1. <<, >>
2. **
3. I
4. %
Answer
**
Question 12
1. float('12')
2. int('12')
3. float('12.5')
4. int('12.5')
Answer
int('12.5')
Reason — int() are positive or negative whole numbers with no decimal point.
Question 13
1. print("hello\example\[Link]")
2. print("hello\\example\\[Link]")
3. print("hello\"example\"[Link]")
4. print("hello"\example"\[Link]")
Answer
print("hello\\example\\[Link]")
Question 14
1. Boolean
2. String
3. Int
4. Float
Answer
String
Question 15
1. @
2. %
3. +
4. #
Answer
%, +
Question 16
Which of the following four code fragments will yield following output?
Eina
Mina
Dika
Select all of the function calls that result in this output
1. print('''Eina
\nMina
\nDika''')
2. print('''EinaMinaDika''')
3. print('Eina\nMina\nDika')
4. print('Eina
Mina
Dika')
Answer
print('Eina\nMina\nDika')
Reason —
1. print('''Eina
\nMina
\nDika''') — It is a multiline string and by adding \n extra line will be added.
2. print('''EinaMinaDika''') — There is no new line character.
3. print('Eina\nMina\nDika') — It adds new line by \n new line character.
4. print('Eina
Mina
Dika') — It creates an error because it is a multiline string with no triple quotes.
Question 17
1. //
2. ?
3. <
4. and
Answer
//
Question 18
For a given declaration in Python as s = "WELCOME", which of the following will be the
correct output of print(s[1::2])?
1. WEL
2. COME
3. WLOE
4. ECM
Answer
ECM
Reason — The slicing will start from index 1 and return at every alternative step.
s[1] = E
s[3] = C
s[5] = M
output = ECM
Question 19
1. not
2. in
3. or
4. and
Answer
in
Question 20
1. (1,2,3)
2. ("One","Two","Three")
3. (10,)
4. ("One")
Answer
("One")
Question 1
Question 2
Question 3
A keyword is a word having special meaning and role as specified by programming language.
Question 4
The data types whose values cannot be changed in place are called immutable types.
Question 5
In a Python expression, when conversion of a value's data type is done automatically by the
compiler without programmer's intervention, it is called implicit type conversion.
Question 6
The explicit conversion of an operand to a specific type is called type casting.
Question 7
Question 8
A break statement skips the rest of the loop and jumps over to the statement following the
loop.
Question 9
The continue statement skips the rest of the loop statements and causes the next iteration of
the loop to take place.
Question 10
True/False Questions
Question 1
Answer
True
Question 2
The value of the expressions 4/(3*(2 - 1)) and 4/3*(2 - 1) is the same.
Answer
True
Reason — Parentheses has first precedence then multiplication then division has precedence.
4/(3*(2-1))
= 4/(3*1)
= 4/3
= 1.33333
4/3*(2-1)
= 4/3*1
= 4/3
= 1.33333
Question 3
The value of the expressions 4/(3*(4 - 2)) and 4/3*(4 - 2) is the same.
Answer
False
Reason — Parentheses has first precedence then multiplication then division has precedence.
4/(3*(4-2))
= 4/(3*2)
= 4/6
= 0.6666
4/3*(4-2)
= 4/3*2
= 1.3333*2
= 2.6666
Question 4
Answer
False
Question 5
A string can be surrounded by three sets of single quotation marks or by three sets of double
quotation marks.
Answer
True
Question 6
Answer
False
Reason — Python supports dynamic typing i.e., a variable can hold values of different types
at different times.
Question 7
Answer
False
Reason — Variables represent labelled storage locations, whose values can be manipulated
during program run.
Question 8
Answer
False
Question 9
Answer
True
Question 10
In a nested loop, a break statement terminates all the nested loops in one go.
Answer
False
Reason — In nested loops, a break statement will terminate the very loop it appears in.
Question 1
Assertion. Assigning a new value to an int variable creates a new variable internally.
Answer
(a)
Both Assertion and Reason are true and Reason is the correct explanation of Assertion.
Explanation
In python, literal values have fixed memory locations and variable names reference them as
values. This means that, although we can change the value of an integer variable, the process
involves creating a new integer object with the updated value. Literal values, such as 10, have
fixed memory locations, and variables act as references to these values. When we assign a
new value to an integer variable, we are essentially creating a new object, and the variable
now points to this new object. Hence, both Assertion and Reason are true and Reason is the
correct explanation of Assertion.
Question 2
Answer
(c)
Explanation
A string literal is a sequence of characters surrounded by single or double or triple single
quotes or triple double quotes.
Question 3
Reason. Python is case sensitive and its basic selection and looping statements are in lower
case.
Answer
(d)
Explanation
if is conditional statement and for is loop statement. Python is case sensitive and its selection
and looping statements are in lower case.
Question 4
Reason. Python is case sensitive and its basic selection and looping statements are in lower
case.
Answer
(a)
Both Assertion and Reason are true and Reason is the correct explanation of Assertion.
Explanation
if is conditional statement and for is loop statement. Python is case sensitive and its selection
and looping statements are in lower case.
Question 5
Assertion. The break statement can be used with all selection and iteration statements.
Reason. Using break with an if statement is of no use unless the if statement is part of a
looping construct.
Answer
(e)
Explanation
In python, the break statement can be used with iteration statements only. Using break with
conditional statements will result in syntax error — SyntaxError: 'break' outside
loop
Question 6
Assertion. The break statement can be used with all selection and iteration statements.
Answer
(e)
Explanation
In python, the break statement can be used with iteration statements only. Using break with
conditional statements will result in syntax error — SyntaxError: 'break' outside
loop
Type A: Short Answer Questions/Conceptual Questions
Question 1
What are tokens in Python? How many types of tokens are allowed in Python? Exemplify
your answer.
Answer
The smallest individual unit in a program is known as a Token. Python has following tokens:
Question 2
Answer
Keywords are reserved words carrying special meaning and purpose to the language
compiler/interpreter. For example, if, elif, etc. are keywords. Identifiers are user defined
names for different parts of the program like variables, objects, classes, functions, etc.
Identifiers are not reserved. They can have letters, digits and underscore. They must begin
with either a letter or underscore. For example, _chk, chess, trail, etc.
Question 3
What are literals in Python? How many types of literals are allowed in Python?
Answer
Literals are data items that have a fixed value. The different types of literals allowed in
Python are:
1. String literals
2. Numeric literals
3. Boolean literals
4. Special literal None
5. Literal collections
Question 4
True.
Reason — In Python, variable declaration is implicit. This means that we don't need to
explicitly declare the data type of a variable before using it. The type of a variable is
determined dynamically at runtime based on the assigned value. For example:
Question 5
Out of the following, find those identifiers, which cannot be used for naming Variables or
Functions in a Python program:
Price*Qty
class
For
do
4thCol
totally
Row31
_Amount
Answer
Question 6
1. MyName
2. True
3. 2ndName
4. My_Name
Answer
1. Set
2. None
3. Integer
4. Real
Answer
Real
Question 8
1. ?
2. <
3. **
4. and
Answer
**
Reason — Let's go through each option and see if its valid arithmetic operator or not:
Question 9
How are floating constants represented in Python? Give examples to support your answer.
Answer
Floating constants are represented in Python in two forms — Fractional Form and Exponent
form. Examples:
Question 10
How are string-literals represented and implemented in Python?
Answer
Question 11
What are operators ? What is their function? Give examples of some unary and binary
operators.
Answer
Operators are tokens that trigger some computation/action when applied to variables and
other objects in an expression. Unary plus (+), Unary minus (-), Bitwise complement (~),
Logical negation (not) are a few examples of unary operators. Examples of binary operators
are Addition (+), Subtraction (-), Multiplication (*), Division (/).
Question 12
1. **
2. */
3. like
4. ||
5. is
6. ^
7. between
8. in
Answers
** ⇒ Exponentiation operator
is ⇒ Identity operator
^ ⇒ Bitwise XOR operator
in ⇒ Membership operator
Question 13
Answer
An expression is any legal combination of symbols that represents a value. For example, 2.9,
a + 5, (3 + 5) / 4.
A statement is a programming instruction that does something i.e. some action takes place.
For example:
print("Hello")
a = 15
b = a - 10
Question 14
Answer
A Python program can contain various components like expressions, statements, comments,
functions, blocks and indentation.
Question 15
Answer
Variables are named labels whose values can be used and processed during program run.
Variables are important for a program because they enable a program to process different sets
of data.
Question 16
Which of the following will be correct output if the given expression is evaluated?
1. True
2. False
3. None
4. Null
Answer
True
Reason — The 'not' operator has the highest precedence, followed by 'and', which has
precedence over 'or', and the evaluation proceeds from left to right.
not True and False or True
= False and False or True
= False or True
= True
Question 17
Describe the concepts of block and body. What is indentation and how is it related to block
and body?
Answer
A block in Python, represents a group of statements executed as a single unit. Python uses
indentation to create blocks of code. Statements at same indentation level are part of same
block/suite and constitute the body of the block.
Question 18(a)
Answer
Data types are used to identify the type of data a memory location can hold and the associated
operations of handling it. The data that we deal with in our programs can be of many types
like character, integer, real number, string, boolean, etc. hence programming languages
including Python provide ways and facilities to handle all these different types of data
through data types. The data types define the capabilities to handle a specific type of data
such as memory space it allocates to hold a certain type of data and the range of values
supported for a given data type, etc.
Question 18(b)
Answer
1. Integer
2. String
3. List
4. Tuple
Question 19
Answer
1. Integers (signed)
2. Booleans
Question 20
What are immutable and mutable types? List immutable and mutable types of Python.
Answer
Mutable types are those whose values can be changed in place whereas Immutable types are
those that can never change their value in place.
1. Lists
2. Dictionaries
3. Sets
1. Integers
2. Floating-Point numbers
3. Booleans
4. Strings
5. Tuples
Question 21
What is the difference between implicit type conversion and explicit type conversion?
Answer
Example: Example:
a, b = 5, 25.5 a, b = 5, 25.5
c=a+b c = int(a + b)
Question 22
An immutable data type is one that cannot change after being created. Give three reasons to
use immutable data.
Answer
Question 23
What is entry controlled loop? Which loop is entry controlled loop in Python?
Answer
An entry-controlled loop checks the condition at the time of entry. Only if the condition is
true, the program control enters the body of the loop. In Python, for and while loops are
entry-controlled loops.
Question 24
Answer
The pass statement of Python is a do nothing statement i.e. empty statement or null operation
statement. It is useful in scenarios where syntax of the language requires the presence of a
statement but the logic of the program does not. For example,
for i in range(10):
if i == 2:
pass
else:
print("i =", i)
Question 25
Rewrite the adjacent code in python after removing all syntax error(s). Underline each
correction done in the code.
30 = To
for K in range(0,To)
IF k%4 == 0:
print(K * 4)
Else:
print(K+3).
Answer
Correction 1 — Variable should be on left side and literals should be on right side.
Correction 2 — Semi-colon was missing in the for loop syntax.
Correction 3 — if statement should be in lower case.
Correction 4 — else statement should be in lower case.
Correction 5 — Full stop should not be there at the end of print function.
Question 26
Below are seven segments of code, each with a part coloured. Indicate the data type of each
coloured part by choosing the correct type of data from the following type.
(a) int
(b) float
(c) bool
(d) str
(e) function
(f) list of int
(g) list of str
(i)
if temp < 32 :
print ("Freezing")
(ii)
M = []
for i in range (3) :
[Link](i)
print(M)
(iv)
L = [Link]()
while L != ( ) :
print(L)
L = L[1 :]
(vii)
(i) bool
(ii) str
(iii) list of int
(iv) int
(v) bool
(vi) list of str
(vii) str
Question 27
for i in range(2,7,2):
print(i*'$')
Answer
Output
$$
$$$$
$$$$$$
Explanation
Fill in the missing lines of code in the following code. The code reads in a limit amount and a
list of prices and prints the largest price that is less than the limit. You can assume that all
prices and the limit are positive numbers. When a price 0 is entered the program terminates
and prints the largest price that is less than the limit.
Question 2a
count = 0
while count < 10:
print ("Hello")
count += 1
Answer
Output
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Question 2b
x = 10
y = 0
while x > y:
print (x, y)
x = x - 1
y = y + 1
Answer
Output
10 0
9 1
8 2
7 3
6 4
Explanation
x y Output Remarks
10 0 10 0 1st Iteration
10 0
9 1 2nd Iteration
91
10 0
8 2 91 3rd Iteration
82
7 3 10 0 4th Iteration
91
x y Output Remarks
82
73
10 0
91
6 4 82 5th Iteration
73
64
Question 2c
keepgoing = True
x=100
while keepgoing :
print (x)
x = x - 10
if x < 50 :
keepgoing = False
Answer
Output
100
90
80
70
60
50
Explanation
Question 2d
x = 45
while x < 50 :
print (x)
Answer
As the loop control variable x is not updated inside the loop neither there is any break
statement inside the loop so it becomes an infinite loop.
Question 2e
for x in [1,2,3,4,5]:
print (x)
Answer
Output
1
2
3
4
5
Explanation
x will be assigned each of the values from the list one by one and that will get printed.
Question 2f
for p in range(1,10):
print (p)
Answer
Output
1
2
3
4
5
6
7
8
9
Explanation
range(1,10) will generate a sequence like this [1, 2, 3, 4, 4, 5, 6, 7, 8, 9]. p will be
assigned each of the values from this sequence one by one and that will get printed.
Question 2g
Output
-500
-400
-300
-200
-100
0
100
200
300
400
Explanation
range(-500, 500, 100) generates a sequence of numbers from -500 to 400 with each
subsequent number incrementing by 100. Each number of this sequence is assigned to z one
by one and then z gets printed inside the for loop.
Question 2h
x = 10
y = 5
for i in range(x-y * 2):
print (" % ", i)
Answer
Explanation
Question 2i
c = 0
for x in range(10):
for y in range(5):
c += 1
print (c)
Answer
Output
50
Explanation
Outer loop executes 10 times. For each iteration of outer loop, inner loop executes 5 times.
Thus, the statement c += 1 is executed 10 * 5 = 50 times. c is incremented by 1 in each
execution so final value of c becomes 50.
Question 2j
x = [1,2,3]
counter = 0
while counter < len(x):
print(x[counter] * '%')
for y in x:
print(y * '* ')
counter += 1
Answer
Output
%
*
* *
* * *
%%
*
* *
* * *
%%%
*
* *
* * *
Explanation
In this code, the for loop is nested inside the while loop. Outer while loop runs 3 times and
prints % as per the elements in x in each iteration. For each iteration of while loop, the inner
for loop executes 3 times printing * as per the elements in x.
Question 2k
for x in 'lamp':
print([Link](x))
Answer
Output
L
A
M
P
Explanation
The for loop extracts each letter of the string 'lamp' one by one and place it in variable x.
Inside the loop, x is converted to uppercase and printed.
Question 2l
x = 'one'
y = 'two'
counter = 0
while counter < len(x):
print(x[counter], y[counter])
counter += 1
Answer
Output
o t
n w
e o
Explanation
Inside the while loop, each letter of x and y is accessed one by one and printed.
Question 2m
Output
apple
pear
peach
Explanation
[Link](", ") breaks up string x into a list of strings so y becomes ['apple', 'pear', 'peach']. The
for loop iterates over this list and prints each string one by one.
Question 2n
Output
apple
PEAR
PEACH
grapefruit
Explanation
[Link](', ') breaks up string x into a list of strings so y becomes ['apple', 'pear', 'peach',
'grapefruit']. The for loop iterates over this list. apple and grapefruit are less than m (since a
and g comes before m) so they are converted to lowercase and printed whereas pear and
peach are converted to uppercase and printed.
Question 3
Which of the following is the correct output for the execution of the following Python
statement ?
print(5 + 3 ** 2 / 2)
1. 32
2. 8.0
3. 9.5
4. 32.0
Answer
9.5
Explanation
According to operator precedence, exponentiation(**) will come first then division then
addition.
5 + 3 ** 2 / 2
=5+9/2
= 5 + 4.5
= 9.5
Question 4(i)
How many times will the following for loop execute and what's the output?
The loops execute 0 times and the code produces no output. range(-1, 7, -2) returns an empty
sequence as there are no numbers that start at -1 and go till 6 decrementing by -2. Due to
empty sequence, the loops don't execute.
Question 4(ii)
How many times will the following for loop execute and what's the output?
for i in range(1,3,1):
for j in range(i+1):
print('*')
Answer
Output
*
*
*
*
*
Explanation
range(1,3,1) returns [1, 2]. For first iteration of outer loop j is in range [0, 1] so inner loop
executes twice. For second iteration of outer loop j is in range [0, 1, 2] so inner loop executes
3 times. This makes the total number of loop executions as 2 + 3 = 5.
Question 5
Output
Jay
Finished!
Riya
Finished!
Tanu
Got it!
Explanation
The for loop iterates over each name in the list and prints it. If the name does not begin with
the letter T, Finished! is printed after the name. If the name begins with T, break statement is
executed that terminates the loop. Outside the loop, Got it! gets printed.
Question 6
Is the loop in the code below infinite? How do you know (for sure) before you run it?
m = 3
n = 5
while n < 10:
m = n - 1
n = 2 * n - m
print(n, m)
Answer
The loop is not infinite. To know this without running it we can analyze how n is changed
inside the loop in the following way:
n=2*n-m
n = 2 * n - (n - 1)
⇒n=2*n-n+1
⇒ n = 2n - n + 1
⇒n=n+1
Therefore, inside the loop n is incremented by 1 in each iteration. Loop condition is n < 10
and initial value of n is 5. So after 5 iterations, n will become 10 and the loop will terminate.
Question 1
Write a program to print one of the words negative, zero, or positive, according to whether
variable x is less than zero, zero, or greater than zero, respectively.
Solution
x = int(input("Enter x: "))
if x < 0:
print("negative")
elif x > 0:
print("positive")
else:
print("zero")
Output
Enter x: -5
negative
Enter x: 0
zero
Enter x: 5
positive
Question 2
Write a program that returns True if the input number is an even number, False otherwise.
Solution
if x % 2 == 0:
print("True")
else:
print("False")
Output
Enter a number: 10
True
Enter a number: 5
False
Question 3
Write a Python program that calculates and prints the number of seconds in a year.
Solution
days = 365
hours = 24
mins = 60
secs = 60
secsInYear = days * hours * mins * secs
print("Number of seconds in a year =", secsInYear)
Output
Question 4
Write a Python program that accepts two integers from the user and prints a message saying
if first number is divisible by second number or if it is not.
Solution
if a % b == 0:
print(a, "is divisible by", b)
else:
print(a, "is not divisible by", b)
Output
Question 5
Write a program that asks the user the day number in a year in the range 2 to 365 and asks the
first day of the year — Sunday or Monday or Tuesday etc. Then the program should display
the day on the day-number that has been input.
Solution
if currDayIdx >= 7:
currDayIdx = currDayIdx - 7
Output
Enter day number: 243
First day of year: FRIDAY
Day on day number 243 : TUESDAY
Question 6
One foot equals 12 inches. Write a function that accepts a length written in feet as an
argument and returns this length written in inches. Write a second function that asks the user
for a number of feet and returns this value. Write a third function that accepts a number of
inches and displays this to the screen. Use these three functions to write a program that asks
the user for a number of feet and tells them the corresponding number of inches.
Solution
def feetToInches(lenFeet):
lenInch = lenFeet * 12
return lenInch
def getInput():
len = int(input("Enter length in feet: "))
return len
def displayLength(l):
print("Length in inches =", l)
ipLen = getInput()
inchLen = feetToInches(ipLen)
displayLength(inchLen)
Output
Question 7
Write a program that reads an integer N from the keyboard computes and displays the sum of
the numbers from N to (2 * N) if N is nonnegative. If N is a negative number, then it's the
sum of the numbers from (2 * N) to N. The starting and ending points are included in the
sum.
Solution
n = int(input("Enter N: "))
sum = 0
if n < 0:
for i in range(2 * n, n + 1):
sum += i
else:
for i in range(n, 2 * n + 1):
sum += i
Output
Enter N: 5
Sum = 45
Enter N: -5
Sum = -45
Question 8
Write a program that reads a date as an integer in the format MMDDYYYY. The program
will call a function that prints print out the date in the format <Month Name> <day>, <year>.
Sample run :
Solution
Output
Question 9
Write a program that prints a table on two columns — table that helps converting miles into
kilometers.
Solution
print('Miles | Kilometres')
print(1, "\t", 1.60934)
for i in range(10, 101, 10):
print(i, "\t", i * 1.60934)
Output
Miles | Kilometres
1 1.60934
10 16.0934
20 32.1868
30 48.2802
40 64.3736
50 80.467
60 96.5604
70 112.6538
80 128.7472
90 144.8406
100 160.934
Question 10
Write another program printing a table with two columns that helps convert pounds in
kilograms.
Solution
print('Pounds | Kilograms')
print(1, "\t", 0.4535)
for i in range(10, 101, 10):
print(i, "\t", i * 0.4535)
Output
Pounds | Kilograms
1 0.4535
10 4.535
20 9.07
30 13.605
40 18.14
50 22.675
60 27.21
70 31.745
80 36.28
90 40.815
100 45.35
Question 11
Write a program that reads two times in military format (0900, 1730) and prints the number
of hours and minutes between the two times.
Solution
Output