Wadicus
Wadicus

Reputation: 13

Using range to display numbers in a interval

I'm very new to python and I've just been trying some simple programs, I'm currently trying to make a program that shows all even numbers in a interval that the user inputs. I have it working but I think I have a logic error which I can't figure out. If I use the interval 2-8 my program will print

2
2
4
4
4
4
6
6
6
6
6
6

My code is:

startingnumber = int(input("Please enter a starting even number:"))
if startingnumber%2==0:
    endingnumber = int(input("Please enter an ending number:"))
else:
    print("Please eneter an even number")

for num in range(startingnumber,endingnumber):
        for i in range(num):
            if (num%2) ==0:
                print(num)

Could anyone try help to spot my mistake please? Thanks

Upvotes: 1

Views: 311

Answers (3)

Archit Garg
Archit Garg

Reputation: 1012

Just use a step of 2:

range(start, end, step)

#This is not suggestible way to code in Python, but it gives a better understanding


numbers = range(1,10)

even = []

for i in numbers:

     if i%2 == 0:

       even.append(i)
print (even)

Upvotes: 1

muddyfish
muddyfish

Reputation: 3650

Instead of doing

for num in range(startingnumber,endingnumber):

do

for num in range(startingnumber+startingnumber%2,endingnumber+1,2):
    print(num)

Upvotes: 0

Stiffo
Stiffo

Reputation: 818

for num in range(startingnumber,endingnumber):
            if (num%2) ==0:
                print(num)

You have an extra loop you don't need.

Upvotes: 1

Related Questions