繁体   English   中英

为什么这两个都给我变量“testnum”的错误?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM