KnowledgeBoat Logo
|
OPEN IN APP

Chapter 9

Flow of Control

Class 11 - Computer Science with Python Sumita Arora



Checkpoint 9.1

Question 1

What is a statement ? How many types of statements are there in Python ?

Answer

Statements are the instructions given to the computer to perform any kind of action, be it data movements, and be it making decisions or be it repeating actions.

There are three types of statements in Python:

  1. Empty Statement
  2. Simple Statement (Single Statement)
  3. Compound Statement

Question 2

What is the significance of a pass statement ?

Answer

The pass statement of Python is a do nothing statement, i.e., an empty statement or null operation statement. It is used where the syntax of the language requires the presence of a statement but where the logic of the program does not.

Question 3

What is a compound statement ? Give example of a compound statement.

Answer

A compound statement represents a group of statements executed as a unit.

For example,

if x > 0:  
    print("Positive")  
else:  
    print("Non-positive")

In this example, the if-else block is a compound statement, as it contains multiple statements within it.

Question 4

What are the three constructs that govern statement flow ?

Answer

The three constructs that govern statement flow in Python are:

  1. Sequential construct
  2. Selection construct
  3. Repetition/Iteration construct

Question 5

What is the need for selection and looping constructs ?

Answer

Selection constructs enable decision-making by executing code based on conditions, while looping constructs allow repetitive execution of code blocks.

Checkpoint 9.2

Question 1

What is a selection statement ? Which selection statements does Python provide ?

Answer

A selection statement in Python is a control structure that allows the execution of specific blocks of code based on certain conditions.

Python provides the following selection statements:

  1. if statement
  2. if-else statement
  3. if-elif statement
  4. nested if statement

Question 2

How does a conditional expression affect the result of if statement ?

Answer

If a condition evaluates to True, a course-of-action (a set of statements) is followed; otherwise, another course-of-action (a different set of statements) is followed.

Question 3

Correct the following code fragment :

if (x = 1)
   k = 100
else
   k = 10

Answer

The above code fragment should use "==" for comparison instead of "=" for assignment, and it should include a colon (:) after the if and else statements.

The corrected code is:

if (x == 1):
   k = 100
else:
   k = 10

Question 4

What will be the output of following code fragment if the input given is (i) 7 (ii) 5 ?

a = input('Enter a number')
if (a == 5):
   print("Five")
else:
   print("Not Five")

Answer

(i)

Output
Enter a number7
Not Five
Explanation

The output will be Not Five because the condition a == 5 evaluates to False.

(ii)

Output
Enter a number5
Not Five
Explanation

The output will be Not Five because the input from input() is a string, and comparing a string ('5') to an integer (5) evaluates to False.

Question 5

What will be the output of the following code fragment if the input given is (i) 2000 (ii) 1900 (iii) 1971 ?

year = int(input("Enter 4-digit year"))
if (year % 100 == 0):
   if (year % 400 == 0):
      print("LEAP century year")
else:
   print("Not century year")

Answer

(i)

Output
Enter 4-digit year2000
LEAP century year
Explanation

For input 2000:

  • The first condition year % 100 == 0 evaluates to True.
  • The second condition year % 400 == 0 also evaluates to True.
  • Output: LEAP century year

(ii)

Output
Enter 4-digit year1900
Explanation

For input 1900:

  • The first condition year % 100 == 0 evaluates to True.
  • The second condition year % 400 == 0 evaluates to False.
  • Output: (No output; the program does not print anything for this case, as it does not have else block.)

(iii)

Output
Enter 4-digit year1971
Not century year
Explanation

For input 1971:

  • The first condition year % 100 == 0 evaluates to False.
  • Output: Not century year (Since the first condition is False, the program skips the nested if and goes to the else block, printing "Not century year".)

Question 6

What will be the output of the following code fragment if the input given is (i) 2000 (ii) 1900 (iii) 1991 ?

year = int(input("Enter 4-digit year"))
if(year % 100 == 0):
   if(year % 400 == 0):
      print("LEAP century year")
   else:
      print("Not century year")

Answer

(i)

Output
Enter 4-digit year2000 
LEAP century year
Explanation

For input 2000:

  • The first condition year % 100 == 0 evaluates to True.
  • The second condition year % 400 == 0 also evaluates to True. Output: LEAP century year

(ii)

Output
Enter 4-digit year1900
Not century year
Explanation

For input 1900:

  • The first condition year % 100 == 0 evaluates to True.
  • The second condition year % 400 == 0 evaluates to False.
  • Output: Not century year

(iii)

Output
Enter 4-digit year1991
Explanation

For input 1991:

  • The first condition year % 100 == 0 evaluates to False.
  • Since the first condition is False, the code block does not execute, and there is no output.

Checkpoint 9.3

Question 1

What are iteration statements ? Name the iteration statements provided by Python.

Answer

The iteration statements or repetition statements allow a set of instructions to be performed repeatedly until a certain condition is fulfilled.

In Python, the iteration statements provided are:

  1. The for loop
  2. The while loop

Question 2

What are the two categories of Python loops ?

Answer

The two categories of Python loops are as follows:

  1. Counting loops
  2. Conditional loops

Question 3

What is the use of range() function ? What would range(3, 13) return ?

Answer

The range() function of Python generates a list which is a special sequence type. It can be utilized in for loops to iterate over a specified range.

The range(3, 13) would generate a sequence of numbers starting from 3 up to 12.

Output
3, 4, 5, 6, 7, 8, 9, 10, 11, 12

Question 4

What is the output of the following code fragment ?

for a in "abcde":
   print(a, '+', end = '')

Answer

Output
a +b +c +d +e +
Explanation
  • The for loop iterates over each character in the string "abcde".
  • During each iteration, it prints the character followed by '+' without moving to a new line due to the end='' parameter in the print() function.
  • As a result, all characters are printed on the same line, separated by '+'.

Question 5

What is the output of the following code fragment ?

for i in range(0, 10):
   pass
print(i)

Answer

Output
9
Explanation
  • The for loop iterates over the range generated by range(0, 10), which produces numbers from 0 to 9.
  • The pass statement is a placeholder that does nothing; thus, the loop runs through all iterations without performing any action.
  • After the loop finishes, the variable i retains the last value assigned to it, which is 9.
  • When print(i) is executed, it outputs the value of i, which is 9.

Question 6

Why does "Hello" not print even once ?

for i in range(10, 1):
   print("Hello")

Answer

The string "Hello" does not print even once because the range(10, 1) generates an empty sequence. In this case, range(10, 1) means we want to start at 10 and go up to 1, but since 10 is greater than 1, there are no numbers in this range. As a result, the loop does not iterate, and the print("Hello") statement is never executed.

Question 7

What is the output of following code ?

for a in range(2, 7):
   for b in range(1, a):
      print('#', end = '')
   print()

Answer

Output
#
##
###
####
#####
Explanation
  • The outer loop for a in range(2, 7) iterates with a taking values from 2 to 6.

  • The inner loop for b in range(1, a) iterates from 1 to a-1. This means:

    • When a = 2, b takes values from 1, printing # once.
    • When a = 3, b takes values from 1 to 2, printing # twice.
    • When a = 4, b takes values from 1 to 3, printing # three times.
    • When a = 5, b takes values from 1 to 4, printing # four times.
    • When a = 6, b takes values from 1 to 5, printing # five times.
  • After each inner loop, print() is called without arguments to move to the next line, resulting in a new line after each row of #.

Question 8

Write a for loop that displays the even numbers from 51 to 60.

Answer

for i in range(51, 61):
   if i % 2 == 0:
      print(i)
Output
52
54
56
58
60

Question 9

Suggest a situation where an empty loop is useful.

Answer

An empty loop can be useful in situations where we need to wait for a specific condition to be met before proceeding with the next steps in our program.

For example,

a = False
while not a:
    pass  
print("Sensor is ready. Reading data...")

In this example, the loop runs continuously without doing anything (empty loop) until the variable a is set to True.

Question 10

What is the similarity and difference between for and while loop ?

Answer

Similarity:

Both for and while loops are used for iteration in Python, allowing us to execute a block of code repeatedly based on a condition or a sequence.

Differences:

Python's for loop is a counting loop (or count-controlled loop), the loops that repeat a certain number of times.

Python's while loop is conditional loop, the loops that repeat until a certain thing happens i.e., they keep repeating as long as some condition is True.

Question 11

Why is while loop called an entry controlled loop ?

Answer

In a while loop, the control in the form of a condition check occurs at the entry of the loop. If the condition evaluates to false, the loop is not entered at all. This makes it an example of an entry-controlled loop or pre-condition loop. An entry-controlled loop is defined as a loop that determines whether to enter its body by testing a condition before execution.

Question 12

If the test-expression of a while loop evaluates to false in the beginning of the loop, even before entering in to the loop :

(a) how many times is the loop executed ?

(b) how many times is the loop-else clause executed ?

Answer

(a) The loop is executed 0 times. Since the condition is false initially, the body of the loop will not be executed at all.

(b) The loop-else clause is executed 1 time. In Python, the else block with a while loop executes when the loop terminates normally (not through a break statement). If the loop does not execute due to the condition being false from the beginning, the else clause will still run once after the loop.

Question 13

What will be the output of following code :

while (6 + 2 > 8):
   print("Gotcha !")
else:
   print("Going out!")

Answer

Output
Going out!
Explanation
  • The condition in the while loop is 6 + 2 > 8. Evaluating this gives 8 > 8, which is False.
  • Since the condition evaluates to False from the beginning, the body of the while loop (print("Gotcha !")) will not execute at all.
  • The else block associated with the while loop will execute because the loop did not run (the condition was false).

Question 14

What is the output produced by following loop ?

for a in (2, 7):
   for b in (1, a):
      print(b, end = '')
      print()

Answer

Output
1
2
1
7
Explanation
  1. Outer Loop:
  • The outer loop iterates over the values 2 and 7.
  • The variable a will take the value 2 in the first iteration and 7 in the second iteration.
  1. Inner Loop:
  • For each value of a, the inner loop iterates over the values 1 and a.
  • The inner loop prints b for each of these values.

