http://blog.csdn.net/pipisorry/article/details/37055183

python数字处理简介

数字类型

python没有unsighed int:The Python int is an abstraction of an integer value, not a direct access to a fixed-byte-size integer.

不过int还是当成sighed int处理的?如0b10000取反~0b10000是-0b10001,虽然前面是用负号表示的,但是和c语言取反后的值是一样一样的,只是表示的很奇怪。

python不同的进制

二进制    0b101,
     以数字0和字母b打头的表示二进制数 如果出现大于等于2的数 会抛出SyntaxError异常,
八进制    0711,
     以数字0打头的数字表示八进制数 如果出现大于等于8的数 会抛出SyntaxError异常,
十进制    123,
     正常显示 不能出现字母,
十六进制  0x15,
     以数字0和字幕x打头的表示十六进制数 可以出现0-9和abcdef或ABCDEF出现其他数值会抛出SyntaxError异常,
在交互式解释器环境中.python会自动的将不同的进制自动转换为十进制,进行运算.,
     >>> 0b101 + 0711 + 123 + 0x15,
     606,

不同的进制之间可以运用内置函数进行转换

int(str, base)      ==> int,
     bin(num)            ==> str,
     oct(num)            ==> str,
     hex(num)           ==> str,
int(str, base) 可以讲字符串转换为整型数,base为相应的进制,
base的范围是2~32 还可以为0,当base=0时,会自动尝试合适的进制,
base如果不给,缺省情况下会吧字符串向10进制转换,,
这时如果字符串中有字母则会抛出ValueError异常,
     >>> bin(5),
     '0b101',
     >>> int('0x210', 0),
     528,
     >>> int('0x210', 16),
     528,

python最大整数

它是由Python的正整数类型所支持的最大整数。

python的最大整数sys.maxsize   (py3)   sys.maxint    (py2)[py3中无定义]

usually 2**31 - 1 on a 32-bit platform and 2**63 - 1 (=9223372036854775807) on a64-bit platform

最小整数:-sys.maxsize+1     -sys.maxint+1

python最大浮点数

sys.float_info:
>>> import sys
>>> sys.float_info
sys.floatinfo(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2
250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsil
on=2.2204460492503131e-16, radix=2, rounds=1)

>>> sys.float_info.max
1.7976931348623157e+308

如果这还不够大,总是有正无穷大:
>>> infinity = float("inf")
>>> infinity
inf
>>> infinity / 10000
inf
该long类型有无限的精度,所以只受限于你的内存大小。

[maximum float in python]

[python精度问题]

python定义epsilon

epsilon=pow(e,-6)或者1.0e-6
皮皮blog

python数字处理模块主要有math模块、decimal模块、random模块等。

python数学运算和转换内置函数

[python函数: 内置函数]

math模块

>>> import math
>>>dir(math)          #这句可查看所有函数名列表
>>>help(math)         #查看具体定义及函数0原型

math模块定义了两个常量

e = 2.718281828459045
pi = 3.141592653589793

math模块常用函数

ceil(x) 取顶
floor(x) 取底
fabs(x) 取绝对值
factorial (x) 阶乘
hypot(x,y)  sqrt(x*x+y*y)
pow(x,y) x的y次方
sqrt(x) 开平方
log(x)
log10(x)
trunc(x)  截断取整数部分
isnan (x)  判断是否NaN(not a number)
degree (x) 弧度转角度
radians(x) 角度转弧度
皮皮blog

decimal模块

decimal模块简介

默认地,浮点数学缺乏精确性。
decimal 模块提供了一个 Decimal 数据类型用于浮点数计算。相比内置的二进制浮点数实现 float这个类型有助于金融应用和其它需要精确十进制表达的场合,控制精度,控制舍入以适应法律或者规定要求,确保十进制数位精度,或者用户希望计算结果与手算相符的场合。Decimal 重现了手工的数学运算,这就确保了二进制浮点数无法精确保有的数据精度。 高精度使 Decimal 可以执行二进制浮点数无法进行的模运算和等值测试。

直接使用float导致的错误示例

a = '39.89245'
b = float(a) * 10000
print(b)
print(int(b))
398924.49999999994
398924

decimal模块使用

>>> from decimal import Decimal
>>> Decimal('0.1') / Decimal('0.3')
Decimal('0.3333333333333333333333333333')
>>> from decimal import getcontext
>>> getcontext().prec = 4 #设置全局精度
>>> Decimal('0.1') / Decimal('0.3')
Decimal('0.3333')

from decimal import Decimal
a = '39.89245'
b = Decimal(a) * 10000
print(b)
print(int(b))
398924.50000
398924
from decimal import Decimal_ = lambda x: Decimal(str(x))
print(0.1 + 0.1 + 0.1 - 0.3)
print(_(0.1) + _(0.1) + _(0.1) + _(-0.3))

fractions分数类型

