首页 > 编程语言 >python基础:表示数字的相关类型

python基础:表示数字的相关类型

时间:2023-09-30 17:55:08浏览次数:36  
标签:数字 python Decimal float int 类型 运算

一 python中表示数字的相关类型

在python中要表示一个数字,就要用它所支持的一些类型创建。在python中常见的数字类型有int、float、complex(复数),Decimal等

二 int类型和float类型

int为整数类型,float为浮点数类型及小数

要表示一个数为整数类型,给直接把一个整数赋值给变量或用内置函数int()来返回一个整数
image

要表示一个浮点数,可把一个小数赋值给变量或用内置函数float()来返回一个浮点数
image

1 不同数字类型间的混合运算

混合运算时,"较窄"类型的操作数会拓宽到另一个操作数的类型,其中整数比浮点数窄,浮点数比复数窄

如下官网所述,数字类型(复数除外)都支持下列运算
image

1.1 除法运算 /

image
如上,除法运算得到的结果类型总是float

1.2 整除运算 //

两个数相除,对于得到的商去除小数部分,再做如下处理,
对于 int 类型之间的操作数结果的类型为 int。 对于存在float 类型的操作,结果的类型为 float,结果总是向负无穷的方向舍入
image

1.3 求余运算 %

什么是余数,如 7除以2,商为3,余数为1
更专业的表示方法是
z = x // y
余数 m = x - z*y
和数学上的除法一样,第2个数不能为0,否则python会报错

image

image

1.4 divmod(x,y)