Iterations:

  • First iteration of the outer loop (a = 2):

    • Inner loop iterates over 1 and 2:
      • For b = 1:
        • print(b, end = '') prints 1 without a newline.
        • print() moves to the next line.
      • For b = 2:
        • print(b, end = '') prints 2 without a newline.
        • print() moves to the next line.
  • Second iteration of the outer loop (a = 7):

    • Inner loop iterates over 1 and 7:
      • For b = 1:
        • print(b, end = '') prints 1 without a newline.
        • print() moves to the next line.
      • For b = 7:
        • print(b, end = '') prints 7 without a newline.
        • print() moves to the next line.

Hence, the output produced by the loop is:

1
2
1
7

Question 15

What is the significance of break and continue statements ?

Answer

The break statement allows a program to exit a loop immediately, terminating the loop in which it resides. Execution then resumes at the statement immediately following the terminated loop. On the other hand, the continue statement forces the next iteration of the loop to take place, skipping any code in between.

Question 16

Can a single break statement in an inner loop terminate all the nested loops ?

Answer

No, a single break statement in an inner loop cannot terminate all the nested loops, it only terminates the innermost loop in which it resides. When the break statement is executed, control exits only that specific loop, and execution resumes in the next statement following that loop.

Multiple Choice Questions

Question 1

In a Python program, a control structure:

  1. directs the order of execution of the statements in the program
  2. dictates what happens before the program starts and after it terminates
  3. defines program-specific data structures
  4. manages the input and output of control characters

Answer

directs the order of execution of the statements in the program

Reason — Control structures, such as loops and conditional statements, determine the flow of execution based on specified conditions, allowing the program to execute certain blocks of code while skipping or repeating others.

Question 2

An empty/null statement in Python is

  1. go
  2. pass
  3. over
  4. ;

Answer

pass

Reason — An empty/null statement in Python is the pass statement.

Question 3

The order of statement execution in the form of top to bottom, is known as .......... construct.

  1. selection
  2. repetition
  3. sequence
  4. flow

Answer

sequence

Reason — The sequence construct means that statements are executed sequentially, from top to bottom. Every Python program begins with the first statement, and each subsequent statement is executed in order. When the final statement of the program is executed, the program concludes.

Question 4

The .......... construct allows to choose statements to be executed, depending upon the result of a condition.

  1. selection
  2. repetition
  3. sequence
  4. flow

Answer

selection

Reason — The selection construct means the execution of statements depending upon a condition-test. If a condition evaluates to True, a course-of-action (a set of statements) is followed otherwise another course-of-action (a different set of statements) if followed.

Question 5

The .......... construct repeats a set of statements a specified number of times or as long as a condition is true.

  1. selection
  2. repetition
  3. sequence
  4. flow

Answer

repetition

Reason — The repetition construct refers to the repeated execution of a set of statements based on a condition test. As long as the condition remains True (or False, depending on the loop), the set of statements is executed repeatedly. Once the condition changes to False (or True), the repetition stops.

Question 6

Which of the following statements will make a selection construct?

  1. if
  2. if-else
  3. for
  4. while

Answer

if, if-else

Reason — The if and if-else statements are used to create selection constructs in Python. These constructs allow the program to execute specific blocks of code based on whether a given condition evaluates to True or False.

Question 7

Which of the following statements will make a repetition construct?

  1. if
  2. if-else
  3. for
  4. while

Answer

for, while

Reason — The for and while statements are used to create repetition constructs in Python. These constructs allow a block of code to be executed multiple times based on a specified number of iterations or as long as a condition remains true.

Question 8

In Python, which of the following will create a block in a compound statement ?

  1. colon
  2. statements indented at a lower, same level
  3. indentation in any form
  4. { }

Answer

statements indented at a lower, same level

Reason — In Python, statements indented at the same level under a header line create a block in a compound statement.

Question 9

What signifies the end of a statement block or suite in Python ?

  1. A comment
  2. }
  3. end
  4. A line that is indented less than the previous line

Answer

A line that is indented less than the previous line

Reason — In Python, the end of a statement block or suite is signified by a line that is indented less than the previous line. T

Question 10

Which one of the following if statements will not execute successfully ?

if (1, 2):  
   print('foo')
if (1, 2)
   print('foo')
if (1, 2):
print('foo')
if (1):  
   print('foo')  

Answer

if (1, 2)
   print('foo')
if (1, 2):
print('foo')

Reason —

if (1, 2)
   print('foo')
  • The above code lacks a colon (:) after the if statement, which is required in Python to indicate the start of a block.
if (1, 2) :
print('foo')
  • The above code is incorrectly indented. In Python, the statement inside the if block must be indented properly to signify it's part of the block.

Question 11

What does the following Python program display ?

x = 3                                
if x == 0:                          
   print ("Am I here?", end = ' ')   
elif x == 3:                         
   print("Or here?", end = ' ')
else :                               
   pass                             
print ("Or over here?")
  1. Am I here?
  2. Or here?
  3. Am I here? Or here?
  4. Or here? Or over here?
  5. Am I here? Or over here?

Answer

Or here? Or over here?

Reason —

  1. x = 3 — The variable x is assigned the value 3.

  2. if x == 0: — The program checks if x is equal to 0. Since x is 3, this condition is False, so the code inside this if block is skipped.

  3. elif x == 3: — Since the first if condition was False, the program moves to the elif block.

  • The condition x == 3 is True because x is indeed 3.
  • The program executes the print("Or here?", end = ' ') statement, which prints "Or here?" to the console without moving to a new line (due to end = ' ').
  1. else: — The else block is skipped because the elif condition was True.

  2. pass — The pass statement is used here to indicate that the else block is left empty.

  3. print("Or over here?") — After the if-elif-else structure, this print statement executes, printing "Or over here?" on the same line as "Or here?" because the end=' ' in the previous print statement prevented a line break.

Question 12

If the user inputs : 2<ENTER>, what does the following code snippet print?

x = float(input())
if(x==1):
   print("Yes")
elif (x >= 2):
   print("Maybe")
else:
   print ("No")
  1. Yes
  2. No
  3. Maybe
  4. Nothing is printed
  5. Error

Answer

Maybe

Reason — The code snippet prompts the user to input a number, which is converted to a float and stored in variable x. It then checks the value of x using conditional statements: if x equals 1, it prints "Yes"; if x is greater than or equal to 2, it prints "Maybe"; otherwise, it prints "No." For an input of 2, the output will be "Maybe" since the condition x >= 2 evaluates to true.

Question 13

Consider the following code segment:

a = int(input("Enter an integer: "))
b = int(input("Enter an integer: "))
if a <= 0:
   b = b +1
else:
   a = a + 1
if a > 0 and b > 0: 
   print ("W") 
elif a > 0:
   print("X") 
if b > 0:
   print("Y") 
else:
   print("Z")

What letters will be printed if the user enters 0 for a and 0 for b ?

  1. Only W
  2. Only X
  3. Only Y
  4. W and X
  5. W, X and Y

Answer

Only Y

Reason — The given Python code prompts the user to enter two integers, a and b. If a is less than or equal to 0, the code increments b by 1. Since the user inputs 0 for both values, b becomes 1. The subsequent conditions check whether a and b are greater than 0. The first condition checks if both are positive, which evaluates to false because a is 0. The second condition checks if only a is positive, which also evaluates to false. Finally, the code checks if b is positive, which is true, so it prints "Y".

Question 14

Consider the following code segment:

a = int(input("Enter an integer: "))
b = int(input("Enter an integer: "))
if a <= 0:
   b = b +1
else:
   a = a + 1
if a > 0 and b > 0: 
   print ("W") 
elif a > 0:
   print("X") 
if b > 0:
   print("Y") 
else:
   print("Z")

What letters will be printed if the user enters 1 for a and 1 for b ?

  1. W and X
  2. W and Y
  3. X and Y
  4. X and Z
  5. W, X and Y

Answer

W and Y

Reason — When the user inputs 1 for both a and b, the code first checks if a is less than or equal to 0, which it isn't, so a is incremented by 1, resulting in a becoming 2. The variable b remains 1. Next, the code evaluates the condition if a > 0 and b > 0, which is true since both a and b are greater than 0, thus printing "W". Then, it evaluates if b > 0, which is also true, leading to "Y" being printed. Therefore, the final output is "W and Y".

Question 15

Consider the following code segment:

a = int(input("Enter an integer: "))
b = int(input("Enter an integer: "))
if a <= 0:
   b = b +1
else:
   a = a + 1
if a > 0 and b > 0: 
   print ("W") 
elif a > 0:
   print("X") 
if b > 0:
   print("Y") 
else:
   print("Z")

What letters will be printed if the user enters 1 for a and -1 for b?

  1. W and X
  2. X and Y
  3. Y and Z
  4. X and Z
  5. W and Z

Answer

X and Z

Reason — When the user inputs 1 for a and -1 for b, the code first checks if a is less than or equal to 0, which it isn't, so a is incremented by 1, resulting in a becoming 2. The variable b remains -1. Next, the code evaluates the condition if a > 0 and b > 0, which is false since b is not greater than 0, so it moves to the elif statement. The condition elif a > 0 is true, leading to "X" being printed. After that, it checks if b > 0, which is false (as b is -1), so it prints "Z". Therefore, the final output is "X and Z".

Question 16

Consider the following code segment:

a = int(input("Enter an integer: "))
b = int(input("Enter an integer: "))
if a <= 0:
   b = b +1
else:
   a = a + 1
if a > 0 and b > 0: 
   print ("W") 
elif a > 0:
   print("X") 
if b > 0:
   print("Y") 
else:
   print("Z")

What letters will be printed if the user enters 1 for a and 0 for b ?

  1. W and X
  2. X and Y
  3. Y and Z
  4. X and Z
  5. W and Z

Answer

X and Z

