Algorithms and Data Structures学习———001.Fraction类

Algorithms and Data Structures学习———001.Fraction类

1、学习内容:

①学习重写Fraction类实现分数加法以及最大公约数算法
②理解浅相等与深相等

2、学习时间:2021.1.21

3、代码:

class Fraction:
	def __init__(self, top, bottom):
		self.num = top
		self.den = bottom

	def show(self):
		print(f"{self.num}/{self.den}")

	def __str__(self):
	"""重写str方法"""
		return str(self.num) + "/" + str(self.den)

	def __add__(self, otherfraction):
	"""重写add方法"""
		newnum = self.num * otherfraction.den + \
					self.den * otherfraction.num
		newden = self.den * otherfraction.den
		common = gcd(newnum, newden)
		return Fraction(newnum//common, newden//common)

	def __eq__(self, other):
	"""重写eq方法"""
		firstnum = self.num * other.den
		secondnum = other.num * self.den

		return firstnum == secondnum

def gcd(m, n):
	while m%n != 0:
		oldm = m
		oldn = n
		m = oldn
		n = oldm%oldn		
	return n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值