python模块:数字处理
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模块:数字处理相关推荐
- GPUtil是一个Python模块,使用nvidia-smi从NVIDA GPU获取GPU状态
GPUtil是一个Python模块,使用nvidia-smi从NVIDA GPU获取GPU状态 一个Python模块,用于在Python中使用nvidia-smi以编程方式从NVIDA GPU获取GP ...
- 在Ubuntu 14.04.5 LTS上安装python模块selenium 3实录
简介 Selenium是python模块库中一组web自动化测试工具集,提供多种语言的API,例如java,python,ruby,.net等,支持Firefox,Chrome,IE,Safari 等 ...
- Python模块MySQLdb操作mysql出现2019错误:Can't initialize character set utf-8
我使用python的MySQLdb模块实现了一个mysql client, 在测试时,出现了如下错误 Python模块MySQLdb操作mysql出现2019错误:Can't initialize c ...
- Python培训教程分享:Python模块如何导入__all__属性?
本期小编为大家带来的Python培训教程是关于"Python模块如何导入__all__属性?"的内容,后面在工作中是会遇到Python模块这个工作内容的,Python模块的开头通常 ...
- 分享3个好用到爆的 Python 模块,点赞收藏
作者 | 俊欣 来源 | 关于数据分析与可视化 今天给大家介绍3个特别好用的Python模块,知道的人可能不多,但是特别的好用. Psutil Pendulum Pyfiglet Psutil Pyt ...
- python模块之image修改图片类型
python模块之image修改图片类型 有时候我们需要不同格式的图片后缀格式,如:png,jpg,如果仅仅手动修改图片的后缀的话,只是表面修改了后缀格式,其实图片的原类型仍然没有变化,可以用pyth ...
- python模块之imghdr检测图片类型
python模块之imghdr检测图片类型 1. imghdr是什么 imghdr是一个用来检测图片类型的模块,传递给它的可以是一个文件对象,也可以是一个字节流.[仅仅根据文件后缀判断文件类型显然不准 ...
- python模块和包用法详解(__all__)
1. 模块 Python 模块(Module),是⼀个 Python ⽂件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块能定义函数,类和变 ...
- 教你如何解决Python模块导包没有找到的问题
一般情况下,Python模块导入推荐使用从根路径导入的写法,比如Node.js就使用相对路径的方式导入模块 例如 有如下目录 demo_project/module_a/file_a.py [func ...
- python模块os测试文件是否存在及基础原信息获取
python模块os测试文件是否存在及基础原信息获取 在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),经常要对大量文件和大量路 ...
最新文章
- 《机器学习实战》chapter 11 使用apriori算法进行关联分析
- 分享Silverlight/WPF/Windows Phone一周学习导读(4月4日-4月9日)
- iOS js oc相互调用(JavaScriptCore)
- IDEA 入门:安装使用详解(创建项目/包/类、运行/关闭/导入项目、字体/字号设置、常用快捷键等)
- day 45 SQLAlchemy,和增删查改
- 如何列出mongo shell中的所有集合?
- angular中注入依赖(分页功能)。。。
- Javadoc注释的用法
- macOS VSCode 终端使用powerline字体配置
- 设计师胡晓丹的创作历程
- appium之toast处理
- QTP网管自动化测试框架
- vue项目强制清除页面缓存
- 关于oss视频、语音不能播放问题
- 【风马一族_php】PHP运算
- 批量下载ts视频文件
- (一)Reactor模式详解
- 逆袭之路——python 数据库字符编码与配置、存储引擎、字段类型及约束条件【day46】
- MATLAB逻辑回归实例及代码
- 旅游商城小程序怎么开发?
热门文章
- Swing 显示良好JPanel保存为图片
- 避免“被忽略” 如何向上司“喜传捷报”?
- synchronized锁机制 之 代码块锁(转)
- Java Memcached的使用
- VOJ1067 【矩阵经典7 构造矩阵】
- 黑板课爬虫闯关之关卡二
- 7-23 哥尼斯堡的“七桥问题”(25 分)
- 未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序。...
- 转 TCP中的序号和确认号
- win7 下安装ubuntu14.04 本人实测撰写