Reason — When the user inputs 1 for a and 0 for b, the code first checks if a is less than or equal to 0, which it isn't, so a is incremented to 2. Then, it evaluates if a > 0 and b > 0, since a is 2 (greater than 0) but b is 0 (not greater than 0), this condition is false. The elif a > 0 condition is true, leading to the printing of "X". Finally, the if b > 0 condition is false (since b is 0), triggering the else block to print "Z". Therefore, the output will be "X and Z".

Question 17

Consider the following code segment:

a = int(input("Enter an integer: "))
b = int(input("Enter an integer: "))
if a <= 0:
   b = b +1
else:
   a = a + 1
if a > 0 and b > 0: 
   print ("W") 
elif a > 0:
   print("X") 
if b > 0:
   print("Y") 
else:
   print("Z")

What letters will be printed if the user enters -1 for a and -1 for b?

  1. Only W
  2. Only X
  3. Only Y
  4. Only Z
  5. No letters are printed

Answer

Only Z

Reason — If the user inputs -1 for both a and b, the code first checks if a <= 0, which is true, so b is incremented by 1, making b = 0. Next, it checks the condition if a > 0 and b > 0, but since both a and b are less than or equal to 0, this condition is false. The elif a > 0 is also false, so neither "W" nor "X" is printed. The if b > 0 condition is false as well, leading to the else block, which prints "Z". Therefore, the only letter printed is "Z".

Question 18

What values are generated when the function range(6, 0, -2) is executed ?

  1. [4, 2]
  2. [4, 2, 0]
  3. [6, 4, 2]
  4. [6, 4, 2, 0]
  5. [6, 4, 2, 0, -2]

Answer

[6, 4, 2, 0]

Reason — When range(6, 0, -2) is executed, it generates values starting from 6, decreasing by 2 in each step, and stops just before reaching 0. The values generated are [6, 4, 2]. It does not include 0 since the end point is exclusive.

Question 19

Which of the following is not a valid loop in Python ?

  1. for
  2. while
  3. do-while
  4. if-else

Answer

do-while, if-else

Reason — In Python, for and while are valid loop constructs, while if-else is used for conditional statements, not loops. Python does not have a do-while loop construct like some other programming languages.

Question 20

Which of the following statement(s) will terminate the whole loop and proceed to the statement following the loop ?

  1. pass
  2. break
  3. continue
  4. goto

Answer

break

Reason — The break statement can terminate a loop immediately and the control passes over to the statement following the statement containing break.

Question 21

Which of the following statement(s) will terminate only the current pass of the loop and proceed with the next iteration of the loop?

  1. pass
  2. break
  3. continue
  4. goto

Answer

continue

Reason — The continue statement abandons the current iteration of the loop by skipping over the rest of the statements in the loop-body. It immediately transfers control to the beginning of the next iteration of the loop.

Question 22

Function range(3) is equivalent to :

  1. range(1, 3)
  2. range(0, 3)
  3. range(0, 3, 1)
  4. range(1, 3, 0)

Answer

range(0, 3), range(0, 3, 1)

Reason —

  • range(3) generates numbers from 0 up to 3, producing the sequence [0, 1, 2]. The starting value is 0, and since no step size is specified, the default step is 1.
  • range(0, 3) also starts at 0 and ends at 3, producing the same [0, 1, 2]. Since no step size is specified, the default step is 1.
  • range(0, 3, 1) specifies both the starting point (0) and the step size (1), which again results in the sequence [0, 1, 2].

Therefore, both range(0, 3) and range(0, 3, 1) are equivalent to range(3).

Question 23

Function range(3) will yield an iterable sequence like

  1. [0, 1, 2]
  2. [0, 1, 2, 3]
  3. [1, 2, 3]
  4. [0, 2]

Answer

[0, 1, 2]

Reason — The range(3) function in Python generates a sequence starting from 0 and ending at 2, it yields [0, 1, 2]. The default starting value is 0, and the default step is 1, so it counts up by 1.

Question 24

Function range(0, 5, 2) will yield on iterable sequence like

  1. [0, 2, 4]
  2. [1, 3, 5]
  3. [0, 1, 2, 5]
  4. [0, 5, 2]

Answer

[0, 2, 4]

Reason — The range(0, 5, 2) function generates a sequence starting from 0, up to 4, with a step of 2. This results in the sequence [0, 2, 4].

Question 25

Function range(10, 5, -2) will yield an iterable sequence like

  1. [10, 8, 6]
  2. [9, 7, 5]
  3. [6, 8, 10]
  4. [5, 7, 9]

Answer

[10, 8, 6]

Reason — The function range(10, 5, -2) generates a sequence starting from 10, decreasing by 2 at each step, and stopping just before 5. Hence, the sequence is [10, 8, 6].

Question 26

Function range(10, 5, 2) will yield an iterable sequence like

  1. []
  2. [10, 8, 6]
  3. [2, 5, 8]
  4. [8, 5, 2]

Answer

[]

Reason — The function range(10, 5, 2) generates an empty sequence because the starting point (10) is greater than the stopping point (5), and the step is positive (2).

Question 27

Consider the loop given below :

for i in range(-5) :
   print(i)

How many times will this loop run?

  1. 5
  2. 0
  3. infinite
  4. Error

Answer

0

Reason — The range(-5) call is intended to produce a sequence of numbers starting from 0 up to -5. However, since the starting point is greater than the endpoint, the result is an empty sequence. Therefore, the loop does not execute, and the print(i) statement is never reached, resulting in no output.

Question 28

Consider the loop given below :

for i in range(10, 5, -3) :
   print(i)

How many times will this loop run?

  1. 3
  2. 2
  3. 1
  4. Infinite

Answer

2

Reason — The loop runs 2 times. The range(10, 5, -3) generates a sequence starting from 10 up to 5, with a step of -3. The values produced are 10 and 7. Therefore, the loop executes only for the values 10 and 7, resulting in a total of 2 iterations.

Question 29

Consider the loop given below :

for i in range(3) :
   pass

What will be the final value of i after this loop ?

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

Answer

2

Reason — In the loop, the range(3) function generates the values 0, 1, and 2 sequentially. The loop iterates through these values, but since the pass statement is used, no action is taken during each iteration. After the loop completes, the last value assigned to i is 2 (the highest value in the range), so the final value of i will be 2.

Question 30

Consider the loop given below :

for i in range(7, 4, -2) :
   break

What will be the final value of i after this loop ?

  1. 4
  2. 5
  3. 7
  4. -2

Answer

7

Reason — In the loop, the range(7, 4, -2) function generates the sequence starting from 7 up to 4, with a step of -2. The first value generated is 7, but immediately, the break statement is executed, which terminates the loop before it can proceed to the next iteration. Therefore, the final value of i remains 7 after the loop exits.

Question 31

In for a in __________ : , the blank can be filled with

  1. an iterable sequence
  2. a range() function
  3. a single value
  4. an expression

Answer

an iterable sequence, a range() function

Reason — The blank can be filled with an iterable sequence or a range() function. An iterable sequence can include lists, tuples, strings, and dictionaries, which allow iteration over their elements. Similarly, the range() function generates a sequence of numbers that can be iterated over.

Question 32

Which of the following are entry controlled loops ?

  1. if
  2. if-else
  3. for
  4. while

Answer

for, while

Reason — The entry-controlled loops in Python are for and while loops. In these loops, the condition is evaluated before the loop body executes.

Question 33

Consider the loop given below. What will be the final value of i after the loop?

for i in range(10) :
   break
  1. 10
  2. 0
  3. Error
  4. 9

Answer

0

Reason — In the loop, the range(10) function generates a sequence of numbers starting from 0 up to 10. The first value produced by the loop is 0, but the break statement immediately terminates the loop before any further iterations can occur. Therefore, the final value of i remains 0 after the loop exits.

Question 34

The else statement can be a part of .......... statement in Python.

  1. if
  2. def
  3. while
  4. for

Answer

if, while, for

Reason — The else statement can be a part of if, while, and for statements in Python.

Question 35

Which of the following are jump statements ?

  1. if
  2. break
  3. while
  4. continue

Answer

break, continue

Reason — Python offers two jump statements to be used within loops to jump out of loop-iterations. These are break and continue statements.

Question 36

Consider the following code segment :

for i in range(2, 4):
   print(i)

What values(s) are printed when it executes?

  1. 2
  2. 3
  3. 2 and 3
  4. 3 and 4
  5. 2, 3 and 4

Answer

2 and 3

Reason — In the code, the range(2, 4) function generates a sequence of numbers starting from 2 up to 4, with a step of 1. This means the values produced by the loop are 2 and 3. When the loop executes, both values are printed, resulting in the output of 2 followed by 3.

Question 37

When the following code runs, how many times is the line "x = x * 2" executed?

x = 1
while ( x < 20 ):
   x = x * 2
  1. 2
  2. 5
  3. 19
  4. 4
  5. 32

Answer

5

Reason — In the code, the initial value of x is 1. The loop continues executing as long as x is less than 20. Each iteration doubles the value of x:

  • Iteration 1: x=1×2=2
  • Iteration 2: x=2×2=4
  • Iteration 3: x=4×2=8
  • Iteration 4: x=8×2=16
  • Iteration 5: x=16×2=32

After the fifth iteration, x becomes 32, which is not less than 20, so the loop terminates. Therefore, the line x = x * 2 is executed 5 times.

Question 38

What is the output when this code executes ?

x = 1
while (x <= 5):
   x + 1
print(x)
  1. 6
  2. 1
  3. 4
  4. 5
  5. no output

Answer

no output

Reason — In the code the line x + 1 does not change the value of x because it is simply an expression that is evaluated but not assigned back to x. As a result, x remains 1 throughout the loop, causing the condition x <= 5 to always be true, resulting in an infinite loop. Hence, there is no output generated.

Question 39

How many times does the following code execute ?

x = 1
while (x <= 5):
   x + 1
print(x)
  1. 6
  2. 1
  3. 4
  4. 5
  5. infinite

Answer

infinite