构造
>>> from fractions import Fraction
>>> Fraction(16, -10)  #分子分母
Fraction(-8, 5)
>>> Fraction(123)   #分子
Fraction(123, 1)
>>> Fraction('3/7')   #字符串分数
Fraction(3, 7)
>>> Fraction('-.125')  #字符串浮点数
Fraction(-1, 8)
>>> Fraction(2.25)  #浮点数
Fraction(9, 4)
>>> from decimal import Decimal
>>> Fraction(Decimal('1.1')) #Decimal
Fraction(11, 10)
计算
>>> from fractions import Fraction
>>> a = Fraction(1,2)
>>> a
Fraction(1, 2)
>>> b = Fraction('1/3')
>>> b
Fraction(1, 3)
>>> a + b
Fraction(5, 6)
>>> a - b
Fraction(1, 6)
但是decimal也解决不了这个问题:

print(Decimal(0.1)**Decimal(3.0))
001000000000000000166533453694

from:http://blog.csdn.net/pipisorry/article/details/37055183
ref:

python模块:数字处理相关推荐

  1. GPUtil是一个Python模块,使用nvidia-smi从NVIDA GPU获取GPU状态

    GPUtil是一个Python模块,使用nvidia-smi从NVIDA GPU获取GPU状态 一个Python模块,用于在Python中使用nvidia-smi以编程方式从NVIDA GPU获取GP ...

  2. 在Ubuntu 14.04.5 LTS上安装python模块selenium 3实录

    简介 Selenium是python模块库中一组web自动化测试工具集,提供多种语言的API,例如java,python,ruby,.net等,支持Firefox,Chrome,IE,Safari 等 ...

  3. Python模块MySQLdb操作mysql出现2019错误:Can't initialize character set utf-8

    我使用python的MySQLdb模块实现了一个mysql client, 在测试时,出现了如下错误 Python模块MySQLdb操作mysql出现2019错误:Can't initialize c ...

  4. Python培训教程分享:Python模块如何导入__all__属性?

    本期小编为大家带来的Python培训教程是关于"Python模块如何导入__all__属性?"的内容,后面在工作中是会遇到Python模块这个工作内容的,Python模块的开头通常 ...

  5. 分享3个好用到爆的 Python 模块,点赞收藏

    作者 | 俊欣 来源 | 关于数据分析与可视化 今天给大家介绍3个特别好用的Python模块,知道的人可能不多,但是特别的好用. Psutil Pendulum Pyfiglet Psutil Pyt ...

  6. python模块之image修改图片类型

    python模块之image修改图片类型 有时候我们需要不同格式的图片后缀格式,如:png,jpg,如果仅仅手动修改图片的后缀的话,只是表面修改了后缀格式,其实图片的原类型仍然没有变化,可以用pyth ...

  7. python模块之imghdr检测图片类型

    python模块之imghdr检测图片类型 1. imghdr是什么 imghdr是一个用来检测图片类型的模块,传递给它的可以是一个文件对象,也可以是一个字节流.[仅仅根据文件后缀判断文件类型显然不准 ...

  8. python模块和包用法详解(__all__)

    1. 模块         Python 模块(Module),是⼀个 Python ⽂件,以 .py 结尾,包含了 Python 对象定义和Python语句.         模块能定义函数,类和变 ...

  9. 教你如何解决Python模块导包没有找到的问题

    一般情况下,Python模块导入推荐使用从根路径导入的写法,比如Node.js就使用相对路径的方式导入模块 例如 有如下目录 demo_project/module_a/file_a.py [func ...

  10. python模块os测试文件是否存在及基础原信息获取

    python模块os测试文件是否存在及基础原信息获取 在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),经常要对大量文件和大量路 ...

最新文章

  1. 《机器学习实战》chapter 11 使用apriori算法进行关联分析
  2. 分享Silverlight/WPF/Windows Phone一周学习导读(4月4日-4月9日)
  3. iOS js oc相互调用(JavaScriptCore)
  4. IDEA 入门:安装使用详解(创建项目/包/类、运行/关闭/导入项目、字体/字号设置、常用快捷键等)
  5. day 45 SQLAlchemy,和增删查改
  6. 如何列出mongo shell中的所有集合?
  7. angular中注入依赖(分页功能)。。。
  8. Javadoc注释的用法
  9. macOS VSCode 终端使用powerline字体配置
  10. 设计师胡晓丹的创作历程
  11. appium之toast处理
  12. QTP网管自动化测试框架
  13. vue项目强制清除页面缓存
  14. 关于oss视频、语音不能播放问题
  15. 【风马一族_php】PHP运算
  16. 批量下载ts视频文件
  17. (一)Reactor模式详解
  18. 逆袭之路——python 数据库字符编码与配置、存储引擎、字段类型及约束条件【day46】
  19. MATLAB逻辑回归实例及代码
  20. 旅游商城小程序怎么开发?

热门文章

  1. Swing 显示良好JPanel保存为图片
  2. 避免“被忽略” 如何向上司“喜传捷报”?
  3. synchronized锁机制 之 代码块锁(转)
  4. Java Memcached的使用
  5. VOJ1067 【矩阵经典7 构造矩阵】
  6. 黑板课爬虫闯关之关卡二
  7. 7-23 哥尼斯堡的“七桥问题”(25 分)
  8. 未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序。...
  9. 转 TCP中的序号和确认号
  10. win7 下安装ubuntu14.04 本人实测撰写