Python Loop Questions
In Python, loops are used to execute a code block repeatedly until a specific condition is met. Python supports the for and while loop types of loops.
While Loop:
While a statement is Fulfilled, a little while loop will execute some code. Until a requirement is satisfied, a set of commands known as a loop is executed repeatedly. The specified code lines will continue to be executed until that situation is no longer True. A little while loop always will check the circumstance before beginning to execute. All contemporary programming languages include loops because they are helpful and frequently used. Using a loop is the best solution to automate a particular repetitive task or stop yourself from composing commonly used to represent your programs.
Let us run a code for a while loop that satisfies the condition for the given input:
EXAMPLE:
number = 0
while number < 10:
print(f"Number is {number}")
number = number + 1
OUTPUT:
Number is 0
Number is 1
Number is 2
Number is 3
Number is 4
Number is 5
Number is 6
Number is 7
Number is 8
Number is 9
CODE EXPLANATION:
The loop starts with initializing a variable called the number to 0. Then the while loop starts with a condition: number < 10. If this condition is true, the code block inside the loop will be executed repeatedly. One print() statement makes up the entire block of code contained within the loop. The formatted string representing the value of a numeric variable is printed using an f-string in this statement.
After the print() statement, the value of the number variable is incremented by 1 using the number = number + 1 statement. The loop stops iterating when the number is no longer less than 10. The program ends after the loop closes at that point. The loop then finishes, and the program is finished. So, this program will output the string "Number is x" ten times, where x is a number between 0 and 9. This is because the loop iterates as long as the number is less than 10, which means it will iterate ten times in total.
Here is another example code for a while loop in Python:
EXAMPLE:
num = 10
while num >= 0:
print("The value of num is:", num)
num -= 2
OUTPUT:
The value of num is: 10
The value of num is: 8
The value of num is: 6
The value of num is: 4
The value of num is: 2
The value of num is: 0
CODE EXPLANATION:
The code starts with initializing a variable num to 10. Then the while loop starts with a condition: num >= 0. If this condition is true, the code block inside the loop will be executed repeatedly.
One print() statement makes up the entire block of code contained within the loop. This statement prints the current value of num using an f-string. After the print() statement, the value of num is decremented by 2 using the num -= 2 statement. The loop continues to iterate until the value of num is no longer greater than or equal to 0. At that point, the loop exits, and the program ends.
Interview Questions on While Loop:
1. Print an Even number of Numbers from 1 to 30:
EXAMPLE:
num = 2
while num >= 2 and num!=30:
print("The value of num is:", num)
num += 2
OUTPUT:
The value of num is: 2
The value of num is: 4
The value of num is: 6
The value of num is: 8
The value of num is: 10
The value of num is: 12
The value of num is: 14
The value of num is: 16
The value of num is: 18
The value of num is: 20
The value of num is: 22
The value of num is: 24
The value of num is: 26
The value of num is: 28
CODE EXPLANATION:
This code is an example of a while loop in Python that prints the variable’s value called num and increments it by two until it reaches 30. The loop starts by initializing the num variable to 2. The condition in the while statement is that the value of num must be greater than or equal to 2 and not equal to 30 for the loop to continue executing.
Inside the loop, the print() function is called to display the current value of num. The value of num is then incremented by 2 using the num += 2 statement. The loop continues to execute until the value of num is either greater than or equal to 2 and not equal to 30. The loop then finishes, and the program is finished. This code demonstrates how to use a while loop to repeat a code block multiple times if a certain condition is true. In this case, the loop prints the value of num and increments it by two until it reaches 30 while also checking that num is greater than or equal to 2.
2. Write a program that uses a while loop to ask the user to guess a number
from 1 to 50:
EXAMPLE:
import random
secret_num = random.randint(1,50)
guess = 0
tries = 0
while guess != secret_num:
guess = int(input("Guess a number between 1 and 50: "))
tries += 1
if guess == secret_num:
print("Congratulations! You guessed the number in", tries, "tries.")
elif guess < secret_num:
print("Your guess is too low.")
print("Hint:try to Increase the number")
else:
print("Your guess is too high.")
print("Hint:try to Decrease the number")
OUTPUT:
Guess a number between 1 and 50: 52
Your guess is too high.
Hint: try to Decrease the number
Guess a number between 1 and 50: 20
Your guess needs to be higher.
Hint: try to Increase the number
Guess a number between 1 and 50: 25
Your guess needs to be higher.
Hint: try to Increase the number
Guess a number between 1 and 50: 30
Your guess needs to be higher.
Hint: try to Increase the number
Guess a number between 1 and 50: 34
Your guess is too high.
Hint: try to Decrease the number
Guess a number between 1 and 50: 33
Your guess is too high.
Hint: try to Decrease the number
Guess a number between 1 and 50: 32
Your guess is too high.
Hint: try to Decrease the number
Guess a number between 1 and 50: 31
Congratulations! You guessed the number in 8 tries.
CODE EXPLANATION:
The first thing that the program does is it uses random to produce a number between 1 and 50 using the random.randint() function and stores it in the secret_num variable. The program then initializes two variables: guess and tries to 0. The while loop starts with a condition: guess != secret_num. As long as the user's guess does not match the program's produced secret number, the loop will keep running. Inside the loop, the program asks the user for a guess using the input() function and converts it to an integer using the int() function. One by the program subsequently increases the attempts variable.
The program checks if the guess is correct using an if statement. If the guess is accurate, it prints a message of congratulations and how many trials it took to estimate the number. If the guess is too low, it prints a message informing the user and provides a hint to increase the number. Similarly, if the guess is too high, it prints a message informing the user and provides a hint to decrease the number. Until the user correctly guesses the number, the loop iterates continuously. The program stops when the right estimate is made, ending the loop. The program is a fun and interactive way to practice using while loops and conditional statements in Python.
3. Write a program that uses a while loop to print the first ten integers and their squares:
EXAMPLE:
number = 1
while number <= 10:
square = number ** 2
print(f"{number} square: {square}")
number += 1
OUTPUT:
1 square: 1
2 square: 4
3 square: 9
4 square: 16
5 square: 25
6 square: 36
7 square: 49
8 square: 64
9 square: 81
10 square: 100
CODE EXPLANATION:
The variable number is initialized to 1 outside the loop. For the loop condition to remain in effect, the number must be less than or equal to 10.
Inside the loop, the program calculates the square of the current number by using the exponentiation operator **. The variable square is then given the value that results. Then, the program uses a formatted string to print the value of the number and its corresponding square. The formatted string includes placeholders for numbers and squares, which are replaced by their corresponding values when the string is printed.
After printing the current number and its square, the program increments the number by 1 to move on to the next integer. The loop continues to execute until the number exceeds 10, the loop condition becomes false, and the loop exits.
4. Can you provide an example of using the break keyword in a while loop?
Here's an example of a while loop that uses the break keyword to exit the loop when a certain condition is met:
EXAMPLE:
i = 0
n=int(input("Enter n value:"))
while True:
if i == n:
break
print(i)
i += 1
OUTPUT:
Enter n value:6
0
1
2
3
4
5
CODE EXPLANATION:
The code initializes a variable i to 0. The user is prompted to enter a value for n. The while loop runs indefinitely (while True:). Inside the loop, the code checks if i is equal to n. If so, the break keyword is executed, causing the loop to exit. If i is not equal to n, the current value of i is printed using the print() function, and then i is incremented by 1. The loop continues to iterate until i is equal to n.
For example, if the user enters 5 for n, the code will print the numbers 0 through 4 and then terminate.
5. Which statement within a loop is used to skip the remaining lines of code for the current iteration so that the next iteration of the loop can be executed?
The continue statement is used within a loop to skip the remaining lines of code for the current iteration so that the next iteration of the loop can be executed.
When the continue statement is encountered inside a loop, the loop immediately goes to the next iteration without executing any further statements for the current iteration. This can be useful if you want to skip over certain values or conditions inside a loop without terminating the loop entirely.
EXAMPLE:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for num in numbers:
if num % 2 == 0:
continue
print(num)
OUTPUT:
1
3
5
7
9
CODE EXPLANATION:
The code defines a list of numbers called numbers. The for loop iterates over each item in numbers, one at a time, and assigns the current item to the variable num. Inside the loop, the code checks if the current num is even (i.e., num % 2 == 0). If num is even, the continue statement is executed, which skips over the remaining code for the current iteration and immediately goes to the next iteration of the loop. If num is odd (i.e., num % 2 != 0), the code prints the current num using the print() function.
The loop continues to iterate over the remaining items in numbers, executing the same conditional statements for each iteration.
6. Which of the following Python loops is counter-controlled?
- for loop
- while loop
- do-while loop
- none of the above
From the above Question, the Answer is for loo; aA for loop is a counter-controlled loop in Python. In a for loop, we specify an iterable object (such as a list, tuple, or string), and the loop automatically iterates over each element in the object, one at a time. The loop variable (usually i, j, or k) is automatically incremented after each iteration, so you don't need to increment it manually.
Here's an Example code for the above question:
EXAMPLE:
fruits = ["1", "apple", 2.3]
for fruit in fruits:
print(fruit)
OUTPUT:
1
apple
2.3
CODE EXPLANATION:
The code defines a list of fruits containing three items of mixed data types: a string "1", a string "apple", and a float 2.3. The for loop iterates over each item in fruits, one at a time, and assigns the current item to the variable fruit. The code prints the current fruit inside the loop using the print() function. The loop continues to iterate over the remaining items in fruits, executing the same statement for each iteration.
7. What would happen if the following code was run?
sum = 0
for i in range(5, 0, -2):
sum += i > sum
print(sum)
- 1
- 0
- 2
- 3
From the above question option, (c) is correct because the code initializes a variable called sum to 0. The for loop uses the range() function to create a sequence of numbers that starts at 5, ends at 0 (not inclusive), and decrements by two at each step. This creates the sequence [5, 3, 1]. For each number in the sequence, the code checks if the number is greater than the current value of the sum. If the number is greater, the expression I> sum evaluates to True, and the sum value is updated by adding True (which has a value of 1). If the number is not greater than the sum, the expression I> sum evaluates to False, and nothing happens. The loop continues to iterate over the remaining numbers in the sequence, executing the same conditional statement for each iteration. After the loop completes, the final value of the sum is printed. When i equals 5, the sum equals 1 (since 5 > sum). When i is 3, sum turns into 2 (since 5 > sum). The sum does not change when i equals one because now it is not greater than the sum. The print command outputs the sum, which equals 2.
8. Which of the subsequent lines of code will lead to an infinite loop?
- while(None):
print ('Hello') - while(0):
print ('Hello') - while(range(-1)):
print ('Hello') - while(-1):
print ('Hello')
From the above Question, option (d) is correct; This code creates an infinite loop that continuously prints the message "Hello". The loop condition is set to -1, considered a boolean True value in Python, so that the loop will run indefinitely. The print statement will execute on each iteration of the loop, repeatedly outputting the message "Hello" to the console.
To stop the loop, you must manually interrupt the program or add a conditional statement with a break keyword to terminate the loop after a certain condition is met.
9. What distinguishes a for loop from a while loop?
For and while loops are used in Python to run a code block repeatedly. They do, however, control the loop's iteration differently.
A for loop is used when you want to execute a block of code a specific number of times or to iterate over a sequence of items (such as a list or a string). The for loop iterates over each item in the sequence, assigning the current item to a variable in each iteration.
EXAMPLE:
for i in range(1,11):
print(i)
OUTPUT:
1
2
3
4
5
6
7
8
9
10
CODE EXPLANATION:
The code is written in Python and uses a for loop with the built-in range() function to iterate over a sequence of numbers from 1 to 10 (inclusive).
The range() function generates a sequence of numbers between the specified start and end values, where the start value is inclusive, and the end value is exclusive. In this case, the range is from 1 to 11, but the loop will only iterate from 1 to 10, as the endpoint is not included. The for loop then iterates over this sequence of numbers, and for each iteration, it assigns the current iteration’s value to the variable i. Inside the loop, the print() function is called with the variable i as an argument, which prints the value of i to the console.
Contrarily, a while loop is typically employed to repeat a section of code while a specific condition is true.
Any expression that yields a boolean value in this context is a condition (True or False). The code block inside the loop is run repeatedly if the condition is true.
EXAMPLE:
count = 5
while count > 0:
print(count)
count -= 1
OUTPUT:
5
4
3
2
1
CODE EXPLANATION:
This code initializes the variable count to 5 and then enters a while loop. The loop continues to execute as long as the count value exceeds 0. Inside the loop, the current count value is printed to the console using the print() function, and then the count value is decremented by 1 using the -= operator. This process repeats until the count value is no longer greater than 0, at which point the loop exits. Therefore, running this code will print the numbers 5, 4, 3, 2, and 1 to the console on separate lines in that order.
9. What does a pass command in Python do?
- It does nothing
- It causes the variable to move to another object
- It causes the focus to switch to another path
- It skips printing the output
The answer to the above question is (b). It does nothing.
The pass statement is a null operation in Python - it does nothing. It is used as a placeholder when you need a statement syntactically but don’t want to execute any code. For example, it can be a placeholder for a function or loop you plan to implement later.
10. How do you skip an iteration in a loop in Python?
In Python, you can skip an iteration in a loop using the continue statement. The continue statement is used to immediately move to the next iteration of the loop without executing the remaining code in the current iteration.
Here's an example of using continue to skip odd numbers in a loop that iterates over a list:
EXAMPLE:
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for number in my_list:
if number % 2 == 1:
continue # Skiping odd numbers
print(number)
OUTPUT:
2
4
6
8
10
CODE EXPLANATION:
This code defines a list of numbers from 1 to 10 and then iterates over each number in the list using a loop. For each number, it checks if the number is odd by checking if the remainder of the number divided by 2 is equal to 1 using the modulo operator %.
If the number is odd, the continue keyword is used to skip the rest of the loop for that number and move on to the next number in the list.
If the number is even (i.e. the remainder of the number divided by two is 0), the print function is called to output the number to the console. This means that only the even numbers in the list will be printed.
11. How do you reverse a list using a for loop in Python?
EXAMPLE:
my_list = list(map(int,input("Enter List Elements:").split()))
reverse= []
for i in range(len(my_list)-1, -1, -1):
reverse.append(my_list[i])
print(reverse)
OUTPUT:
Enter List Elements:1 5 2 -3 6
[6, -3, 2, 5, 1]
CODE EXPLANATION:
The input function prompts the user to enter a list of elements separated by spaces. The input function returns a string split into a list of strings using the split() function with a space as the delimiter. The map() function is applied to the list of strings to convert each string to an integer. The list() function converts the map object into a Python list of integers stored in the variable my_list. An empty list named reverse is created to hold the reversed elements. A for loop is used to iterate over the range of indices in the original list in reverse order. Inside the loop, each element from the original list is appended to the reverse list. After the loop finishes, the reverse list contains the elements from the original list in reverse order. Finally, the reversed list is printed using the print() function.
12. Can you give an example of a loop that uses Python’s enumerate() function?
EXAMPLE:
fruits = ['apple', 'banana', 'orange', 'grape']
for index, fruit in enumerate(fruits):
print(index, fruit)
OUTPUT:
0 apple
1 banana
2 orange
3 grape
OUTPUT:
A list named fruits is defined, containing 4 elements: 'apple', 'banana', 'orange', and 'grape'. A for loop is used to iterate over the list of fruits using the enumerate() function. In each iteration of the loop, the enumerate() function returns a tuple containing two values: the current element’s index and the element itself. These values are unpacked into two variables, index and fruit, using tuple unpacking. The print() function prints out the current index and fruit inside the loop. The loop continues until all the fruit list elements have been iterated.
13. How can you iterate over a dictionary's keys and values in a Python loop?
EXAMPLE:
fruits = {'apple': 2, 'banana': 3, 'orange': 1, 'grape': 4}
for fruit, quantity in fruits.items():
print(fruits, quantity)
OUTPUT:
{'apple': 2, 'banana': 3, 'orange': 1, 'grape': 4} 2
{'apple': 2, 'banana': 3, 'orange': 1, 'grape': 4} 3
{'apple': 2, 'banana': 3, 'orange': 1, 'grape': 4} 1
{'apple': 2, 'banana': 3, 'orange': 1, 'grape': 4} 4
CODE EXPLANATION:
A dictionary named fruits contain four key-value pairs where each key represents a fruit name and each value represents its quantity. A for loop is used to iterate over the dictionary fruits using the items() method. In each iteration of the loop, the items() method returns a tuple containing a key-value pair from the dictionary, which is unpacked into two variables, fruit and quantity. Inside the loop, the print() function prints out the current fruit and quantity. The loop continues until all the key-value pairs of the fruits dictionary have been iterated.
14. Explain Python’s zip() function and how it can be used with loops?
Python's zip() function is a built-in function that takes multiple iterable objects (such as lists, tuples, or strings) and returns an iterator that generates tuples containing elements from each of the iterables. The returned iterator stops when the shortest input iterable is exhausted.
EXAMPLE:
names = ['Venkat', 'Vamshi', 'Raju']
ages = [25, 30, 35]
for name, age in zip(names, ages):
print(name, age)
OUTPUT:
Venkat 25
Vamshi 30
Raju 35
CODE EXPLANATION:
Two lists named names and ages are defined, containing three elements, each where each element in names represents a person's name and each element in ages represents that person's age. A for loop is used to iterate over both lists simultaneously using the zip() function. In each iteration of the loop, the zip() function returns a tuple containing one element from names and one from ages, which are unpacked into two variables, name and age, respectively. Inside the loop, the print() function prints out the current name and age. The loop continues until the shortest input iterable (in this case, names) is exhausted.
15. What is the difference between the range() function and the xrange() function in Python?
Range() Function: It returns a list of numbers between the given start and stops numbers (exclusive), with an optional step size. This means that range() generates a list in memory, which can be memory-intensive for large ranges.
Xrange() Function: It generates the numbers on the fly, saving memory. The xrange() function returns a generator object that generates the numbers in the range, one at a time. This is particularly useful when dealing with large ranges, as it avoids generating and storing a large list of numbers in memory.
In Python 2, the range() function and the xrange() function are used to generate a sequence of numbers, but they work differently.
In Python 3, the xrange() function is not available anymore, and the range() function behaves like the xrange() function in Python 2, returning a generator object instead of a list.