Reason — In the code the line x + 1 does not change the value of x because it is simply an expression that is evaluated but not assigned back to x. As a result, x remains 1 throughout the loop, causing the condition x <= 5 to always be true, resulting in an infinite loop.

Question 40

What is the output produced when this code executes?

i = 1
while (i <= 7):
   i*= 2
print(i)
  1. 8
  2. 16
  3. 4
  4. 14
  5. no output

Answer

8

Reason — In the code, the initial value of i is 1. The loop continues as long as i is less than or equal to 7. During each iteration, i is multiplied by 2:

  • Iteration 1: i=1×2=2
  • Iteration 2: i=2×2=4
  • Iteration 3: i=4×2=8

At this point, i becomes 8, which is greater than 7, so the loop exits. Finally, the print(i) statement outputs 8.

Question 41

Consider the following loop:

j = 10
while j >= 5:
   print("X")
   j=j-1

Which of the following for loops will generate the same output as the loop shown previously?

for j in range(-1, -5, -1):  
   print("X")
for j in range(0, 5):  
   print("X")
for j in range(10, -1, -2):
   print("X")
for j in range(10, 5):  
   print("X")
for j in range(10, 4, -1):  
   print("X")

Answer

for j in range(10, 4, -1):  
   print("X")

Reason — In the while loop, the variable j is initialized to 10. The loop continues to execute as long as j is greater than or equal to 5. In each iteration, it prints "X" and then decrements j by 1. The iterations proceed with j taking the values 10, 9, 8, 7, 6, and 5 before exiting the loop when j becomes 4. As a result, "X" is printed a total of 6 times.

The for loop starts with j initialized at 10 and counts down by 1 with each iteration, as specified by the range(10, 4, -1) function. This range generates values 10, 9, 8, 7, 6, 5. In each iteration, "X" is printed, resulting in 6 outputs of "X" just like in the while loop. Thus, both loops produce the same output.

Question 42

What is the output produced when this code executes?

a = 0
for i in range(4, 8):
   if i % 2 == 0:
      a = a + i
print(a) 
  1. 4
  2. 8
  3. 10
  4. 18

Answer

10

Reason — The code initializes a variable a to 0 and uses a for loop to iterate through the numbers generated by range(4, 8), which includes 4, 5, 6, and 7. Inside the loop, it checks if the current number i is even using the condition i % 2 == 0. If the condition is true, it adds the even number to a.

  • First Iteration (i = 4): 4 is even, so a becomes 0 + 4 = 4.
  • Second Iteration (i = 5): 5 is odd, so a remains 4.
  • Third Iteration (i = 6): 6 is even, so a becomes 4 + 6 = 10.
  • Fourth Iteration (i = 7): 7 is odd, so a remains 10.

After all iterations, the final value of a is printed, resulting in an output of 10.

Question 43

Which of the following code segments contain an example of a nested loop?

for i in range(10):  
   print(i)  
for j in range(10):  
   print(j)
for i in range(10): 
   print(i)
   for j in range(10):
      print(j)
for i in range(10):
   print(i)
   while i < 20: 
      print(i)
      i = i + 1
for i in range(10):  
   print(i)  
while i < 20:  
   print(i)

Answer

for i in range(10): 
   print(i)
   for j in range(10):
      print(j)
for i in range(10):
   print(i)
   while i < 20: 
      print(i)
      i = i + 1

Reason — The second and third code segments correctly illustrate examples of nested loops, as they both contain one loop inside another and the inner loop terminates before the outer loop.

Fill in the Blanks

Question 1

The if statement forms the selection construct in Python.

Question 2

The pass statement is a do nothing statement in Python.

Question 3

The for and while statements form the repetition construct in Python.

Question 4

Three constructs that govern the flow of control are sequence, selection/decision and repetition/iteration.

Question 5

In Python, indentation defines a block of statements.

Question 6

An if-else statement has less number of conditional checks than two successive ifs.

Question 7

The in operator tests if a given value is contained in a sequence or not.

Question 8

The two membership operators are in and not in.

Question 9

An iteration refers to one repetition of a loop.

Question 10

The for loop iterates over a sequence.

Question 11

The while loop tests a condition before executing the body-of-the-loop.

Question 12

The else clause can occur with an if as well as with loops.

Question 13

The else block of a loop gets executed when a loop ends normally.

Question 14

The else block of a loop will not get executed if a break statement has terminated the loop.

Question 15

The break statement terminates the execution of the whole loop.

Question 16

The continue statement terminates only a single iteration of the loop.

Question 17

The break and continue statements, together are called jump statements.

Question 18

In a nested loop, a break statement inside the inner loop, will terminate the inner loop only.

True/False Questions

Question 1

An if-else tests less number of conditions than two successive ifs.

Answer

True

Reason — An if-else statement evaluates a condition and executes one block of code if the condition is true, and another block if it is false. This structure tests only a single condition. In contrast, using two successive if statements allows multiple conditions to be checked independently. Even if the first condition is true, the second if will still be checked, allowing multiple blocks of code to execute if their conditions are met.

Question 2

A for loop is termed as a determinable loop.

Answer

True

Reason — A for loop is called a determinable loop because the number of iterations is predetermined before the loop starts.

Question 3

The while loop is an exit controlled loop.

Answer

False

Reason — A while loop is an entry-controlled loop, not an exit-controlled loop. The condition is checked before the loop body executes, meaning the loop may not run at all if the condition is false initially.

Question 4

The range() creates an iterable sequence.

Answer

True

Reason — The range() function of Python generates a list which is a special sequence type. A sequence in Python is a succession of values bound together by a single name. Some Python sequence types are: strings, lists, tuples etc.

Question 5

The for loop can also tests a condition before executing the loop-body.

Answer

False

Reason — In Python, the for loop does not test a condition before executing the loop body. Instead, it iterates over elements in a predefined iterable, executing the loop body for each element. This differs from a while loop, which performs a condition check before each iteration.

Question 6

Only if statement can have an else clause.

Answer

False

Reason — In Python, both if statements and loops (like for and while) can have an else clause.

Question 7

A loop can also take an else clause.

Answer

True

Reason — In Python, both for and while loops can have an else clause that executes when the loop ends normally.

Question 8

The else clause of a loop gets executed only when a break statement terminates it.

Answer

False

Reason — The else clause of a loop gets executed only when the loop ends normally, i.e., only when the loop is ending because the while loops's test condition has resulted in false or the for loop has executed for the last value in sequence.

Question 9

A loop with an else clause executes its else clause only when the loop terminates normally.

Answer

True

Reason — The else clause of a loop gets executed only when the loop ends normally, i.e., only when the loop is ending because the while loops's test condition has resulted in false or the for loop has executed for the last value in sequence.

Question 10

A loop with an else clause cannot have a break statement.

Answer

False

Reason — In Python, a loop with an else clause can contain a break statement.

Question 11

A continue statement can replace a break statement.

Answer

False

Reason — The break statement terminates the loop entirely, exiting it, while the continue statement skips the current iteration and moves to the next iteration of the loop. Therefore, a continue statement cannot replace a break statement.

Question 12

For a for loop, an equivalent while loop can always be written.

Answer

True

Reason — Any for loop in Python can be translated into an equivalent while loop.

For example,

# Using a for loop to iterate over a range
for i in range(5):
    print(i)
# Using a while loop to achieve the same result
i = 0            
while i < 5:  
   print(i)
   i += 1  

This shows that a for loop can always be expressed with an equivalent while loop.

Question 13

For a while loop, an equivalent for loop can always be written.

Answer

False

Reason — Not all while loops can be converted into equivalent for loops, especially when iterations depend on conditions or states rather than a predetermined sequence or range.

Question 14

The range() function can only be used in for loops.

Answer

False

Reason — The range() function can be used in both for and while loops.

Question 15

An if-elif-else statement is equivalent to a nested-if statement.

Answer

True

Reason — An if-elif-else statement evaluates multiple conditions sequentially and execute the corresponding block of code for the first true condition. This structure is equivalent to using nested-if statements, where each elif corresponds to a separate nested-if checking a different condition.

For example,

# Using if-elif-else
x = 10

if x > 10:
    print("Greater than 10")
elif x == 10:
    print("Equal to 10")
else:
    print("Less than 10")
# Using Nested if Statements
x = 10

if x > 10:
    print("Greater than 10")
else:
    if x == 10:
        print("Equal to 10")
    else:
        print("Less than 10")

Hence, both examples yield the same result.

Assertions and Reasons

Question 1

Assertion. Python's pass statement is an empty statement.

Reason. An empty statement does nothing.

  1. Both A and R are true and R is the correct explanation of A.
  2. Both A and R are true but R is not the correct explanation of A.
  3. A is true but R is false.
  4. A is false but R is true.
  5. Both A and R are false or not fully true.

Answer

Both A and R are true and R is the correct explanation of A.

Explanation
In Python, an empty statement is the pass statement. It is a "do nothing" statement, i.e., a null operation statement. Whenever Python encounters a pass statement, it does nothing and moves to the next statement in the flow of control.

Question 2

Assertion. The flow of control in a program can occur sequentially, selectively or iteratively.

Reason. The sequence construct means that the statements will get executed sequentially.

  1. Both A and R are true and R is the correct explanation of A.
  2. Both A and R are true but R is not the correct explanation of A.
  3. A is true but R is false.
  4. A is false but R is true.
  5. Both A and R are false or not fully true.

Answer

Both A and R are true but R is not the correct explanation of A.

Explanation
The flow of control in a program can occur in three ways: sequentially, selectively or iteratively. The sequence construct means the statements are being executed sequentially. Every Python program begins with the first statement of program. Each statement in turn is executed. When the final statement of program is executed, the program is done.

Question 3

Assertion. Python statement 'if' represents selection construct.

Reason. The selection construct means the execution of a set of statements, depending upon the outcome of a condition.

  1. Both A and R are true and R is the correct explanation of A.
  2. Both A and R are true but R is not the correct explanation of A.
  3. A is true but R is false.
  4. A is false but R is true.
  5. Both A and R are false or not fully true.

