[英]Why are both of these giving me errors with the variable "testnum"?
def even_numbers(n1, n2): # 你的代码在这里 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): # 你的代码在这里 lst_evennumbers=[]
for x in rang(n1, n2):
testnum=x/2
if testnum % 2 == 0
lst_evennumbers.append(x)
return lst_evennumbers
您的第一个问题是您的 if 语句执行不正确。 似乎您想使用一个需要 else 的三元 if 语句,即使您不想返回任何要返回的内容,如果您确实想要一个空的 else ,只需使用反斜杠\
:
像这样:
testnum = x/2 if type(testnum) == int() else \
其次要检查某物是否是 integer 类型,请执行以下操作:
if type(<var>) == int():`
最后要检查是否有东西,你应该检查 2 的 deivsion 是否有任何余数,如下所示:
testnum = x % 2 == 0 else \
最后,这是所有更正后的代码:
def even_numbers(n1, n2): # your code here
lst_evennumbers=[]
for x in range(n1, n2):
testnum = 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
或者,如果您更喜欢正常的 if 语句:
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
尝试在您的 def even_numbers function 中进行以下更改:
for x in range(n1, n2):
testnum = x
if testnum % 2 == 0:
lst_evennumbers.append(x)
return lst_evennumbers
您的范围将不必要地包括奇数。
尝试这个:
def even_numbers(n1, n2):
global lst_evennumbers
if n1 % 2 != 0:
n1 += 1
lst_evennumbers += [e for e in range(n1, n2, 2)]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.