Python Conditional and Looping Constructs
Python Conditional and Looping Constructs
Question 1
Statements in Python are executed sequentially while working with a sequence construct.
Question 2
Flow charts are diagrams that show the step-by-step solution to a given problem.
Question 3
The most popularly used looping constructs in Python are for loop and while loop.
Question 4
Question 5
Conditional statements let us write a program to do different tasks or take different paths based
on the outcome of the conditions.
Question 6
Question 7
The iterative or looping construct means repetition of a set of statements depending upon a
condition test.
Question 8
The statements within the body of for loop are executed till the range of values is exhausted.
Question 10
Question 1
Flow chart is not a graphical representation of steps and algorithm to solve a given problem.
Answer
False
Reason — Flow chart is a graphical representation of the sequence of steps and decisions needed
to perform a process/task.
Question 2
Answer
False
Reason — The if, elif, and else are block or compound statements in Python.
Question 3
Every compound statement of Python has a header and indented body below the header.
Answer
True
Reason — In Python, every compound statement has a header and indented body below the
header.
Question 4
True
Question 5
The body of the loop that is executed more than one time is called iteration.
Answer
True
Reason — The body of the loop that is executed more than one time is called an iteration.
Question 6
To cancel the running of endless loop, you can press CTRL+C key any time during its endless
repetition to stop it.
Answer
True
Reason — To cancel the running of endless loop, we can press CTRL+ C key any time during
its endless repetition to stop it.
Question 7
Answer
False
Reason — In Python, indentation is necessary to define a block of code within control structures
such as if, for, and while statements, as well as within functions.
Question 8
Answer
False
Reason — Python does not have an else if statement. Instead, Python uses the elif statement
to chain multiple conditional statements together.
Question 9
Answer
True
Question 10
The else block for a loop executes only in the case of normal termination of the loop.
Answer
True
Reason — In Python, the else block associated with a for loop is executed when the loop
terminates normally, meaning it has iterated over all items or reached its termination condition.
Question 11
Answer
True
Reason — Iteration refers to the process of repeatedly executing a set of statements or a block of
code for a specified number of times.
Question 1
1. Flow chart
2. Pie chart
3. Bar chart
4. Column chart
Answer
Flow chart
Question 2
1. if-elif statement
2. for statement
3. if-else statement
4. if statement
Answer
for statement
Question 3
1. Semicolon (;)
2. Hyphen ( - )
3. Underscore ( _ )
4. Colon (:)
Answer
Colon (:)
Question 4
1. IF
2. If
3. if
4. None of these
Answer
if
Reason — In Python, keywords are case-sensitive, meaning they must be written exactly as
specified by the Python language. The valid keyword among the options provided is if.
Question 5
if True:
print (101)
else:
print (202)
1. 101
2. 202
3. 303
4. 102
Answer
101
Reason — In Python, if True: will always evaluate to True, so the code block under
the if branch will execute.
Question 6
1. do-while
2. while
3. for
4. All of these
Answer
do-while
Reason — In Python, the do-while loop statement does not exist. The language provides only
two primary loop constructs: the for loop and the while loop, which are used to handle different
looping requirements.
Question 7
x = ['ab', 'cd']
for i in x:
[Link]()
print (x)
1. ['ab', 'cd']
2. ['AB', 'CD']
3. [None, None]
4. None of these
Answer
['ab', 'cd']
Reason — In the given code, the for loop iterates over the list x containing strings 'ab' and 'cd'.
Inside the loop, [Link]() is called, which returns a new string in uppercase but doesn't
modify i itself because strings in Python are immutable. Therefore, [Link]() doesn't
change i or x in place. After the loop finishes, x remains unchanged, so the output is ['ab', 'cd'].
Question 8
1. if
2. while
3. do-while
4. for
Answer
for
Reason — The for loop statement is used to iterate/repeat itself over a range of values or a
sequence.
Question 9
Answer
1,4,7,10,13,16,19,
Reason — The above code uses a for loop to iterate over a sequence of numbers generated
by range(1, 20, 3). This range starts at 1, ends before 20, and increments by 3 in each step.
During each iteration, the current value of x is printed followed by a comma due to
the end=',' parameter in the print function. Therefore, the output is 1,4,7,10,13,16,19, showing
the sequence of numbers separated by commas.
Question 10
1. Sequential statements
2. Conditional statements.
3. Iterative statements
4. Loop statement
Answer
Conditional statements.
Question 1
Assertion (A): When a set of statements is indented under the same block, starting from the
same indentation, it is said to be a compound statement.
Reasoning (R): Compound Statement begins with a header ending with a colon (:) sign and the
statements under the same indentation are marked as a block.
Explanation
A compound statement in Python is formed when multiple statements are grouped together under
the same block of indentation. The header line begins with a keyword and ends with a colon (:).
Subsequent statements that are indented under the same level are considered part of the block.
Question 2
Reasoning (R): A statement or statements (block of code) are indented (usually 4 spaces) inside
the if statement and are executed only if the condition evaluates to true, otherwise they are
ignored.
Answer
Explanation
The if statement in Python allows conditional flow of control. It evaluates a condition and
executes one or more statements based on whether the condition is true or false. If the condition
evaluates to true, the statement block following the if statement (indented code) gets executed,
otherwise, if the condition is false, that block is skipped, and the program continues with the next
statement after the if block.
Question 3
Assertion (A): In an if-else statement, the if block checks the true part whereas else checks for
the false part.
Answer
A is true but R is false.
Explanation
In an if-else statement, the if block checks if a condition is true and will execute a block of
statements and if the condition is false, it won't execute that block. The else part executes a
block of code when the if condition is false. In a conditional construct, the else block is not
mandatory.
Question 4
Assertion (A): When a Python code is unable to accept an input, it results in runtime error.
Reasoning (R): Runtime error arises due to incorrect statement that results in no output.
Answer
Explanation
When a Python code is unable to accept an input, it results in a runtime error. Runtime errors
arise due to issues that occur while the program is running, such as attempting to use invalid
operations on data types. In contrast, syntax error arises due to incorrect statement that results in
no output.
Question 5
Assertion (A): The break and continue statements are known as jump statements.
Reasoning (R): Jump statements are used only with looping constructs and not with conditional
constructs.
Answer
Question 6
Assertion (A): The range() method is used with both for and while loops.
Reasoning (R): By default, the values for start and step are 0 (zero) and 1 (one), respectively.
Answer
Explanation
The range() function is used with for loops to iterate over a sequence of numbers, not
with while loops. By default, the values for start and step are 0 (zero) and 1 (one), respectively.
Question 7
Assertion (A): The for loop is described as finite loop and while loop is described as unknown
or indefinite iterative construct.
Reasoning (R): You cannot use while loop for menu-driven programs.
Answer
Explanation
The for loop is described as a finite loop because it iterates over a sequence of elements with a
known length. The while loop is described as an indefinite iterative construct because it
continues to execute as long as a condition is true, without a predetermined number of iterations.
We can use a while loop for menu-driven programs to repeatedly display a menu and process
user input until a certain condition is met.
Question 8
Assertion (A): Indentation is a very important factor while writing a program in Python.
Reasoning (R): Indentation refers to the spaces at the beginning of a code line. Multiple
statements with the same indent are classified as a block of code.
Answer
Explanation
Indentation is a very important factor while writing a program in Python because it defines the
structure and grouping of code blocks. Indentation refers to the spaces at the beginning of a code
line, and multiple statements with the same indent level are classified as a block of code.
Question 1
Answer
Question 2
(a) Marks are greater than or equal to 70 but less than 100.
Answer
Question 3
Find error in the following code (if any) and correct it by rewriting the code and underline the
corrections:
Error 4 — The print statement should be in lowercase letters and there should be parentheses
around the print statement.
Error 5 — The print statement should be in lowercase letters and there should be parentheses
around the print statement.
Question 4(a)
Output
Explanation
In the above code, num1 += num2 + num3 is a shorthand notation for num1 = num1 + num2 +
num3.
Given,
num1 = 4
num2 = 3
num3 = 2
First, the expression num2 + num3 is evaluated:
num2 + num3 = 3 + 2 = 5
Now the expression becomes:
num1 = num1 + 5
which translates to:
num1 = 4 + 5 = 9
Question 4(b)
1024
Explanation
In the given code, num1 = num1 ** (num2 + num3) calculates the result of raising num1 to the
power of the sum of num2 and num3. The expression becomes 4 ** (3 + 2), which simplifies to 4
** 5. Evaluating 4 ** 5 results in 1024, so the output of print(num1) is 1024.
Question 4(c)
There is an error in the given code because the variable c is not defined. This will raise a
NameError at runtime.
Question 4(d)
Output
55
Explanation
The expression '5' + '5' performs string concatenation as they are enclosed in quotes.
Therefore, '5' and '5' are concatenated to form the string '55', which is then assigned to num1.
The print(num1) statement outputs the string '55'.
Question 4(e)
print(4.00 / (2.0+2.0))
Answer
Output
1.0
Explanation
2.0 + 2.0
This calculation is straightforward:
print(1.0)
Therefore, the output of the given code snippet is:
1.0
Question 4(f)
num1 = 2 + 9 * ((3*12)-8)/10
print(num1)
Answer
Output
27.2
Explanation
num1 = 2 + 9 * ((3*12)-8)/10
Let's calculate this step by step, following the precedence of operators in Python:
3 * 12 = 36
2. Replace and continue evaluating inside the parentheses:
252 / 10 = 25.2
5. Finally, add 2:
2 + 25.2 = 27.2
The print(num1) statement outputs 27.2
Question 4(g)
num1 = float(10)
print(num1)
Answer
Output
10.0
Explanation
The float(10) function converts the integer 10 to the floating-point number 10.0.
Therefore, num1 is assigned the value 10.0.
Question 4(h)
num1 = int('3.14')
print(num1)
Answer
The code will raise a Error because we cannot convert the string '3.14' to an integer directly
using int() function in Python due to the presence of a decimal point. Python expects the string
to represent a whole number when converting to an integer.
Question 4(i)
True
Explanation
The expression 10 != 9 and 20 >= 20 evaluates to True because both conditions separated by
the and operator are true. Specifically, 10 != 9 is true because 10 is not equal to 9, and 20 >=
20 is true because 20 is equal to 20.
Question 4(j)
Output
True
Explanation
Question 5
Answer
The else statement is a default condition that executes when the preceding if and elif (if any)
conditions evaluate to False. It does not take any conditions and is written simply as else:,
followed by an indented block of code. On the other hand, elif is used to check additional
conditions after the initial if statement. If the if condition is False, Python evaluates
the elif condition. It is followed by a condition and ends with a colon (:), followed by a block
of code.
Question 6(a)
Output
20
22
24
26
28
Explanation
1. range(20, 30, 2): This generates a sequence of numbers starting from 20 (inclusive)
up to but not including 30 (exclusive), incrementing by 2 each time.
The general form of the range function is range(start, stop, step),where:
o start is the starting number of the sequence.
o stop is the endpoint (the number is not included in the sequence).
o step specifies the increment between each number in the sequence.
2. for i in range(20, 30, 2):: The for loop iterates over each number generated by
the range function and assigns it to the variable i during each iteration.
3. print(i): This prints the current value of i for each iteration.
Let's list the numbers generated by range(20, 30, 2):
Start at 20.
Increment by 2: 20 + 2 = 22.
Increment by 2: 22 + 2 = 24.
Increment by 2: 24 + 2 = 26.
Increment by 2: 26 + 2 = 28.
The next increment would be 28 + 2 = 30, but 30 is not included as the stop parameter is
exclusive of the value.
Therefore, the sequence of numbers is: 20, 22, 24, 26, 28.
Question 6(b)
country = 'INDIA'
for i in country:
print (i)
Answer
Output
I
N
D
I
A
Explanation
1. String Assignment:
country = 'INDIA'
This line assigns the string 'INDIA' to the variable country.
2. for i in country:: The for loop iterates over each character in the string country. The
variable i will take on the value of each character in the string one at a time.
3. print(i): This prints the current character stored in the variable i for each iteration.
Let’s analyze the loop iteration by iteration:
Putting it all together, the output will be each character of the string 'INDIA' printed on a new
line:
I
N
D
I
A
Question 6(c)
i = 0; sum = 0
while i < 9:
if i % 4 == 0:
sum = sum + i
i = i + 2
print (sum)
Answer
Output
12
Explanation
1. Initial Assignments:
i = 0
sum = 0
Two variables are initialized: i is set to 0, and sum is set to 0.
2. while i < 9: → This loop continues to execute as long as i is less than 9.
3. Inside the while loop:
12
Question 7(a)
for i in '123' :
print ("Message",i,)
Answer
Output
Message 1
Message 2
Message 3
Explanation
The code uses a for loop to iterate over each character in the string '123'. During each iteration,
it prints the string "Message" followed by the current character i.
Question 7(b)
for i in [100,200,300] :
print (i)
Answer
Output
100
200
300
Explanation
The above code iterates through each element in the list [100, 200, 300] using a for loop. During
each iteration, it prints the current element i.
Question 7(c)
Output
20
16
Explanation
1. range(10, 6, -2): This generates a sequence of numbers starting from 10 (inclusive) and
decreases by 2 each time, stopping before it reaches 6 (exclusive).
The general form of the range function is range(start, stop, step), where:
Start at 10.
Decrement by 2: 10 - 2 = 8.
The next decrement would be 8 - 2 = 6, but 6 is not included as it is exclusive.
3. for j in range(10, 6, -2):: The for loop iterates over each number in the sequence
generated by the range function.
4. print(j * 2): This prints the value of j multiplied by 2 for each iteration.
Let’s analyze the loop iteration by iteration:
print(10 * 2)
This prints:
20
Second iteration (j = 8):
print(8 * 2)
This prints:
16
Putting it all together, the full output will be:
20
16
Question 7(d)
Output
1 1
2 1
2 2
3 1
3 2
3 3
4 1
4 2
4 3
4 4
5 1
5 2
5 3
5 4
5 5
Explanation
This loop iterates over the range of numbers starting from 1 up to but not including 6. So, x will
take on the values: 1, 2, 3, 4, 5.
For each value of x in the outer loop, y will iterate over the range of numbers starting from 1 up
to and including x (since x + 1 is exclusive).
3. print(x, ' ', y)
1 1
2 1
2 2
3 1
3 2
3 3
4 1
4 2
4 3
4 4
5 1
5 2
5 3
5 4
5 5
Question 7(e)
Output
10
11
12
13
14
Explanation
The code starts a for loop where x iterates over the range from 10 to 19. Within each iteration, it
checks if x is equal to 15. If true, the break statement exits the loop. Therefore, the loop prints
numbers from 10 to 14, each on a new line.
Question 7(f)
Output
11
13
15
17
19
Explanation
1. for x in range(10, 20): → This loop iterates over the range of numbers starting
from 10 (inclusive) up to but not including 20 (exclusive). So, x will take on the values:
10, 11, 12, 13, 14, 15, 16, 17, 18, 19.
2. if x % 2 == 0: → For each value of x, this condition checks if x is an even number.
The modulus operator % returns the remainder of x divided by 2. If the remainder is 0, x is
even.
3. continue → If the condition x % 2 == 0 is true (i.e., x is even), the continue statement
is executed. This statement skips the rest of the code inside the loop for the current
iteration and moves to the next iteration.
4. print(x) → This line prints the value of x if it is not even (i.e., if
the continue statement is not executed).
Let’s analyze the loop iteration by iteration:
When x = 10:
o 10 % 2 == 0 is true.
o continue is executed, so print(x) is skipped.
When x = 11:
o 11 % 2 == 0 is false.
o print(x) outputs:
o 11
When x = 12:
o 12 % 2 == 0 is true.
o continue is executed, so print(x) is skipped.
When x = 13:
o 13 % 2 == 0 is false.
o print(x) outputs:
o 13
When x = 14:
o 14 % 2 == 0 is true.
o continue is executed, so print(x) is skipped.
When x = 15:
o 15 % 2 == 0 is false.
o print(x) outputs:
o 15
When x = 16:
o 16 % 2 == 0 is true.
o continue is executed, so print(x) is skipped.
When x = 17:
o 17 % 2 == 0 is false.
o print(x) outputs:
o 17
When x = 18:
o 18 % 2 == 0 is true.
o continue is executed, so print(x) is skipped.
When x = 19:
o 19 % 2 == 0 is false.
o print(x) outputs:
o 19
Putting all these outputs together, the full output will be:
11
13
15
17
19
Question 8
if x > 10:
if x > 25:
print ( 'ok' )
if x > 60:
print ( 'good' )
elif x > 40:
print ( 'average' )
else:
print ('no output')
Answer
Output
ok
average
Explanation
1. if x > 10:
o The condition checks if x is greater than 10.
o Since x = 50, which is greater than 10, this condition is true.
2. Nested if x > 25:
o Since the outer condition is true, the program proceeds to this nested condition, which
checks if x is greater than 25.
o Since x = 50, which is greater than 25, this condition is also true.
o Consequently, it prints ok
3. Nested if x > 60:
o After printing 'ok', the program checks this nested condition, which verifies if x is
greater than 60.
o Since x = 50, which is not greater than 60, this condition is false.
o Therefore, the program proceeds to the elif part.
4. Nested elif x > 40:
o This condition checks if x is greater than 40.
o Since x = 50, which is greater than 40, this condition is true.
o Consequently, it prints average
5. The else block
o The else block is not executed because the elif x > 40: condition was true.
Question 9
Output
o o
Explanation
1. Outer Loop: for i in range(2): → This loop iterates over the range of numbers
starting from 0 up to but not including 2. So, i will take on the values: 0, 1.
2. Inner Loop: for j in range(1): → For each value of i in the outer loop, j will
iterate over the range of numbers starting from 0 up to but not including 1. So, j will take
on the only value: 0.
3. if i + 2 == j: → This condition checks if i + 2 is equal to j.
4. print("+", end=" ") → If the condition i + 2 == j is true, this statement prints a
"+", followed by a space, without moving to a new line.
5. print("o", end=" ") → If the condition i + 2 == j is false, this statement prints an
"o", followed by a space, without moving to a new line.
Let’s analyze the loops iteration by iteration:
So, combining the outputs of all iterations, the full output will be:
o o
Each "o" is followed by a space, and there is no new line between them due to the end="
" parameter in the print function.
Question 10
Solution
Output
10
12
14
16
18
20
Question 11
Solution
print("Select operation:")
print("1. Add")
print("2. Subtract")
print("3. Multiply")
print("4. Divide")
if choice == '1':
result = num1 + num2
print(num1, "+", num2, "=", result)
elif choice == '2':
result = num1 - num2
print(num1, "-", num2, "=", result)
elif choice == '3':
result = num1 * num2
print(num1, "*", num2, "=", result)
elif choice == '4':
if num2 != 0:
result = num1 / num2
print(num1, "/", num2, "=", result)
else:
print("Division by zero is not allowed.")
else:
print("Invalid input")
Output
Select operation:
1. Add
2. Subtract
3. Multiply
4. Divide
Enter choice (1/2/3/4): 1
Enter first number: 23
Enter second number: 45
23.0 + 45.0 = 68.0
Select operation:
1. Add
2. Subtract
3. Multiply
4. Divide
Enter choice (1/2/3/4): 2
Enter first number: 48
Enter second number: 23
48.0 - 23.0 = 25.0
Select operation:
1. Add
2. Subtract
3. Multiply
4. Divide
Enter choice (1/2/3/4): 3
Enter first number: 3
Enter second number: 6
3.0 * 6.0 = 18.0
Select operation:
1. Add
2. Subtract
3. Multiply
4. Divide
Enter choice (1/2/3/4): 4
Enter first number: 245
Enter second number: 5
245.0 / 5.0 = 49.0
Question 12
Solution
Output
Solution
Output
Question 14
Solution
def prime_numbers():
for num in range(2, 30):
for i in range(2, num):
if num % i == 0:
break
else:
print(num)
prime_numbers()
Output
2
3
5
7
11
13
17
19
23
29
Question 15
WAP to print the sum of the series 1 - x1/2! + x2/3! - x3/4! ............... xn/(n + 1)! — exponential
series.
Solution
x = int(input("Enter x: "))
n = int(input("Enter n: "))
sum_series = 1
sign = -1
Output
Enter x: 2
Enter n: 3
Sum = 0.3333333333333333
Question 16
WAP to print the sum of the series 1 - x2/4! + x3/6! - x4/8! + x5/10! ............... xn/(2n)! —
exponential series.
Solution
x = int(input("Enter x: "))
n = int(input("Enter n: "))
sum_series = 1
sign = -1
Output
Enter x: 2
Enter n: 3
Sum = 0.8444444444444444
Question 17
Sum = 1 + (1 + 2) + (1 + 2 + 3) + (1 + 2 + 3.....n)
Solution
sum = 0
for i in range(1, n + 1):
for j in range(1, i + 1):
sum += j
Output
Question 18(a)
*
* *
* * *
* * * *
* * * * *
Solution
n = 5
Output
*
* *
* * *
* * * *
* * * * *
Question 18(b)
A
B B
C C C
D D D D
E E E E E
Solution
n = 5
for i in range(n):
for j in range(i + 1):
print(chr(65 + i), end=" ")
print()
Output
A
B B
C C C
D D D D
E E E E E
Question 18(c)
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
Solution
n = 5
Output
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1