通过示例了解 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月前
|
数据挖掘 Python
Python示例,展示如何找到最近一次死叉之后尚未形成金叉的位置
【10月更文挑战第7天】金融分析中,“死叉”指短期移动平均线(如MA5)跌破长期移动平均线(如MA10),而“金叉”则相反。本文提供Python代码示例,用于找出最近一次死叉后未形成金叉的位置,涵盖移动平均线计算、交叉点判断及结果输出等步骤,适合金融数据分析。
59 4
|
5月前
|
Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
|
25天前
|
数据挖掘 数据处理 开发者
Python3 自定义排序详解:方法与示例
Python的排序功能强大且灵活,主要通过`sorted()`函数和列表的`sort()`方法实现。两者均支持`key`参数自定义排序规则。本文详细介绍了基础排序、按字符串长度或元组元素排序、降序排序、多条件排序及使用`lambda`表达式和`functools.cmp_to_key`进行复杂排序。通过示例展示了如何对简单数据类型、字典、类对象及复杂数据结构(如列车信息)进行排序。掌握这些技巧可以显著提升数据处理能力,为编程提供更强大的支持。
32 10
|
5月前
|
存储 Python
Python示例:分解一个不多于指定位的正整数
Python示例:分解一个不多于指定位的正整数
39 0
|
2月前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
103 8
|
2月前
|
API Python
【Azure Developer】分享一段Python代码调用Graph API创建用户的示例
分享一段Python代码调用Graph API创建用户的示例
68 11
|
3月前
|
网络安全 Python
Python网络编程小示例:生成CIDR表示的IP地址范围
本文介绍了如何使用Python生成CIDR表示的IP地址范围,通过解析CIDR字符串,将其转换为二进制形式,应用子网掩码,最终生成该CIDR块内所有可用的IP地址列表。示例代码利用了Python的`ipaddress`模块,展示了从指定CIDR表达式中提取所有IP地址的过程。
90 6
|
3月前
|
数据挖掘 Python
Python示例,展示如何找到最近一次死叉之后尚未形成金叉的位置
金融分析中,“死叉”指短期移动平均线(如MA5)跌破长期移动平均线(如MA10),而“金叉”则相反。本文提供Python代码示例,用于找出最近一次死叉后未形成金叉的位置,涵盖移动平均线计算、交叉点判断及结果输出等步骤,适合金融数据分析。
43 1
|
5月前
|
Python
Python编程的循环结构小示例(二)
Python编程的循环结构小示例(二)
77 1
|
4月前
|
Linux Android开发 开发者
【Python】GUI:Kivy库环境安装与示例
这篇文章介绍了 Kivy 库的安装与使用示例。Kivy 是一个开源的 Python 库,支持多平台开发,适用于多点触控应用。文章详细说明了 Kivy 的主要特点、环境安装方法,并提供了两个示例:一个简单的 Hello World 应用和一个 BMI 计算器界面。
153 0

热门文章

最新文章

推荐镜像

更多