为什么我无法从类中另一个方法调用的方法中的if块获取None代替int

Prabhav Jani

这是代码,我正在尝试使用类内部的方法获取二进制搜索结果。该类具有更多功能,但只有该功能给出错误的输出(None以整数表示)。if15部分从行号10引起问题。

class Solution:
    def getNum(self, nums, x):
        L_nums = len(nums)
        j = self.binary_search( nums, 0, L_nums-1, x)
        print("j=",j)
   
   
    def binary_search(self, nums, start, end, x):
        print("BS called  start=>", start,"end=>", end,"x=>", x)
        if end==start:
            if nums[end]==x:
                return end
            else:
                print("called else and returing -1")
                return -1
        i = (end-start)//2 + start
        print("i=",i)
        if x==nums[i]:
            return i
        elif x>nums[i]:
            self.binary_search(nums, i+1, end, x)
        else:
            self.binary_search(nums, start, i-1, x)


sol = Solution()
sol.getNum([1,3,5,7,9],1)

输出:此处j应为0,以代替返回None

BS called  start=> 0 end=> 4 x=> 1
i= 2
BS called  start=> 0 end=> 1 x=> 1
i= 0
j= None
斯蒂芬·克鲁格洛夫(Stepan Kruglov)

对您的问题的简短回答:在原始21,23中包括“返回”。

  1.    elif x>nums[i]:
    
  2.        return self.binary_search(nums, i+1, end, x)
    
  3.    else:
    
  4.        return self.binary_search(nums, start, i-1, x)
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法从Java中另一个类调用方法

为什么在Java中无法将一个类的getter方法识别为另一个类?

为什么不能从Java的另一个包中的继承类调用受保护的方法?

在另一个类的try catch块中调用方法

Repaint()方法在另一个类中调用

如何从另一个类中迅速调用另一个方法?

在Ruby的另一个类中的一个类中调用方法

如果从另一个类中调用它,为什么我的ArrayList为空?

无法在同一类JS的另一个方法中调用方法

无法从同一类中的另一个方法调用一个方法

在Xamarin Forms中,如何调用MainActivity的方法或从另一个类获取MainActivity的“ Window”?

如何从一个块中获取对象并在另一个类或方法中使用它?

我需要一种服务来调用另一个类中的方法。那会是什么?

为什么从另一个ActionResult方法中调用PartialView时不调用它?

无法在另一个类的Async任务中从我的SQLiteOpenHelper类运行方法

为什么我不能从另一个类调用方法

从Python 2.7中的另一个类方法调用一个类方法

在PHP的另一个类中调用方法

如何在我的主类的另一个类中调用方法?

无法在Android中调用另一个类的方法

从UIButton中的另一个类调用方法

无法在另一个类中调用类方法

为什么不从另一个类中调用一个类的静态方法“ main”?

Activity 方法在 android 中的 oncreate 之前从另一个类获取调用

为什么我不能在另一个类中调用静态方法?

无法从 JAVA 中同一类的另一个方法调用方法

在另一个类的方法中调用类实例的正确方法是什么?

无法从另一个单例类调用在一个类中声明的方法

javascript 为什么从同一个类中的另一个方法调用一个方法需要这个?