Prevent print() from emitting newlines?

Viewed 44

i did this programme to find the even and odd numbers of n numbers entered by the user, But this was not exactly i wanted, i want to print like ==> even numbers are 2,4,6,8....100 and odd numbers are 1,3,5,7,9....99 in a single line if the user entered n=100. but mine print 100 lines, how can i print it in 2 lines

number=input("enter the numbers")
int_numb=int(number)
for i in range(1,(int_numb+1)):
    if i%2==0:
        print(f"even number{i}")
    else:
        print(f"odd number {i}")
1 Answers

You can use two for loops (or the builtin map function), and the range function also accepts a step parameter which can be useful to only iterate over the even/odd numbers in a set:

number = input("enter the numbers")
int_numb = int(number)

end = int_numb + 1

print('even numbers are: ', end='')

print(', '.join(map(str, range(2, end, 2))))
# or:
#  print(', '.join(str(i) for i in range(2, end, 2)))

print('odd numbers are: ', end='')
print(', '.join(map(str, range(1, end, 2))))

Output:

enter the numbers10
even numbers are: 2, 4, 6, 8, 10
odd numbers are: 1, 3, 5, 7, 9

Using for loops

The above code is equivalent to, using only for loops, and str.join to join elements in a list:

number = input("enter the numbers")
int_numb = int(number)

end = int_numb + 1

nums = []
for i in range(2, end, 2):
    nums.append(str(i))

print('even numbers are: ', end='')
print(', '.join(nums))

nums = []
for i in range(1, end, 2):
    nums.append(str(i))

print('odd numbers are: ', end='')
print(', '.join(nums))
Related