Answer

Both A and R are true and R is the correct explanation of A.

Explanation
The if statement in Python represents a selection construct, allowing the execution of certain statements based on a specified condition. The selection construct means the execution of statements depending upon a condition-test. If a condition evaluates to True, a course-of-action (a set of statements) is followed otherwise another course-of-action (a different set of statements) if followed.

Question 4

Assertion. The for loop is a counting loop that works with sequences of values.

Reason. The range() function generates a sequence of list type.

  1. Both A and R are true and R is the correct explanation of A.
  2. Both A and R are true but R is not the correct explanation of A.
  3. A is true but R is false.
  4. A is false but R is true.
  5. Both A and R are false or not fully true.

Answer

Both A and R are true but R is not the correct explanation of A.

Explanation
The for loop in Python is a counting loop that iterates over sequences of values. The range() function of Python generates a list which is a special sequence type. A sequence in Python is a succession of values bound together by a single name. Some Python sequence types are: strings, lists, tuples etc.

Question 5

Assertion. Both break and continue are jump statements.

Reason. Both break and continue can stop the loops and hence can substitute one-another.

  1. Both A and R are true and R is the correct explanation of A.
  2. Both A and R are true but R is not the correct explanation of A.
  3. A is true but R is false.
  4. A is false but R is true.
  5. Both A and R are false or not fully true.

Answer

A is true but R is false.

Explanation
Python offers two jump statements to be used within loops to jump out of loop-iterations. These are break and continue statements. The break statement terminates the loop entirely, exiting it, while the continue statement skips the current iteration and moves to the next iteration of the loop. Therefore, a continue statement cannot replace a break statement.

Question 6

Assertion. Only while loops can use break statement.

Reason. Loop while is a conditional loop of Python and stops when its condition results in false.

  1. Both A and R are true and R is the correct explanation of A.
  2. Both A and R are true but R is not the correct explanation of A.
  3. A is true but R is false.
  4. A is false but R is true.
  5. Both A and R are false or not fully true.

Answer

A is false but R is true.

Explanation
The break statement can be used in both while loops and for loops to exit the loop. A while loop is a conditional loop that will repeat the instructions within itself as long as a condition remains true.

Type A : Short Answer Questions/Conceptual Questions

Question 1

What is the common structure of Python compound statements?

Answer

The common structure of a Python compound statement is as shown below:

<compound statement header>:
    <indented body with multiple simple\
     and/or compound statements>

It has the following components:

  1. A header line which begins with a keyword and ends with a colon.
  2. A body containing a sequence of statements at the same level of indentation.

Question 2

What is the importance of the three programming constructs?

Answer

The importance of the three programming constructs is a given below:

  1. Sequence — Statements get executed sequentially.
  2. Selection — Execution of statements depends on a condition test.
  3. Repetition\Iteration — Repetition of a set of statements depends on a condition test.

Question 3

What is empty statement in Python? What is its need?

Answer

In Python, an empty statement is pass statement. Its syntax is:

pass

When pass statement is encountered, Python does nothing and moves to next statement in the flow of control.

It is needed in those instances where the syntax of the language requires the presence of a statement but where the logic of the program does not.

Question 4

Which Python statement can be termed as empty statement?

Answer

In Python, an empty statement is pass statement. Its syntax is:

pass

Question 5

What is an algorithm?

Answer

An algorithm is defined as the sequence of instructions written in simple English that are required to get the desired results. It helps to develop the fundamental logic of a problem that leads to a solution.

Question 6

What is a flowchart? How is it useful?

Answer

A flowchart is a pictorial representation of an algorithm. It uses boxes of different shapes to represent different types of instructions. These boxes are connected with arrow marks to indicate the flow of operations. It helps in:

  1. Communication — The pictorial representation of the flowchart provides better communication. It is easier for the programmer to explain the logic of a program.
  2. Effective Analysis — It is a very useful technique, as flowchart is a pictorial representation that helps the programmer to analyze the problem in detail.

Question 7

Draw flowchart for displaying first 10 odd numbers.

Answer

Draw flowchart for displaying first 10 odd numbers

Question 8

What is entry-controlled loop?

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.

Question 9

What are the four elements of a while loop in Python?

Answer

The four elements of a while loop in Python are:

  1. Initialization Expressions — It initializes the loop control variable and it is given outside the while loop before the beginning of the loop.
  2. Test Expression — If its truth value is true then the loop-body gets executed otherwise not.
  3. The Body of the Loop — It is the set of statements that are executed repeatedly in loop.
  4. Update Expressions — It updates the value of loop control variable and it is given inside the while loop.

Question 10

What is the difference between else clause of if-else and else clause of Python loops?

Answer

The else clause of an if-else statement is executed when the condition of the if statement results into false. The else clause of a loop is executed when the loop is terminating normally i.e., when its test condition has become false for a while loop or when the for loop has executed for the last value in sequence.

Question 11

In which cases, the else clause of a loop does not get executed?

Answer

The else clause of a loop does not get executed if the loop is terminated due to the execution of a break statement inside the loop.

Question 12

What are jump statements? Name them.

Answer

Jump statements are used to unconditionally transfer program control to other parts within a program. Python provides the below jump statements:

  1. break
  2. continue

Question 13

How and when are named conditions useful?

Answer

Sometimes the conditions being used in the code are complex and repetitive. In such cases, to make the program more readable and maintainable, named conditions can be used.

Question 14

What are endless loops ? Why do such loops occur?

Answer

A loop which continues iterating indefinitely and never stops is termed as an endless or infinite loop. Such loops can occur primarily due to two reasons:

  1. Logical errors when the programmer misses updating the value of loop control variable.
  2. Purposefully created endless loops that have a break statement within their body to terminate the loop.

Question 15

How is break statement different from continue?

Answer

When the break statement gets executed, it terminates its loop completely and control reaches to the statement immediately following the loop. The continue statement terminates only the current iteration of the loop by skipping rest of the statements in the body of the loop.

Type B: Application Based Questions

Question 1

Rewrite the following code fragment that saves on the number of comparisons:

if (a == 0) : 
  print ("Zero")
if (a == 1) : 
  print ("One")
if (a == 2) : 
  print ("Two")
if (a == 3) : 
  print ("Three")

Answer

if (a == 0) : 
  print ("Zero")
elif (a == 1) :
  print ("One")
elif (a == 2) :
  print ("Two")
elif (a == 3) :
  print ("Three")

Question 2

Under what conditions will this code fragment print "water"?

if temp < 32 :    
   print ("ice")  
elif temp < 212:  
   print ("water")
else :            
   print ("steam")

Answer

When value of temp is greater than or equal to 32 and less than 212 then this code fragment will print "water".

Question 3

What is the output produced by the following code?

x = 1                        
if x > 3 :
   if x > 4 :                
         print ("A", end = ' ')
   else :                    
         print ("B", end = ' ')
elif x < 2:                  
   if (x != 0):
         print ("C", end = ' ')
print ("D")                  

Answer

Output
C D
Explanation

As value of x is 1 so statements in the else part of outer if i.e. elif x < 2: will get executed. The condition if (x != 0) is true so C is printed. After that the statement print ("D") prints D.

Question 4

What is the error in following code? Correct the code:

weather = 'raining'       
if weather = 'sunny' :
   print ("wear sunblock")
elif weather = "snow":    
   print ("going skiing") 
else :                    
   print (weather)        

Answer

In this code, assignment operator (=) is used in place of equality operator (==) for comparison. The corrected code is below:

weather = 'raining'       
if weather == 'sunny' :
   print ("wear sunblock")
elif weather == "snow":    
   print ("going skiing") 
else :                    
   print (weather)

Question 5

What is the output of the following lines of code?

if int('zero') == 0 :       
   print ("zero")            
elif str(0) == 'zero' :          
   print (0)                  
elif str(0) == '0' :         
   print (str(0))             
else:                         
   print ("none of the above")

Answer

The above lines of code will cause an error as in the line if int('zero') == 0 :, 'zero' is given to int() function but string 'zero' doesn't have a valid numeric representation.

Question 6

Find the errors in the code given below and correct the code:

if n == 0
   print ("zero") 
elif : n == 1     
   print ("one")  
elif             
   n == 2:        
   print ("two") 
else n == 3:      
   print ("three")

Answer

The corrected code is below:

if n == 0 : #1st Error
   print ("zero") 
elif n == 1 : #2nd Error
   print ("one")  
elif n == 2: #3rd Error  
   print ("two") 
elif n == 3: #4th Error     
   print ("three")

Question 7

What is following code doing? What would it print for input as 3?

n = int(input( "Enter an integer:" ))
if n < 1 :
  print ("invalid value")
else :
  for i in range(1, n + 1):
    print (i * i)

Answer

The code will print the square of each number from 1 till the number given as input by the user if the input value is greater than 0. Output of the code for input as 3 is shown below:

Enter an integer:3
1
4
9

Question 8

How are following two code fragments different from one another? Also, predict the output of the following code fragments :

(a)

n = int(input( "Enter an integer:" ))
if n > 0 :
    for a in range(1, n + n ) :
        print (a / (n/2))
    else :
        print ("Now quiting")

(b)

n = int(input("Enter an integer:"))
if n > 0 :
    for a in range(1, n + n) :
        print (a / (n/2))
else :
    print ("Now quiting")

Answer

In part (a) code, the else clause is part of the loop i.e. it is a loop else clause that will be executed when the loop terminates normally. In part (b) code, the else clause is part of the if statement i.e. it is an if-else clause. It won't be executed if the user gives a greater than 0 input for n.

Output of part a:

Enter an integer:3
0.6666666666666666
1.3333333333333333
2.0
2.6666666666666665
3.3333333333333335
Now quiting

Output of part b:

Enter an integer:3
0.6666666666666666
1.3333333333333333
2.0
2.6666666666666665
3.3333333333333335

Question 9a

Rewrite the following code fragment using for loop:

