Python 类内的递归除法
我试图练习OOP和递归,但遇到了一些问题。我认为它的递归方面是正确的,但我构造类的方式是错误的 它应该如何工作:Python 类内的递归除法,python,oop,loops,recursion,Python,Oop,Loops,Recursion,我试图练习OOP和递归,但遇到了一些问题。我认为它的递归方面是正确的,但我构造类的方式是错误的 它应该如何工作: 它应该从6中减去1,直到x=0。每次向索引添加1。当x等于0时,函数应返回索引 哪里出错: 下面的代码说我有一个错误,因为divide接受三个参数,而我只提供了两个。但我认为赛尔夫并不是一个真正的论点。这只是课堂上必须做的事情 如何使下面的代码按预期工作 class Division(object): def __init__(self, x, y): se
它应该从6中减去1,直到x=0。每次向索引添加1。当x等于0时,函数应返回索引 哪里出错:
下面的代码说我有一个错误,因为divide接受三个参数,而我只提供了两个。但我认为赛尔夫并不是一个真正的论点。这只是课堂上必须做的事情 如何使下面的代码按预期工作
class Division(object):
def __init__(self, x, y):
self.index = 0
self.x = x
self.y = y
def divide(self, x, y):
self.index += 1
if self.x <= 0:
return self.index
return divide(self.x-self.y, self.y)
print(Division.divide(6,1))
类别划分(对象):
定义初始化(self,x,y):
self.index=0
self.x=x
self.y=y
def分割(自、x、y):
自索引+=1
如果self.x我不明白你为什么要在这里有一个对象。。。它是什么模型?这是一个没有对象的解决方案
def divide(a, b, q = 0):
if a < b:
return q
return divide(a-b, b, q+1)
def divide(a,b,q=0):
如果a
divide(1,2)。divide(6,1)
,您需要首先创建一个实例。请注意,您在divide
中没有使用x
和y
(不是根本原因,只是查看设计的提示)。您必须调用self.divide
。。。没有全局的divide
方法…旁注经验法则:当你有一个类有两个方法,其中一个是\uuuu init\uuuuuu
,你不应该使用类。@JoranBeasley谢谢你。这让我得到了我想要的输出。
class Division(object):
def __init__(self):
self.index = 0
def divide(self, x, y):
self.index += 1
if x <= y:
return self.index
return self.divide(x-y, y)
print(Division().divide(6,1))
def divide(a, b, q = 0):
if a < b:
return q
return divide(a-b, b, q+1)