【问题标题】:Why are both of these giving me errors with the variable "testnum"?为什么这两个都给我变量“testnum”的错误?
【发布时间】:2022-01-17 07:14:58
【问题描述】:

定义偶数(n1,n2): # 你的代码在这里 lst_evennumbers=[] 对于范围内的 x(n1,n2): testnum=x/2 if type(testnum) == type(int()) lst_evennumbers.append(x)

return lst_evennumbers

定义偶数(n1,n2): # 你的代码在这里 lst_evennumbers=[]

for x in rang(n1, n2):
     testnum=x/2
    if testnum % 2 == 0
        lst_evennumbers.append(x)


return lst_evennumbers

【问题讨论】:

  • 仔细检查缩进非常
  • 那和你的问题的格式在这里。它实际上是不可读的。此外,当然,如果不说明是哪个错误,说它是“给我错误”是没有用的,所以下一个搜索错误消息的人(你这样做了,对吗?)可以在这里找到答案。作为新用户,从tour 开始阅读How to Ask
  • 还有...

标签: python loops for-loop


【解决方案1】:

尝试在您的 def even_numbers 函数中进行以下更改:

for x in range(n1, n2):
    testnum = x
    if testnum % 2 == 0:
        lst_evennumbers.append(x)


return lst_evennumbers

【讨论】:

    【解决方案2】:

    解决方案

    您的第一个问题是您的 if 语句执行不正确。似乎您想使用需要 else 的三元 if 语句,即使您不想返回任何要返回的内容,如果您确实想要一个空的 else,只需在 @ 之后使用反斜杠(\) 987654323@:

    这里是三元if stsemnt的形式

    <var> = n if n == <condition> else \
    

    其次要检查是否有偶数,您应该检查除以 2 是否有余数(如果是 int,则不检查)。

    方法如下:

    testnum if x % 2 == 0 else \
    

    以下是所有更正后的代码:

    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
    

    或者如果您更喜欢普通的 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
          
    

    【讨论】:

      【解决方案3】:

      您的范围将不必要地包含奇数。

      试试这个:

      def even_numbers(n1, n2):
          global lst_evennumbers
          if n1 % 2 != 0:
              n1 += 1
          lst_evennumbers += [e for e in range(n1, n2, 2)]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-07
        • 1970-01-01
        • 2022-08-12
        • 2012-04-25
        • 1970-01-01
        • 1970-01-01
        • 2015-06-25
        • 2013-11-14
        相关资源
        最近更新 更多