def even_numbers(n1, n2): # your code here lst_evennumbers=[] for x in rang(n1, n2): testnum=x/2 if type(testnum) == type(int()) lst_evennumbers.append(x)
return lst_evennumbers
def even_numbers(n1, n2): # your code here lst_evennumbers=[]
for x in rang(n1, n2):
testnum=x/2
if testnum % 2 == 0
lst_evennumbers.append(x)
return lst_evennumbers
CodePudding user response:
Try making following changes in your def even_numbers function:
for x in range(n1, n2):
testnum = x
if testnum % 2 == 0:
lst_evennumbers.append(x)
return lst_evennumbers
CodePudding user response:
Solution
Your first problem is that you if statement is done incorrectly. It seems you want to use a ternary if statement which requires an else even if you don't want to return anything to be returned otherwise, if you do want an empty else just use a backslash \:
like so:
testnum = x/2 if type(testnum) == int() else \
Secondly to check if something is an integer type do this:
if type(<var>) == int():`
Lastly to check if something is even you should check if a division by 2 has any remainders. It is worth noting that your devision by 2 before your check is giving you errors as they should both be ints and a division will give you a float.
like so:
testnum if x % 2 == 0 else \
Finally, here is all the corrected code code:
def even_numbers(n1, n2): # your code here
lst_evennumbers=[]
for x in range(n1, n2):
testnum = x if x % 2 == 0 else \
lst_evennumbers.append(x)
return lst_evennumbers
def even_numbers(n1, n2): # your code here
lst_evennumbers=[]
for x in range(n1, n2):
if testnum % 2 == 0:
lst_evennumbers.append(x)
return lst_evennumbers
Or if you prefer normal if staements:
def even_numbers(n1, n2): # your code here
lst_evennumbers=[]
for x in range(n1, n2):
if type(testnum) == int():
testnum= x/2
lst_evennumbers.append(x)
return lst_evennumbers
def even_numbers(n1, n2): # your code here
lst_evennumbers=[]
for x in range(n1, n2):
testnum=x/2
if testnum % 2 == 0:
lst_evennumbers.append(x)
return lst_evennumbers
CodePudding user response:
Your range will unnecessarily include odd numbers.
Try this:
def even_numbers(n1, n2):
global lst_evennumbers
if n1 % 2 != 0:
n1 = 1
lst_evennumbers = [e for e in range(n1, n2, 2)]
