通过示例了解 Python 数字和类型转换|Python 主题月

简介: 通过示例了解 Python 数字和类型转换|Python 主题月

Python 数字包含四种数据类型:普通整数、长整数、浮点数和复数。它们不仅支持简单的算术计算,还可以作为复数用于量子计算。在本教程中,我们将尝试通过示例来解释它们中的每一个。


让我们看看Python 中的数字是什么?与 Python 中的其他类型一样,数字也是对象。它们可以存储整数、实数或合 数。Python 数字是不可变对象,因此值的任何更改都会导致创建新对象。通常,将数值分配给变量将创建数字对象。

>>> num = 10 + 5j # 数字对象已创建
>>> print(num)
(10+5j)
>>> print(type(num)) # 数字是复数类型
<class 'complex'>
>>> print(id(num)) # 'num' 在内存中的初始地址
2819128990512
>>> num = 11 + 6j # 'num' 获得一个新值
>>> print(num)
(11+6j)
>>> type(num) # 'num' 仍然是复杂类型
<class 'complex'>
>>> id(num) # 值的变化导致 "num" 有一个新的内存地址
2910237203312

image.png

Python 数字——数字数据的类型


有趣的是,Python 2.x 有四种内置数据类型(int、long、float 和 complex)来表示数字。后来的 Python 3.x 删除了 long 并将 int 类型扩展为无限长度。


int(整型)


int 类型表示Python 中的基本整数数据类型。Python 2.x 中的普通整数的最大大小可达sys.maxint的值 。

而在 3.x 中,int 类型被提升为具有无限长度,从而消除了 long。


long(长型)


一个无限长的整数。直到 Python 2.x 结束,整数被允许溢出并变成 long。此行为自 3.0 以来发生了变化,其中整数取代了长整数。


float(浮点型)


浮点数表示二进制浮点数。在表达式中使用浮点变量会自动将相邻的 long 和 int 转换为浮点数。

>>> x = 9.999 
>>> type(x) 
<type 'float'>


complex(复数型)


这种类型的数字有实部和虚部。例如 – 表达式 ( n1 + n2j) 表示一个复数类型,其中 n1 和 n2 都是分别表示实部和虚部的浮点数。

>>> x = 3 + 4j 
>>> type(x) 
<class 'complex'> 
>>> x.real 
3.0 
>>> x.imag 
4.0


Python 数字——关键点


A. 数字类型按以下顺序自动向上转换。

Int → Long → Float → Complex

B.虽然 Python 3.x 中的整数可以是任意长度,但浮点型数字只能精确到小数点后十五位。

C.通常,我们使用基于十进制(基数为 10)的数字系统的数字。但有时,我们可能需要使用其他数字系统,例如二进制(基数 2)、十六进制(基数 16)和八进制(基数 8)。\

在 Python 中,我们可以使用适当的前缀处理这些数字。见下文。

image.png

>>> x = 0b101
>>> print(x)
5
>>> type(x)
<type 'int'>
>>> print(0b101 + 5)
10
>>> print(0o123)
83
>>> type(0x10)
<type 'int'>

D.如果要在 Python 中测试数字的类类型,则应使用 isinstance() 函数。

isinstance(object, class)

这是示例

>>> isinstance(2.2, float)
True

E.如果在表达式中使用混合数据类型,则所有操作数都将变为所使用的最复杂类型。

>>> 2 + 3.8
5.8

F.在 Python 中对整数进行除法时要小心。

在 Python 2.x 中,除法 (/) 将返回一个整数商作为输出。

Python

复制代码

>>> 7/2 
3

在 Python 3.x 中,除法 (/) 将返回一个浮点商作为输出。

>>> 7/2 
3.5

