Python program to print all positive numbers in a range
Last Updated :
13 Mar, 2023
Given start and end of a range, write a Python program to print all positive numbers in given range.
Example:
Input: start = -4, end = 5
Output: 0, 1, 2, 3, 4, 5
Input: start = -3, end = 4
Output: 0, 1, 2, 3, 4
Example #1: Print all positive numbers from given list using for loop Define start and end limit of range. Iterate from start till the range in the list using for loop and check if num is greater than or equal to 0. If the condition satisfies, then only print the number.
Python3
start, end = - 4 , 19
for num in range (start, end + 1 ):
if num > = 0 :
print (num, end = " " )
|
Output:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Time Complexity: O(N)
Here N is value of range, i.e. (end – start).
Auxiliary Space: O(1)
As constant extra space is used.
Example #2: Taking range limit from user input
Python3
start = int ( input ( "Enter the start of range: " ))
end = int ( input ( "Enter the end of range: " ))
for num in range (start, end + 1 ):
if num > = 0 :
print (num, end = " " )
|
Output:
Enter the start of range: -215
Enter the end of range: 5
0 1 2 3 4 5
Time Complexity: O(N)
Here N is value of range, i.e. (end – start).
Auxiliary Space: O(1)
As constant extra space is used.
Method: Using the lambda function
Python3
a = - 4 ;b = 5
li = []
for i in range (a,b + 1 ):
li.append(i)
positive_num = list ( filter ( lambda x: (x> = 0 ),li))
print (positive_num)
|
Output
[0, 1, 2, 3, 4, 5]
Time Complexity: O(N)
Here N is value of range, i.e. (end – start).
Auxiliary Space: O(1)
As constant extra space is used.
Method: Using the list comprehension
Python3
a = - 4 ;b = 5
out = [i for i in range (a,b + 1 ) if i> 0 ]
print ( * out)
|
Output
[0, 1, 2, 3, 4, 5]
Time Complexity: O(N)
Here N is value of range, i.e. (end – start).
Auxiliary Space: O(1)
As constant extra space is used.
Method: Using enumerate function
Python3
a = - 4 ;b = 5 ;l = []
for i in range (a,b + 1 ):
l.append(i)
print ([a for j,a in enumerate (l) if a> = 0 ])
|
Output
[0, 1, 2, 3, 4, 5]
Time Complexity: O(N)
Here N is value of range, i.e. (end – start).
Auxiliary Space: O(1)
As constant extra space is used.
Method: Using pass()
Python3
a = - 4 ;b = 5
for i in range (a,b + 1 ):
if i< 0 :
pass
else :
print (i,end = " " )
|
Time Complexity: O(N)
Here N is value of range, i.e. (end – start).
Auxiliary Space: O(1)
As constant extra space is used.
Method: Using recursion
Python3
def printPositives(start,end):
if start = = end: return
if start> = 0 :
print (start,end = ' ' )
printPositives(start + 1 ,end)
a,b = - 5 , 10
printPositives(a,b)
|
Output
0 1 2 3 4 5 6 7 8 9
Time Complexity: O(N)
Here N is value of range, i.e. (end – start).
Auxiliary Space: O(N)
As we call recursively N extra space is used.
Method : Using filter() function:
- The range() function produces a range of integers from a to b (inclusive).
- The filter() function is used with a lambda function as its first argument and the range as its second argument. The lambda function returns True for any integer that is greater than or equal to 0.
- The filter() function returns an iterator, which is converted to a list using the list() function.
- The resulting list contains only the positive integers within the range [a, b], which are printed to the console using the print() function.
So, the overall approach is to use the range() function to generate a range of integers, filter out the negative integers using the filter() function with a lambda function, and convert the resulting iterator to a list using the list() function.
Python3
a = - 4
b = 5
positive_nums = list ( filter ( lambda x: x > = 0 , range (a, b + 1 )))
print (positive_nums)
|
Output
[0, 1, 2, 3, 4, 5]
Time Complexity: O(N) as we are iterating to the range between a and b.
Space Complexity: O(N) as list() function creates a new list with O(n) space complexity.
Please Login to comment...