这里写自定义目录标题
Introduction
最近开始学数据结构,打算用python作为语言,看的书是米勒和戴维的《Python数据结构与算法分析》。目前大三,希望能一个月速成,奥利给!!注意到课本中的练习题没有参考答案,我自己写了一份放到这上面,更详细的代码在我的github:https://github.com/Yunzz-goon/PythonForDataStructure
欢迎大家一起交流!!!
第一章还没开始讲算法,先介绍了一下python基本的操作。
练习题
- 实现简单的方法getNum 和getDen ,它们分别返回分数的分子和分母。
class Fractionn:
def __init__(self,top,bottom):
self.fenzi=top
self.fenmu=bottom
def __getfenzi__(self):
print(self.fenzi)
def __getfenmu__(self):
print(self.fenmu)
myf=Fractionn(2,5)
myf.__getfenzi__()
myf.__getfenmu__();
- 如果所有分数从一开始就是最简形式会更好。修改Fraction 类的构造方法,立即使用最大公因数来化简分数。注意,这意味着__add__
不再需要化简结果。
#q2 & q3 #我们还没有对输入的分母进行error报错---需要注意输入Fraction(a,b),b不能是0
class Fraction:
def __init__(self,top,bottom):
n=gcd(top,bottom)
self.fenzi=top//n
self.fenmu=bottom//n
def __show__(self):
print(self.fenzi,'/',self.fenmu)
def __add__(self,self2):
newfenzi=self.fenzi*self2.fenmu+self.fenmu*self2.fenzi
newfenmu=self.fenmu*self2.fenmu
Neww=Fraction(newfenzi,newfenmu)
return Neww
def __sub__(self,self2):
newfenzi=self.fenzi*self2.fenmu-self.fenmu*self2.fenzi
newfenmu=self.fenmu*self2.fenmu
Neww=Fraction(newfenzi,newfenmu)
return Neww
def __mul__(self,self2):
newfenzi=self.fenzi*self2.fenzi
newfenmu=self.fenmu*self2.fenmu
Neww=Fraction