G. 底运算符 (//) 返回整数商,模运算符 (%) 给出余数。不过您可以通过使用 divmod() 函数来一起获得这两者。

>>> divmod(7, 2) 
(3, 1) 
>>> 7 % 2 
1 
>>> 7 / 2 
3.5 
>>> 7 // 2 
3

Python 中的类型转换(强制转换)


在 Python 中,将任何数字数据类型转换为另一种非常容易。我们将这个过程称为 Pythonic 术语中的强制转换。

如果操作数之一是浮点数,则基本操作(如加法、减法)强制整数隐式(默认)为浮点数。

>>> 2 + 4.5 
6.5

在上面的例子中,第一个整数(2)变成了一个浮点数(2.0)进行加法,输出的也是一个浮点数。

然而,Python 给出了否定的答案。内置函数,如 int()、float() 和 complex() 以在类型之间进行显式转换。这些函数甚至可以将字符串转换为数字。

>>> int(3.7) 
3 
>>> int(-3.4) 
-3 
>>> float(3) 
3.0 
>>> complex(4 + 7j) 
(4+7j)

请注意,如果您将浮点数转换为整数,则数字将被截断(即接近零的整数)。

处理 Python 数字的外部类

正如你在上面读到的,Python 的内置浮点类有一个限制,可以控制精度高达小数点后十五位。但是,也存在其他限制,因为它完全取决于浮点数的计算机实现。例如,请参阅下面的小数点问题。

>>> 1.1 + 3.2 
4.300000000000001

为了克服此类问题,我们可以使用 Python 中的小数模块。

Python 十进制

十进制模块提供了大多数人都熟悉的定点和浮点运算实现。与精度高达 15 位小数的浮点数不同,decimal 模块接受用户定义的值。它甚至可以保留编号中的有效数字。


import decimal
print(0.28)
print(decimal.Decimal(0.28))
print(decimal.Decimal('5.30'))

输出

0.28 
0.2800000000000000266453525910037569701671600341796875 
5.30

Python 分数

Python 打包了一个名为“fractions”的模块来处理小数。

分数由分子和分母组成;两者都是整数数据类型。该模块启用有理数算术功能。

下面是一个创建和使用分数类型对象的简单示例。

import fractions
print(fractions.Fraction(2.5))
print(fractions.Fraction(5.2))
print(fractions.Fraction(3,5))
print(fractions.Fraction(1.3))
print(fractions.Fraction('3.7'))

输出-

5/2 
5854679515581645/1125899906842624 
3/5 
5854679515581645/4503599627370496 
37/10

Python 数学


Python 公开了一些内置函数来执行简单的数学计算。

例如 – abs(), cmp(), max(), min(), round()。

print(round(55.26,1))
print(round(66.36,-1))

输出 -

55.3 
70.0

除了上述方法,我们还可以使用 Python 中的 math 模块。它提供了以下常用功能。

image.png

以下是使用 ceil() 函数的一些示例。

示例 1

import math

x = math.ceil(3.5)
print(x)
print(math.ceil(2 + 4.2))

输出 –

4
7

示例 2

from math import ceil 
x = 9 / 4 
y = ceil(x) 
print(y)

输出 -

3

快速总结——Python 数字

借助 Python 数字和 math 模块,您可以在 Python 中进行任何基础到高级计算。我们希望本教程能够帮助到您,博主也在学习进行中,如有什么错误的地方还望批评指正。如果您喜欢这篇文章并有兴趣看到更多此类文章,可以看看这里(Github/Gitee) 这里汇总了我的全部原创及作品源码,关注我以查看更多信息。

目录
相关文章
|
4月前
|
JSON API 数据格式
洋码头商品 API 示例指南(Python 实现)
洋码头是国内知名跨境电商平台,提供商品搜索、详情、分类等API接口。本文详解了使用Python调用这些API的流程与代码示例,涵盖签名生成、请求处理及常见问题解决方案,适用于构建选品工具、价格监控等跨境电商应用。
|
4月前
|
缓存 JSON API
VIN车辆识别码查询车五项 API 实践指南:让每一俩车有迹可循(Python代码示例)
VIN(车辆识别代码)是全球唯一的17位汽车标识码,可快速获取车架号、发动机号、品牌型号等核心信息。在二手车交易、保险理赔、维修保养等场景中,准确解析VIN有助于提升效率与风控能力。本文介绍VIN码结构、适用场景,并提供Python调用示例及优化建议,助力企业实现车辆信息自动化核验。
855 1
|
4月前
|
JSON API UED
运营商二要素验证 API:核验身份的一致性技术实践(Python示例)
随着线上业务快速发展,远程身份核验需求激增。运营商二要素验证API通过对接三大运营商实名数据,实现姓名、手机号、身份证号的一致性校验,具备权威性高、实时性强的优势,广泛应用于金融、电商、政务等领域。该接口支持高并发、低延迟调用,结合Python示例可快速集成,有效提升身份认证的安全性与效率。
545 0
|
4月前
|
JSON API 数据格式
Python采集京东商品评论API接口示例,json数据返回
下面是一个使用Python采集京东商品评论的完整示例,包括API请求、JSON数据解析
|
5月前
|
JSON 缓存 API
身份证二要素核验接口调用指南 —— Python 示例
本文介绍如何在 Python 中快速实现身份证二要素核验功能,适用于用户注册、金融风控等场景。通过阿里云市场提供的接口,可校验「姓名 + 身份证号」的一致性,并获取性别、生日、籍贯等信息。示例代码展示了从环境变量读取 APP_CODE、发送 GET 请求到解析 JSON 响应的完整流程。关键字段包括 code(1-一致,2-不一致,3-无记录)、msg 和 data。常见问题如 403 错误需检查 AppCode,超时则优化网络或设置重试机制。集成后可根据业务需求添加缓存、限流等功能提升性能。
536 4
|
1月前
|
数据处理 Python
Python编程:类型转换与输入输出
本教程介绍Python中输入输出与类型转换的基础知识,涵盖input()和print()的使用,int()、float()等类型转换方法,并通过综合示例演示数据处理、错误处理及格式化输出,助你掌握核心编程技能。
410 3
|
8月前
|
XML JSON API
淘宝商品详情API的调用流程(python请求示例以及json数据示例返回参考)
JSON数据示例:需要提供一个结构化的示例,展示商品详情可能包含的字段,如商品标题、价格、库存、描述、图片链接、卖家信息等。考虑到稳定性,示例应基于淘宝开放平台的标准响应格式。
|
6月前
|
SQL 数据库 开发者
Python中使用Flask-SQLAlchemy对数据库的增删改查简明示例
这样我们就对Flask-SQLAlchemy进行了一次简明扼要的旅程,阐述了如何定义模型,如何创建表,以及如何进行基本的数据库操作。希望你在阅读后能对Flask-SQLAlchemy有更深入的理解,这将为你在Python世界中从事数据库相关工作提供极大的便利。
655 77
|
4月前
|
测试技术 API 开发者
淘宝关键词搜索商品列表API接入指南(含Python示例)
淘宝关键词搜索商品列表API是淘宝开放平台的核心接口,支持通过关键词检索商品,适用于比价、选品、市场分析等场景。接口提供丰富的筛选与排序功能,返回结构化数据,含商品ID、标题、价格、销量等信息。开发者可使用Python调用,需注意频率限制与错误处理,建议先在沙箱环境测试。
|
3月前
|
数据采集 索引 Python
Python Slice函数使用教程 - 详解与示例 | Python切片操作指南
Python中的`slice()`函数用于创建切片对象,以便对序列(如列表、字符串、元组)进行高效切片操作。它支持指定起始索引、结束索引和步长,提升代码可读性和灵活性。