Reputation: 13
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
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
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
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