亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> Python

精通 Python 数字、类型转换与数学运算

精通 Python 数字、类型转换与数学运算

探索 Python 如何处理数值数据、类型转换的细节,以及可用于日常编程的强大数学工具。

Python 中的数字数据类型

Python 将数字分为三种核心类型:int(整数)、float(浮点数,带小数部分)和 complex(复数,含实部和虚部)。小数点的存在区分 int 与 float(如 5 是整数,5.0 是浮点数)。复数采用 x + yj 表示法,其中 x 为实部,y 为虚部。

使用 type() 查看值的类,用 isinstance() 验证类型成员身份。例如:

a = 5
print(type(a))
print(type(5.0))
c = 5 + 3j
print(c + 3)
print(isinstance(c, complex))

输出:

<class 'int'> <class 'float'> (8+3j) True

Python 整数具有任意精度;浮点数保留约 15 位十进制精度。对于二进制、十六进制或八进制表示,Python 提供便捷前缀:

进制前缀
二进制0b 或 0B
八进制0o 或 0O
十六进制0x 或 0X

示例:

# 输出: 107
print(0b1101011)
# 输出: 253 (251 + 2)
print(0xFB + 0b10)
# 输出: 13
print(0o15)

结果:

107 253 13

类型转换(强制转换)

当浮点数参与运算时,Python 会自动将整数提升为浮点数。例如:

>>> 1 + 2.0
3.0

显式转换同样简单,使用 int()、float()、complex(),它们也能解析字符串:

>>> int(2.3)
2
>>> int(-2.8)
-2
>>> float(5)
5.0
>>> complex('3+5j')
(3+5j)

将浮点数转为整数时,Python 会截断小数部分而非四舍五入。

Python Decimal 模块

浮点运算因二进制表示限制可能产生意外结果。例如:

>>> (1.1 + 2.2) == 3.3
False

因为 0.1 等数字无法在二进制中精确表示,运算会产生微小舍入误差。decimal 模块提供任意精度十进制运算来缓解此问题:

import decimal
print(0.1)
print(decimal.Decimal(0.1))

输出:

0.1 0.1000000000000000055511151231257827021181583404541015625

使用 Decimal 保留有效数字和精确十进制表示,这对财务计算至关重要:

from decimal import Decimal as D
print(D('1.1') + D('2.2'))
print(D('1.2') * D('2.50'))

输出:

3.3 3.000

因十进制运算比二进制浮点慢,仅在需精确精度的场景(如货币值、可配置精度、有效数字控制)使用 Decimal。

何时使用 Decimal 而非 Float?

Python Fractions 模块

fractions 模块提供有理数支持,支持以整数分子分母进行精确运算:

import fractions
print(fractions.Fraction(1.5))
print(fractions.Fraction(5))
print(fractions.Fraction(1,3))

输出:

3/2 5 1/3

从浮点数创建 Fraction 因二进制舍入可能产生反直觉结果,建议对十进制数使用字符串输入:

import fractions
# 从浮点数
print(fractions.Fraction(1.1))
# 从字符串
print(fractions.Fraction('1.1'))

输出:

2476979795053773/2251799813685248 11/10

分数支持所有算术运算符:

from fractions import Fraction as F
print(F(1, 3) + F(1, 3))
print(1 / F(5, 6))
print(F(-3, 10) > 0)
print(F(-3, 10) < 0)

输出:

2/3 6/5 False True

Python 数学模块

Python 的 math 模块提供三角、对数、阶乘等函数:

import math
print(math.pi)
print(math.cos(math.pi))
print(math.exp(10))
print(math.log10(1000))
print(math.sinh(1))
print(math.factorial(6))

输出:

3.141592653589793 -1.0 22026.465794806718 3.0 1.1752011936438014 720

对于随机性和采样,random 模块提供:

import random
print(random.randrange(10, 20))
x = ['a', 'b', 'c', 'd', 'e']
print(random.choice(x))
random.shuffle(x)
print(x)
print(random.random())

示例输出(值会变化):

18 e ['c', 'e', 'd', 'b', 'a'] 0.5682821194654443

两个模块均提供完整文档,详述所有可用函数和属性。

Python

  1. 掌握 C# 类型转换:隐式、显式、Parse 与 Convert 全方位指南
  2. 深入理解 C# 类型转换:隐式与显式转换全解析
  3. Python关键字与标识符:掌握保留字与命名规范
  4. Python语句、缩进与注释:清晰指南
  5. Python变量、常量与字面量完全指南
  6. 精通Python类型转换与强制转换:综合指南
  7. 精通Python输入输出与模块导入:实战指南
  8. 理解Python全局、局部与非局部变量
  9. 精通 Python 目录与文件操作
  10. 精通 Python 错误与内置异常
  11. Python 获取当前日期和时间:实用指南
  12. 理解 Python type() 与 isinstance():实战示例详解