divmod(x,y)的结果即是(x // y, x % y)

image

1.5 + - * / 等运算符之间的优先级

如下,从最高优先级(最上)到最低优先级(最下)。 相同单元格内的运算符具有相同优先级
image

三 复数complex

复数也是数学上的概念,由实数和虚数组成
实数,如正数 负数 小数 无理数等
虚数,与实数相反
x²+1=0在实数范围内就没有解,引入虚数后就有解了
假设x²=-1,定义i=√-1,则i²=-1, i为虚数单位
方程的解就是虚数 x=√-1(i)

形如a+bi(a、b均为实数)的数为复数。复数通常用z表示,即z=a+bi
用z.real 和z.imag分别表示复数的实数和虚数部分
image

四 Decimal

python中的数字运算,当存在float类型时,结果可能会与数学上的运算结果不一致,如下
image

其原因没细究,可能如一些网友所言如下
image

这时候,就该Decimal发挥作用了,如果想要像中小学数学那样十进制的准确运算,就要用到Decimal这个类型
image
image

如上,Decimal类型来自内置库decimal,注意,要把数字作为字符串的形式构成成Decimal类型才能准确计算

构造一个Decimal对象如下官网表述
image

前面讲过的数字间的运算如 + - * / // %等也可用于Decimal类型,但一些运算和int float间的运算有点区别,如下

取余运算 %
在Decimal中取余,结果的符号是 被除数 的符号,而不是除数的符号
image

整除运算 //
在Decimal中整除,返回真商的整数部分(截断为零)而不是它的向下取整
image

上下文对象

上下文是算术运算所在的环境。 它们管理精度、设置舍入规则、确定将哪些信号视为异常,并限制指数的范围
可使用 getcontext() 和 setcontext() 函数来读取或修改

decimal.getcontext():返回活动线程的当前上下文
image

Decimal表示一个数字也是有长度的,我们可以获取 修改它的长度
image

如上,因为Decimal的长度是可以自定义的,所以,用decimal来计算0.2+0.1比浮点数的结果更加接近准确结果

Decimal与其他数字类型的转换

image

如上最好转换成str并注意控制精度。转成float,Decimal长度过长的话,Decimal会被截断

标签:数字,python,Decimal,float,int,类型,运算
From: https://www.cnblogs.com/MyRecords/p/17737812.html

相关文章

  • http get 请求,path请求参数有数组类型的参数,怎么传参
    内容来自对chatgpt的咨询当在HTTPGET请求中传递数数组类型的参数时,需要按照一定的格式进行编码。并且具体的格式可能会根据后端的实现和预期的格式进行变化。这里有两种常见的方法:方法一:相同参数名,多次出现在URL中,后面每一个数组元素都用相同的参数名。例如,如果你有一个名......
  • 通过python封装接口商品ID采集商品详情数据
    您可以使用Python中的requests库和json库发起HTTP请求并解析响应数据,来实现获取微店商品详情数据的操作。以下是一个简单的示例代码:importrequestsimportjsondeffetch_weidian_product_detail(product_id):#构造请求URLurl=f"https://api.vdian.com/api?param={json.dumps......
  • PPT| IBM采购供应链和财务管理流程数字化规划方案 P172
        IBM咨询在供应链智慧转型上有三点优势,第一点是无边界的供应链,IBM咨询已经实现了从战略到组织文化,以及流程、系统的整条供应链体系的端到端的贯通,能够满足CSCO的任何需求;第二点是IBM原本就拥有技术的DNA,数据驱动供应链离不开技术的支撑。IBM在大数据处理、量子计算等领域......
  • python爬虫请求头键值对批量加引号
    原始数据:from:ento:zhquery:lovetranstype:realtimesimple_means_flag:3sign:198772.518981token:1b434ed1e595135ac1b2959f4430a51fdomain:commonts:1696058611509使用notepad++粘贴数据然后Ctrl+H,勾选正则表达式,第一行为(.*):(.*)第二行为'$1':......
  • Python 汇总列数据到行
    Python汇总Excel列数据到行(方法一)importpandasaspd#读取Excel文件df=pd.read_excel('C:\\Users\\liuchunlin2\\Desktop\\测试数据\\员工.xlsx')#选择您要处理的列column_data=df['员工姓名']#将列数据合并为一行并用逗号分隔result=','.join(column_data.a......
  • 2023-09-30:用go语言,给你一个整数数组 nums 和一个整数 k 。 nums 仅包含 0 和 1, 每一
    2023-09-30:用go语言,给你一个整数数组nums和一个整数k。nums仅包含0和1,每一次移动,你可以选择相邻两个数字并将它们交换。请你返回使nums中包含k个连续1的最少交换次数。输入:nums=[1,0,0,1,0,1],k=2。输出:1。来自左程云。答案2023-09-30:步骤描述:1.......
  • Python模块之 random
    作用:random.randint函数是Python内置的随机数生成函数之一,用于生成一个指定范围内的整数。必要操作:>>>importrandom安装:python内置函数,无需安装导入包:>>>importrandom帮助查看:>>>help(random)或单独查看某个子方法(函数)>>>help(random.randint)方......
  • 温度由分类变量和连续变量决定,请用python机器学习三种方法模拟生成数据并拟合
    要模拟生成数据并拟合温度(或任何其他目标变量),通常需要考虑以下步骤:生成特征数据:创建分类变量和连续变量,这些变量将用于预测温度。分类变量可以是例如季节、天气状况(晴天、雨天、多云等),而连续变量可以是例如湿度、风速等。生成目标数据:根据特征数据和某种关系生成目标变量(温度)的数据......
  • Python:Dnspython工具包查询域名的DNS解析记录
    Dnspython是一个基于Python的DNS工具包相关资料https://www.dnspython.org/https://github.com/rthalley/dnspythonhttps://pypi.org/project/dnspython/https://dnspython.readthedocs.io/安装pipinstalldnspython代码示例查询www.baidu.com的A记录importdns.resolverif__n......
  • Python 布尔类型
    布尔值表示两个值之一:True(真)或False(假)。布尔值在编程中,您经常需要知道一个表达式是否为True或False。您可以在Python中评估任何表达式,并获得两个答案之一:True或False。当您比较两个值时,表达式会被评估,Python会返回布尔答案:示例print(10>9)print(10==9)print(10<9)......