python数学运算的类型转换

类型转换
Rational类实现了有理数运算,但是,如果要把结果转为 int 或 float 怎么办?

考察整数和浮点数的转换:

>>> int(12.34)
12
>>> float(12)
12.0
如果要把 Rational 转为 int,应该使用:

r = Rational(12, 5)
n = int(r)
要让int()函数正常工作,只需要实现特殊方法__int__():

class Rational(object):
    def __init__(self, p, q):
        self.p = p
        self.q = q
    def __int__(self):
        return self.p // self.q
结果如下:

>>> print int(Rational(7, 2))
3
>>> print int(Rational(1, 3))
0
同理,要让float()函数正常工作,只需要实现特殊方法__float__()。
class Rational(object):
    def __init__(self, p, q):
        self.p = p
        self.q = q

    def __int__(self):
        return self.p // self.q

    def __float__(self):
        return float (self.p)/self.q

print float(Rational(7, 2))
print float(Rational(1, 3))

注意:python的类型转换不是自动的,需要自己手动强制类型转换。

时间: 2024-12-06 06:59:14

python数学运算的类型转换的相关文章

Python数学运算

python中的加减乘除比其他的语言简单,不需要对其赋值变量 (1)加减乘除 >>> print(1+10) #加法 11 >>> print(10-1) #减法 9 >>> print(10*1) #乘法 10 >>> print(10/2) #除法 5.0 >>> print(10**2) #乘方 100 (2)判断 判断返回的是True或者False >>> print(5==5) #等于 T

Python 基础学习之: Python math 模块、cmath 模块 区别是 cmath 模块运算的是复数,math 模块运算的是数学运算 Python数学函数列表及解释 Python math 模块提供了许多对浮点数的数学运算函数。 Python cmath 模块包含了一些用于复数运算的函数

Python math 模块.cmath 模块 Python 中数学运算常用的函数基本都在 math 模块.cmath 模块中. Python math 模块提供了许多对浮点数的数学运算函数. Python cmath 模块包含了一些用于复数运算的函数. cmath 模块的函数跟 math 模块函数基本一致,区别是 cmath 模块运算的是复数,math 模块运算的是数学运算. 要使用 math 或 cmath 函数必须先导入: import math 查看 math 查看包中的内容: impo

Python数值基本运算和其它数学运算方法

数值基本运算 支持最基本的数学运算符号:*+ - / % **.取正负+x -x,地板除法//,除法和取模divmod(x, y)**: >>> 123 + 345 468 >>> 345 - 123 222 >>> 1.5 * 4 6.0 >>> 2/5 0.4 >>> 2 % 3 2 >>> 3 ** 2 9 >>> 3.00 ** 2 9.0 >>> 3 *

Python基础 ---(1)对象及数字对象与数学运算

1.什么是对象? Python语言中,所有的 数据 都被称之为 对象.Python代码,就是要 处理各种 对象 ,从而完成具体的任务. # 首行要顶格写,python对大小写敏感 print ('hello world') print ('你好,世界') 2.对象类型 Python语言中,常用的数据类型有: 整数,例如:10 小数(浮点数),例如:3.8 字符串,例如:class_one 列表,例如:[ a,b,c ] 元组,例如:(a,b,c) 字典,例如:{1:'jack',2:'hanme

Python 集合的各种操作 数学运算 关系操作 增删改查 生成式

# 集合是无序的 是可变的 不能重复 允许数学运算 分散存储 # 创建# collegel = {'哲学','经济学','法学','教育学'}## # {'教育学', '经济学', '法学', '哲学'}# print(collegel)## # set# collegel2 = set(['金融学','哲学','经济学','法学','教育学'])# print(collegel2)## # 使用set创建字符串集合# collegel3 = set('中华人民共和国')# # {'共', '华

python中的数据类型转换

今天想要写的是python中比较简单但是又相对重要的数据类型之间的互相转换.所谓数据类型转换其实很简单,生活中就有很多的例子,比如:15+2.2=17.2,看着好像只是一次普通的数学运算,但是却存在了一次数据类型之间的转换."15"在数据类型中被称为整型,"2.2"在数据类型中则被称之为浮点型,那么在我们的程序中整型是没办法直接和浮点型的数据进行运算操作,这时候我们可爱的python就偷偷的将"15"转化成了"15.0"的浮点

#8 Python数学方法

前言 前几节了解了Python的不同数据类型,有小伙伴会问,不同的数据类型之间是否可以相互转换?肯定是可以的,本篇博文主要记录数字类型的转换,其他类型的相互转换会在下几节记录,Here we go! 一.Python数字类型转换 通过前几节,我们知道Python数字的数据类型有:整型.长整型.浮点型.和复数,它们之间是如何转换的呢?亦或者它们是如何转换为其他数据类型呢?先来看所有的方法: int(x [,base ]) # 将 x 转换为一个整数 float(x ) # 将 x 转换到一个浮点数

变量/数学运算/子进程/基本操作之类

蛇棒,我总是会忘记蛇棒的写法,记性是越来越差了 #!/bin/bash #!/usr/bin/env bash shell也是一种弱数据类型的语言,申明变量也就是变量名称=变量值,当然shell中所有的变量默认都是字符串 variable_1=1; 使用的话,变量名之前加$符号就可以直接使用了. echo $variable_1; 当需要对shell中的变量进行数学运算的时候,因为所有的变量都是字符串,所以需要借助命令方式才可以进行数学运算,整型运算使用let $[[]] () var_1=1;

shell脚本数组的数学运算

今天在用shell脚本写斐波那契数列计算时,一直不停的报错,主要原因是因为shell脚本实在太不智能,在进行数组运算时需要写大量的符号,很容易混淆,所以稍微总结一下数组元素的计算. 首先,有几种情况: 1 在将一个数学运算结果赋值给某普通变量时: (1) let var=算术表达式 (2) var=$[算术表达式] (3) var=$((算术表达式)) (4) var=$(expr arg1 arg2 arg3 ...) 2 在将一个数学运算结果赋值给某数组元素时: (1)let arr[$i]