i = 100
while (i > 0) :
    print (i)
    i -= 3

Answer

for i in range(100, 0, -3) :
    print (i)

Question 9b

Rewrite the following code fragment using for loop:

while num > 0 :
    print (num % 10)
    num = num/10

Answer

l = [1]
for x in l:
    l.append(x + 1)
    if num <= 0:
        break
    print (num % 10)
    num = num/10

Question 9c

Rewrite the following code fragment using for loop:

while num > 0 :
    count += 1
    sum += num
        num –= 2
        if count == 10 :
            print (sum/float(count))
            break

Answer

for i in range(num, 0, -2):
    count += 1
    sum += i
    if count == 10 :
        print (sum/float(count))
        break

Question 10a

Rewrite following code fragment using while loops :

min = 0
max = num
if num < 0 :
    min = num
    max = 0 # compute sum of integers
            # from min to max

    for i in range(min, max + 1):
        sum += i

Answer

min = 0
max = num
if num < 0 :
    min = num
    max = 0 # compute sum of integers
            # from min to max
    i = min
    while i <= max:
        sum += i
        i += 1

Question 10b

Rewrite following code fragment using while loops :

for i in range(1, 16) :
  if i % 3 == 0 :      
     print (i)

Answer

i = 1
while i < 16:
    if i % 3 == 0 :
        print (i)
    i += 1

Question 10c

Rewrite following code fragment using while loops :

for i in range(4) :
    for j in range(5):
        if i + 1 == j or j + 1 == 4 :
           print ("+", end = ' ')
    else :
        print ("o", end = ' ')
print()

Answer

i = 0
while i < 4:
    j = 0
    while j < 5:
        if i + 1 == j or j + 1 == 4 :
            print ("+", end = ' ')
        j += 1
    else :
        print ("o", end = ' ')
    i += 1
print()

Question 11a

Predict the output of the following code fragments:

count = 0         
while count < 10:
    print ("Hello")
    count += 1

Answer

Output
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Explanation

The while loop executes 10 times so "Hello" is printed 10 times

Question 11b

Predict the output of the following code fragments:

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
xyOutputRemarks
10010 01st Iteration
9110 0
9 1
2nd Iteration
8210 0
9 1
8 2
3rd Iteration
7310 0
9 1
8 2
7 3
4th Iteration
6410 0
9 1
8 2
7 3
6 4
5th Iteration

Question 11c

Predict the output of the following code fragments:

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

Inside while loop, the line x = x - 10 is decreasing x by 10 so after 5 iterations of while loop x will become 40. When x becomes 40, the condition if x < 50 becomes true so keepgoing is set to False due to which the while loop stops iterating.

Question 11d

Predict the output of the following code fragments:

x = 45
while x < 50 :
    print (x)

Answer

This is an endless (infinite) loop that will keep printing 45 continuously.

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 11e

Predict the output of the following code fragments:

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 11f

Predict the output of the following code fragments:

for x in range(5):
   print (x)      

Answer

Output
0
1
2
3
4
Explanation

range(5) will generate a sequence like this [0, 1, 2, 3, 4]. x will be assigned each of the values from this sequence one by one and that will get printed.

Question 11g

Predict the output of the following code fragments:

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 11h

Predict the output of the following code fragments:

for q in range(100, 50, -10):
   print (q)

Answer

Output
100
90
80
70
60
Explanation

range(100, 50, -10) will generate a sequence like this [100, 90, 80, 70, 60]. q will be assigned each of the values from this sequence one by one and that will get printed.

Question 11i

Predict the output of the following code fragments:

for z in range(-500, 500, 100):
    print (z)

Answer

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 11j

Predict the output of the following code fragments:

for y in range(500, 100, 100):
    print (" * ", y)

Answer

This code generates No Output.

The for loop doesn't execute as range(500, 100, 100) returns an empty sequence — [ ].

Question 11k

Predict the output of the following code fragments:

x = 10                     
y = 5                     
for i in range(x-y * 2):  
    print (" % ", i)

Answer

This code generates No Output.

Explanation

The x-y * 2 in range(x-y * 2) is evaluated as below:

    x - y * 2
⇒ 10 - 5 * 2
⇒ 10 - 10 [∵ * has higher precedence than -]
⇒ 0

Thus range(x-y * 2) is equivalent to range(0) which returns an empty sequence — [ ].

Question 11l

Predict the output of the following code fragments:

for x in [1,2,3]:
    for y in [4, 5, 6]:
        print (x, y)

Answer

Output
1 4
1 5
1 6
2 4
2 5
2 6
3 4
3 5
3 6
Explanation

For each iteration of outer loop, the inner loop will execute three times generating this output.

Question 11m

Predict the output of the following code fragments:

for x in range(3):        
    for y in range(4):    
       print (x, y, x + y)

Answer

Output
0 0 0
0 1 1
0 2 2
0 3 3
1 0 1
1 1 2
1 2 3
1 3 4
2 0 2
2 1 3
2 2 4
2 3 5
Explanation

For each iteration of outer loop, the inner loop executes four times (with value of y ranging from 0 to 3) generating this output.

Question 11n

Predict the output of the following code fragments:

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 12

What is the output of the following code?

for i in range(4):
  for j in range(5):
      if i + 1 == j or j + i == 4:
         print ("+", end = ' ')
      else:
         print ("o", end = ' ')
print()

Answer

Output
o + o o + o o + + o o o + + o o + o o +
Explanation

Outer loop executes 4 times. For each iteration of outer loop, inner loop executes 5 times. Therefore, the total number of times body of inner loop gets executed is 4 * 5 = 20. Thats why there are 20 characters in the output (leaving spaces). When the condition is true then + is printed else o is printed.

Question 13

In the nested for loop code below, how many times is the condition of the if clause evaluated?

