数学运算
Python 提供的基本数据类型 int、float 可以做整数和浮点的四则运算以及乘方等运算。 但是,四则运算不局限于int和float,还可以是有理数、矩阵等。 要表示有理数,可以用一个Rational类来表示: class Rational(object):
def __init__(self, p, q):
self.p = p
self.q = q
p、q 都是整数,表示有理数 p/q。 如果要让Rational进行+运算,需要正确实现__add__: class Rational(object):
def __init__(self, p, q):
self.p = p
self.q = q
def __add__(self, r):
return Rational(self.p * r.q + self.q * r.p, self.q * r.q)
def __str__(self):
return '%s/%s' % (self.p, self.q)
__repr__ = __str__
现在可以试试有理数加法: >>> r1 = Rational(1, 3)
>>> r2 = Rational(1, 2)
>>> print r1 + r2
5/6
任务
def gcd(a,b):
if(b==0):
return a
return gcd(b,a%b)
class Rational(object):
def __init__(self, p, q):
self.p = p
self.q = q def __add__(self, r):
return Rational(self.p * r.q + self.q * r.p, self.q * r.q) def __sub__(self, r):
return Rational(self.p * r.q - self.q * r.p, self.q * r.q) def __mul__(self, r):
return Rational(self.p * r.p, self.q * r.q) def __div__(self, r):
return Rational(self.p*r.q,self.q*r.p) def __str__(self):
g=gcd(self.p,self.q)
return '(%d/%d)' %(self.p/g,self.q/g) __repr__ = __str__ r1 = Rational(1, 2)
r2 = Rational(1, 4)
print r1 + r2
print r1 - r2
print r1 * r2
print r1 / r2

能够输出想要的结果。

python重载四则运算符及输出格式设置的更多相关文章

  1. Python重载比较运算符

    对象包含的内置方法 class MyObj(object): def __init__(self): self.value = 0 myObj = MyObj() print(dir(myObj)) ...

  2. Python 中的运算符重载

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 一种运算符对于不同类型的对象,有不同的使用方式.例如, + 用于整型对象,表示两个数相加:用于字符串 ...

  3. c/c++赋值函数(重载=号运算符)

    c/c++赋值函数(重载=号运算符) 首先c++里的各种运算符都是用函数实现的,比如=,就等号函数. 所以当用=给一个对象赋值的时候,实际调用的是=号所对应的=号函数. 分析下面的代码 #includ ...

  4. python中的运算符及表达式及常用内置函数

    知识内容: 1.运算符与表达式 2.for\while初步了解 3.常用内置函数 一.运算符与表达式 python与其他语言一样支持大多数算数运算符.关系运算符.逻辑运算符以及位运算符,并且有和大多数 ...

  5. windows和linux中搭建python集成开发环境IDE——如何设置多个python环境

    本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...

  6. python基础之运算符

    算术运算符 运算符 描述 实例 + 加 - 两个对象相加 a + b 输出结果 31 - 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -11 * 乘 - 两个数相乘或是返回一个被重复 ...

  7. C++重载流运算符,将存储结构体的vector直接写入文件

    我们知道,当vector很大的时候,如果使用循环的方式将其中的元素写入文件将非常费时,因此有没有办法将vector一次性写入文件呢? 采用流运算符重载的方法可以做到,不仅基本类型的vector可以一次 ...

  8. Windows下python virtualenv使用,镜像源设置,批量安装,安装scipy,numpy

    镜像源设置 在C:\Users\Administrator\下建立pip文件夹,然后在里面创建了一个pip.ini 内容为: [global]index-url = https://pypi.tuna ...

  9. C++运算符重载——重载特殊运算符

    1.重载赋值运算符= 赋值运算符用于同类对象间的相互赋值.赋值运算符只能被重载为类的非静态成员函数,不能重载为友元函数和普通函数. 对于用户自定义的类而言,如果没有重载赋值运算符,那么C++编译器会为 ...

随机推荐

  1. FFMpeg ver 20160219-git-98a0053 滤镜中英文对照 2016.02.21 by 1CM

    FFMpeg ver 20160219-git-98a0053 滤镜中英文对照 2016.02.21 by 1CM T.. = Timeline support 支持时间轴 .S. = Slice t ...

  2. 记录linux系统用户shell终端操作记录

    在 /etc/profile 最后添加 export HISTTIMEFORMAT='[%F %T]: ' export PROMPT_COMMAND='{ msg=$(history 1 | { r ...

  3. Effective C++ -----条款04:确定对象被使用前已被初始化

    为内置型对象进行手工初始化,因为C++不保证初始化它们. 构造函数最好使用成员初值列,而不要在构造函数本体内使用赋值操作.初值列列出的成员变量,其排列次序应该和它们在class中的声明次序相同. 为免 ...

  4. manage account

    #!/bin/bash # #Delete_user - Automates the steps to remove an account # ############################ ...

  5. Mathematics:Ultra-QuickSort(POJ 2299)

    极度快速排序 题目大意:在一个输入数组中找逆序数... 水题,求逆序数的很好的算法,就是MergeSort,和我之前发的DNA那个差不多,最后就是后台数据很大,答案要用long long #inclu ...

  6. 手风琴特效 transition

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  7. 常用js学习

    http://www.cnblogs.com/qiantuwuliang/tag/js/

  8. 【python】id()函数

    来源:百度知道 >>> a=2.0 >>> b=2.0 >>> id(a) 524440880 >>> id(b) 524440 ...

  9. 20145213《Java程序设计》第八周学习笔记

    20145213<Java程序设计>第八周学习笔记 教材学习内容总结 "桃花春欲尽,谷雨夜来收"谷雨节气的到来意味着寒潮天气的基本结束,气温回升加快.刚出冬的我对于这种 ...

  10. 26. Remove Duplicates from Sorted Array

    题目: Given a sorted array, remove the duplicates in place such that each element appear only once and ...