for i in range(4):
  for j in range(5):
      if i + 1 == j or j + i == 4:
         print ("+", end = ")
      else:
         print ("o", end = ")
print()

Answer

Outer loop executes 4 times. For each iteration of outer loop, inner loop executes 5 times. Therefore, the total number of times the condition of the if clause gets evaluated is 4 * 5 = 20.

Question 14

Which of the following Python programs implement the control flow graph shown?

Which of the following Python programs implement the control flow graph shown

(a)

while True :
   n = int(input("Enter an int:"))
   if n == A1 :
      continue
   elif n == A2 :
      break
   else :
      print ("what")
else:
   print ("ever")

(b)

while True :
   n = int(input("Enter an int:"))
   if n == A1 :
      continue
   elif n == A2 :
      break
   else :
      print ("what")
print ("ever")

(c)

while True :
   n = int(input("Enter an int:"))
   if n == A1 :
      continue
   elif n == A2 :
      break
print ("what")
print ("ever")

Answer

Python program given in Option (b) implements this flowchart:

while True :
   n = int(input("Enter an int:"))
   if n == A1 :
      continue
   elif n == A2 :
      break
   else :
      print ("what")
print ("ever")

Question 15

Find the error. Consider the following program :

a = int(input("Enter a value: ")) 
while a != 0:
   count = count + 1
   a = int(input("Enter a value: "))
print("You entered", count, "values.")

It is supposed to count the number of values entered by the user until the user enters 0 and then display the count (not including the 0). However, when the program is run, it crashes with the following error message after the first input value is read :

  Enter a value: 14
  Traceback (most recent call last):
    File "count.py", line 4, in <module> 
      count = count + 1
  NameError: name 'count' is not defined

What change should be made to this program so that it will run correctly ? Write the modification that is needed into the program above, crossing out any code that should be removed and clearly indicating where any new code should be inserted.

Answer

The line count = count + 1 is incrementing the value of variable count by 1 but the variable count has not been initialized before this statement. This causes an error when trying to execute the program. The corrected program is below:

count = 0 #count should be initialized before incrementing
a = int(input("Enter a value: ")) 
while a != 0:
   count = count + 1
   a = int(input("Enter a value: "))
print("You entered", count, "values.")

Type C: Programming Practice/Knowledge based Questions

Question 1

Write a Python script that asks the user to enter a length in centimetres. If the user enters a negative length, the program should tell the user that the entry is invalid. Otherwise, the program should convert the length to inches and print out the result. There are 2.54 centimetres in an inch.

Solution
len = int(input("Enter length in cm: "))
if len < 0:
    print("Invalid input")
else:
    inch = len / 2.54
    print(len, "centimetres is equal to", inch, "inches")
Output
Enter length in cm: 150
150 centimetres is equal to 59.05511811023622 inches

Question 2

A store charges ₹120 per item if you buy less than 10 items. If you buy between 10 and 99 items, the cost is ₹100 per item. If you buy 100 or more items, the cost is ₹70 per item. Write a program that asks the user how many items they are buying and prints the total cost.

Solution
n = int(input("Enter number of items: "))

cost = 0

if n >= 100 :
    cost = n * 70
elif n >= 10 :
    cost = n * 100
else :
    cost = n * 120

print("Total Cost =", cost)
Output
Enter number of items: 58
Total Cost = 5800

Question 3

Write a program that reads from user — (i) an hour between 1 to 12 and (ii) number of hours ahead. The program should then print the time after those many hours, e.g.,
  Enter hour between 1-12 : 9
  How many hours ahead : 4
  Time at that time would be : 1 O'clock

Solution
hr = int(input("Enter hour between 1-12 : "))
n = int(input("How many hours ahead : "))

s = hr + n

if s > 12:
    s -= 12

print("Time at that time would be : ", s, "O'clock")
Output
Enter hour between 1-12 : 9
How many hours ahead : 4
Time at that time would be :  1 O'clock

Question 4

Write a program that asks the user for two numbers and prints Close if the numbers are within .001 of each other and Not close otherwise.

Solution
a = float(input("Enter first number: "))
b = float(input("Enter second number: "))

d = 0
if a > b :
    d = a - b
else : 
    d = b - a

if d <= 0.001 :
    print("Close")
else :
    print("Not Close")
Output
Enter first number: 10.12345
Enter second number: 10.12354
Close

Question 5

A year is a leap year if it is divisible by 4, except that years divisible by 100 are not leap years unless they are also divisible by 400. Write a program that asks the user for a year and prints out whether it is a leap year or not.

Solution
year = int(input("Enter year: "))

if year % 400 == 0 :
    print(year, "is a Leap Year")
elif year % 100 == 0 :
    print(year, "is not a Leap Year")
elif year % 4 == 0 :
    print(year, "is a Leap Year")
else :
    print(year, "is not a Leap Year")
Output
Enter year: 1800
1800 is not a Leap Year

Question 6

Write a program to input length of three sides of a triangle. Then check if these sides will form a triangle or not.
(Rule is: a+b>c;b+c>a;c+a>b)

Solution
a = int(input("Enter first side : "))
b = int(input("Enter second side : "))
c = int(input("Enter third side : "))

if a + b > c and b + c > a and a + c > b :
    print("Triangle Possible")
else :
    print("Triangle Not Possible")
Output
Enter first side : 3
Enter second side : 5
Enter third side : 6
Triangle Possible

Question 7

Write a short program to input a digit and print it in words.

Solution
d = int(input("Enter a digit(0-9): "))

if d == 0 :
    print("Zero")
elif d == 1 :
    print("One")
elif d == 2 :
    print("Two")
elif d == 3 :
    print("Three")
elif d == 4 :
    print("Four")
elif d == 5 :
    print("Five")
elif d == 6 :
    print("Six")
elif d == 7 :
    print("Seven")
elif d == 8 :
    print("Eight")
elif d == 9 :
    print("Nine")
else :
    print("Invalid Digit")
Output
Enter a digit(0-9): 6
Six

Question 8

Write a short program to check whether square root of a number is prime or not.

Solution
import math

n = int(input("Enter a number: "))
sr = math.sqrt(n)
c = 0

for i in range(1, int(sr + 1)) :
    if (sr % i == 0) :
        c += 1

if c == 2 :
    print("Square root is prime")
else :
    print("Square root is not prime")
Output
Enter a number: 49
Square root is prime

Question 9

Write a short program to print first n odd numbers in descending order.

Solution
n = int(input("Enter n: "))
x = n * 2 - 1

for i in range(x, 0, -2) :
    print(i)
Output
Enter n: 5
9
7
5
3
1

Question 10

Write a short program to print the following series :

(i) 1 4 7 10 .......... 40.
(ii) 1 -4 7 -10 .......... -40

Solution
print("First Series:")
for i in range(1, 41, 3) :
    print(i, end = ' ')

print("\nSecond Series:")
x = 1
for i in range(1, 41, 3) :
    print(i * x, end = ' ')
    x *= -1
Output
First Series:
1 4 7 10 13 16 19 22 25 28 31 34 37 40 
Second Series:
1 -4 7 -10 13 -16 19 -22 25 -28 31 -34 37 -40

Question 11

Write a short program to find average of list of numbers entered through keyboard.

Solution
sum = count = 0

print("Enter numbers")
print("(Enter 'q' to see the average)")

while True :
    n = input()
    if n == 'q' or n == 'Q' :
        break
    else :
        sum += int(n)
        count += 1

avg = sum / count
print("Average = ", avg)
Output
Enter numbers
(Enter 'q' to see the average)
2
5
7
15
12
q
Average =  8.2

Question 12

Write a program to input 3 sides of a triangle and print whether it is an equilateral, scalene or isosceles triangle.

Solution
a = int(input("Enter first side : "))
b = int(input("Enter second side : "))
c = int(input("Enter third side : "))

if a == b and b == c :
    print("Equilateral Triangle")
elif a == b or b == c or c == a:
    print("Isosceles Triangle")
else :
    print("Scalene Triangle")
Output
Enter first side : 10
Enter second side : 5
Enter third side : 10
Isosceles Triangle

Question 13

Write a program to take an integer a as an input and check whether it ends with 4 or 8. If it ends with 4, print "ends with 4", if it ends with 8, print "ends with 8", otherwise print "ends with neither".

Solution
a = int(input("Enter an integer: "))

if a % 10 == 4 :
    print("ends with 4")
elif a % 10 == 8 :
    print("ends with 8")
else :
    print("ends with neither")
Output
Enter an integer: 18
ends with 8

Question 14

Write a program to take N (N > 20) as an input from the user. Print numbers from 11 to N. When the number is a multiple of 3, print "Tipsy", when it is a multiple of 7, print "Topsy". When it is a multiple of both, print "TipsyTopsy".

Solution
n = int(input("Enter a number greater than 20: "))
if n <= 20 :
    print("Invalid Input")
else :
    for i in range(11, n + 1) :
        print(i)
        if i % 3 == 0 and i % 7 == 0 :
            print("TipsyTopsy")
        elif i % 3 == 0 :
            print("Tipsy")
        elif i % 7 == 0 :
            print("Topsy")
Output
Enter a number greater than 20: 25
11
12
Tipsy
13
14
Topsy
15
Tipsy
16
17
18
Tipsy
19
20
21
TipsyTopsy
22
23
24
Tipsy
25

Question 15

Write a short program to find largest number of a list of numbers entered through keyboard.

Solution
print("Enter numbers:")
print("(Enter 'q' to see the result)")

l = input()

if l != 'q' and l != 'Q' :
    l = int(l)
    while True:
        n = input()
        if n == 'q' or n == 'Q' :
            break
        n = int(n)
        if n > l :
            l = n
    print("Largest Number =", l)
Output
Enter numbers:
(Enter 'q' to see the result)
3
5
8
2
4
q
Largest Number = 8

Question 16

Write a program to input N numbers and then print the second largest number.

Solution
n = int(input("How many numbers you want to enter? "))
if n > 1 :
    l = int(input())   # Assume first input is largest
    sl = int(input())  # Assume second input is second largest
    if sl > l :
        t = sl
        sl = l
        l = t
    for i in range(n - 2) :
        a = int(input())
        if a > l :
            sl = l
            l = a
        elif a > sl :
            sl = a
    print("Second Largest Number =", sl)
else :
    print("Please enter more than 1 number")
Output
How many numbers you want to enter? 5
55
25
36
12
18
Second Largest Number = 36

Question 17

Given a list of integers, write a program to find those which are palindromes. For example, the number 4321234 is a palindrome as it reads the same from left to right and from right to left.

Solution
print("Enter numbers:")
print("(Enter 'q' to stop)")

while True :
    n = input()
    if n == 'q' or n == 'Q' :
        break
    n = int(n)
    t = n
    r = 0
    while (t != 0) :
        d = t % 10
        r = r * 10 + d
        t = t // 10
    if (n == r) :
        print(n, "is a Palindrome Number")
    else :
        print(n, "is not a Palindrome Number")
Output
Enter numbers:
(Enter 'q' to stop)
67826
67826 is not a Palindrome Number
4321234
4321234 is a Palindrome Number
256894
256894 is not a Palindrome Number
122221
122221 is a Palindrome Number
q

Question 18

Write a complete Python program to do the following :

(i) read an integer X.

(ii) determine the number of digits n in X.

(iii) form an integer Y that has the number of digits n at ten's place and the most significant digit of X at one's place.

(iv) Output Y.

(For example, if X is equal to 2134, then Y should be 42 as there are 4 digits and the most significant number is 2).

Solution
x = int(input("Enter an integer: "))
temp = x
count = 0
digit = -1

while temp != 0 :
    digit = temp % 10
    count += 1
    temp = temp // 10

y = count * 10 + digit

print("Y =", y)
Output
Enter an integer: 2134
Y = 42

Question 19

Write a Python program to print every integer between 1 and n divisible by m. Also report whether the number that is divisible by m is even or odd.

Solution
m = int(input("Enter m: "))
n = int(input("Enter n: "))
for i in range(1, n) :
    if i % m == 0 :
        print(i, "is divisible by", m)
        if i % 2 == 0 :
            print(i, "is even")
        else :
            print(i, "is odd")
Output
Enter m: 3
Enter n: 20
3 is divisible by 3
3 is odd
6 is divisible by 3
6 is even
9 is divisible by 3
9 is odd
12 is divisible by 3
12 is even
15 is divisible by 3
15 is odd
18 is divisible by 3
18 is even

Question 20a

Write Python programs to sum the given sequences:

2/9 - 5/13 + 8/17 ...... (print 7 terms)

Solution
n = 2 #numerator initial value
d = 9 #denominator initial value
m = 1 #to add/subtract alternate terms
sum = 0

for i in range(7) :
    t = n / d
    sum += t * m
    n += 3
    d += 4
    m *= -1
    
print("Sum =", sum)
Output
Sum = 0.3642392586003134

Question 20b

Write Python programs to sum the given sequences:

12 + 32 + 52 + ..... + n2 (Input n)

Solution
n = int(input("Enter the value of n: "))

i = 1
sum = 0

while i <= n :
    sum += i ** 2
    i += 2

print("Sum =", sum)
Output
Enter the value of n: 9
Sum = 165

Question 21

Write a Python program to sum the sequence:

1 + 1/1! + 1/2! + 1/3! + ..... + 1/n! (Input n)

Solution
n = int(input("Enter the value of n: "))
sum = 0

for i in range(n + 1) :
    fact = 1
    for j in range(1, i) :
        fact *= j
    term = 1 / fact
    sum += term

print("Sum =", sum)
Output
Sum = 3.708333333333333

Question 22

Write a program to accept the age of n employees and count the number of persons in the following age group:

(i)    26 - 35
(ii)   36 - 45
(iii)  46 - 55

Solution
n = int(input("Enter the value of n: "))
g1 = g2 = g3 = 0

for i in range(1, n + 1) :
    age = int(input("Enter employee age: "))
    #We have used chained comparison operators
    if 26 <= age <= 35 :
        g1 += 1
    elif 36 <= age <= 45 :
        g2 += 1
    elif 46 <= age <= 55 :
        g3 += 1

print("Employees in age group 26 - 35: ", g1)
print("Employees in age group 36 - 45: ", g2)
print("Employees in age group 46 - 55: ", g3)
Output
Enter the value of n: 10
Enter employee age: 45
Enter employee age: 53
Enter employee age: 28
Enter employee age: 32
Enter employee age: 34
Enter employee age: 49
Enter employee age: 30
Enter employee age: 38
Enter employee age: 33
Enter employee age: 53
Employees in age group 26 - 35:  5
Employees in age group 36 - 45:  2
Employees in age group 46 - 55:  3

Question 23a

Write programs to find the sum of the following series:

x - x2/2! + x3/3! - x4/4! + x5/5! - x6/6! (Input x)

Solution
x = int(input("Enter the value of x: "))

sum = 0
m = 1

for i in range(1, 7) :
    fact = 1
    for j in range(1, i+1) :
        fact *= j
    term = x ** i / fact
    sum += term * m
    m = m * -1

print("Sum =", sum)
Output
Enter the value of x: 2
Sum = 0.8444444444444444

Question 23b

Write programs to find the sum of the following series:

x + x2/2 + x3/3 + ...... + xn/n (Input x and n both)

Solution
x = int(input("Enter the value of x: "))
n = int(input("Enter the value of n: "))

sum = 0

for i in range(1, n + 1) :
    term = x ** i / i
    sum += term

print("Sum =", sum)
Output
Enter the value of x: 2
Enter the value of n: 5
Sum = 17.066666666666666

Question 24a

Write programs to print the following shapes:

   *
  * *
 * * *
  * *
   *

Solution
n = 3 # number of rows

# upper half
for i in range(n) :
    for j in range(n, i+1, -1) : 
        print(' ', end = '')
    for k in range(i+1) :
        print('*', end = ' ')
    print()

# lower half
for i in range(n-1) :
    for j in range(i + 1) : 
        print(' ', end = '')
    for k in range(n-1, i, -1) :
        print('*', end = ' ')
    print()
Output
  * 
 * * 
* * *
 * *
  *

Question 24b

Write programs to print the following shapes:

*
* *
* * *
* *
*

Solution
n = 3 # number of rows

# upper half
for i in range(n) :
    for k in range(i+1) :
        print('*', end = ' ')
    print()

# lower half
for i in range(n-1) :
    for k in range(n-1, i, -1) :
        print('*', end = ' ')
    print()
Output
* 
* * 
* * *
* *
*

Question 24c

Write programs to print the following shapes:

   *
 *  *
*    *
 *  *
   *

Solution
n = 3 # number of rows

# upper half
for i in range(1, n+1) :
    # for loop for initial spaces
    for j in range(n, i, -1) :
        print(' ', end = '')

    #while loop for * and spaces
    x = 1
    while x < 2 * i :
        if x == 1 or x == 2 * i - 1 :
            print('*', end = '')
        else :
            print(' ', end = '')
        x += 1
    print()

# lower half
for i in range(n-1, 0, -1) :
    # for loop for initial spaces
    for j in range(n, i, -1) :
        print(' ', end = '')

    #while loop for * and spaces
    x = 1
    while x < 2 * i :
        if x == 1 or x == 2 * i - 1 :
            print('*', end = '')
        else :
            print(' ', end = '')
        x += 1
    print()
Output
  *
 * *
*   *
 * *
  *

Question 24d

Write programs to print the following shapes:

*
* *
*   *
*     *
*   *
* *
*

Solution
n = 4 # number of row

#upper half
for i in range(1, n+1) :
    #while loop for * and spaces
    x = 1
    while x < 2 * i :
        if x == 1 or x == 2 * i - 1 :
            print('*', end = '')
        else :
            print(' ', end = '')
        x += 1
    print()

#lower half
for i in range(n-1, 0, -1) :
    #while loop for * and spaces
    x = 1
    while x < 2 * i :
        if x == 1 or x == 2 * i - 1 :
            print('*', end = '')
        else :
            print(' ', end = '')
        x += 1
    print()
Output
*
* *
*   *
*     *
*   *
* *
*

Question 25a

Write programs using nested loops to produce the following patterns:

A
A B
A B C
A B C D
A B C D E
A B C D E F

Solution
n = 6

for i in range(n) :
    t = 65
    for j in range(i + 1) :
        print(chr(t), end = ' ')
        t += 1
    print()
Output
A 
A B 
A B C
A B C D
A B C D E
A B C D E F

Question 25b

Write programs using nested loops to produce the following patterns:

A
B B
C C C
D D D D
E E E E E

Solution
n = 5
t = 65

for i in range(n) :
    for j in range(i + 1) :
        print(chr(t), end = ' ')
    t += 1
    print()
Output
A 
B B 
C C C
D D D D
E E E E E

Question 25c

Write programs using nested loops to produce the following patterns:

0
2 2
4 4 4
6 6 6 6
8 8 8 8 8

Solution
for i in range(0, 10, 2):
    for j in range(0, i + 1, 2) :
        print(i, end = ' ')
    print()
Output
0 
2 2 
4 4 4
6 6 6 6
8 8 8 8 8

Question 25d

Write programs using nested loops to produce the following patterns:

2
4 4
6 6 6
8 8 8 8

Solution
for i in range(2, 10, 2) :
    for j in range(2, i + 1, 2) :
        print(i, end = ' ')
    print()
Output
2 
4 4 
6 6 6
8 8 8 8

Question 26

Write a program using nested loops to produce a rectangle of *'s with 6 rows and 20 *'s per row.

Solution
for i in range(6) :
    for j in range(20) :
        print('*', end = '')
    print()
Output
********************
********************
********************
********************
********************
********************

Question 27

Given three numbers A, B and C, write a program to write their values in an ascending order. For example, if A = 12, B = 10, and C = 15, your program should print out:

Smallest number = 10
Next higher number = 12
Highest number = 15

Solution
a = int(input("Enter first number: "))
b = int(input("Enter second number: "))
c = int(input("Enter third number: "))

if a < b and a < c :
    small = a
    if b < c :
        middle = b
        large = c
    else :
        middle = c
        large = b
elif b < a and b < c :
    small = b
    if a < c :
        middle = a
        large = c
    else :
        middle = c
        large = a
else :
    small = c
    if a < b :
        middle = a
        large = b
    else :
        middle = b
        large = a


print("Smallest number =", small)
print("Next higher number =", middle)
print("Highest number =", large)
Output
Enter first number: 10
Enter second number: 5
Enter third number: 15
Smallest number = 5
Next higher number = 10
Highest number = 15

Question 28

Write a Python script to input temperature. Then ask them what units, Celsius or Fahrenheit, the temperature is in. Your program should convert the temperature to the other unit. The conversions are:

F = 9/5C + 32 and C = 5/9 (F 32).

Solution
temp = float(input("Enter Temperature: "))
unit = input("Enter unit('C' for Celsius or 'F' for Fahrenheit): ")

if unit == 'C' or unit == 'c' :
    newTemp = 9 / 5 * temp + 32
    print("Temperature in Fahrenheit =", newTemp)
elif unit == 'F' or unit == 'f' :
    newTemp = 5 / 9 * (temp - 32)
    print("Temperature in Celsius =", newTemp)
else :
    print("Unknown unit", unit)
Output
Enter Temperature: 38
Enter unit('C' for Celsius or 'F' for Fahrenheit): C
Temperature in Fahrenheit = 100.4

Question 29

Ask the user to enter a temperature in Celsius. The program should print a message based on the temperature:

  • If the temperature is less than -273.15, print that the temperature is invalid because it is below absolute zero.
  • If it is exactly -273.15, print that the temperature is absolute 0.
  • If the temperature is between -273.15 and 0, print that the temperature is below freezing.
  • If it is 0, print that the temperature is at the freezing point.
  • If it is between 0 and 100, print that the temperature is in the normal range.
  • If it is 100, print that the temperature is at the boiling point.
  • If it is above 100, print that the temperature is above the boiling point.
Solution
temp = float(input("Enter Temperature in Celsius: "))

if temp < -273.15 :
    print("Temperature is invalid as it is below absolute zero")
elif temp == -273.15 :
    print("Temperature is absolute zero")
elif -273.15 <= temp < 0:
    print("Temperature is below freezing")
elif temp == 0 :
    print("Temperature is at the freezing point")
elif 0 < temp < 100:
    print("Temperature is in the normal range")
elif temp == 100 :
    print("Temperature is at the boiling point")
else :
    print("Temperature is above the boiling point")
Output
Enter Temperature in Celsius: -273.15
Temperature is absolute zero

Question 30

Write a program to display all of the integers from 1 up to and including some integer entered by the user followed by a list of each number's prime factors. Numbers greater than 1 that only have a single prime factor will be marked as prime.

For example, if the user enters 10 then the output of the program should be:

Enter the maximum value to display: 10
1 = 1
2 = 2 (prime)
3 = 3 (prime)
4 = 2x2
5 = 5 (prime)
6 = 2x3
7 = 7 (prime)
8 = 2x2x2
9 = 3x3
10 = 2x5

Solution
import math

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

for i in range(1, n + 1) :
    if i == 1:
        print("1 = 1")
    else :
        print(i, "=", end=' ')
        c = 0
        for j in range(1, i + 1) :
            if i % j == 0:
                c += 1
        if c == 2:
            print(i, "(prime)", end = '')
            print()
        else :
            t = i
            while t % 2 == 0 :
                print("2", end='x')
                t = t // 2
            k = 3
            x = math.ceil(math.sqrt(t)) + 1
            while k <= x :
                while (t % k == 0) :
                    print(k, end='x')
                    t = t // k
                k += 2

            if t > 2 :
                print(t, end='x')
                
            print()
Output
Enter an integer: 10
1 = 1
2 = 2 (prime)
3 = 3 (prime)
4 = 2x2x
5 = 5 (prime)
6 = 2x3x
7 = 7 (prime)
8 = 2x2x2x
9 = 3x3x
10 = 2x5x
PrevNext