跳到主要内容

Python 数字、类型转换与数学

提示
  1. 多种数值类型:Python 支持多种数字类型,包括整数 (int)、浮点数 (float) 和复数 (complex)。
  2. 数字系统与类型转换:Python 可以表示不同的数字系统(二进制、八进制、十六进制),并通过内置函数实现显式类型转换(如 int(), float())。
  3. 随机数与数学模块:Python 提供 random 模块生成随机数和 math 模块进行数学运算,如计算圆周率、对数、三角函数等。

数字数据类型用于存储数值。

Python 支持整数、浮点数和复数。它们在 Python 中定义为 intfloatcomplex 类。

  • int - 存储无限长度的有符号整数。
  • float - 存储浮点小数,精确到 15 位小数。
  • complex - 存储复数。

Python 数值数据类型

整数和浮点数通过有无小数点来区分。例如,

  • 5 是一个整数
  • 5.42 是一个浮点数。

复数以 x + yj 的形式书写,其中 x 是实部,y 是虚部。

我们可以使用 type() 函数来知道变量或值属于哪个类。

让我们看一个例子,

num1 = 5
print(num1, '的类型是', type(num1))

num2 = 5.42
print(num2, '的类型是', type(num2))

num3 = 8+2j
print(num3, '的类型是', type(num3))

输出

5 的类型是 <class 'int'>
5.42 的类型是 <class 'float'>
(8+2j) 的类型是 <class 'complex'>

在上面的例子中,我们创建了三个变量 num1、num2 和 num3,值分别为 55.428+2j

我们还使用了 type() 函数来知道某个变量属于哪个类。由于,

  • 5 是一个整数值,type() 返回 num1 的类为 int,即 <class 'int'>
  • 5.42 是一个浮点值,type() 返回 num2 的类为 float,即 <class 'float'>
  • 1 + 2j 是一个复数,type() 返回 num3 的类为 complex,即 <class 'complex'>

数字系统

我们日常处理的数字是十进制 (base 10) 数字系统。

但计算机程序员需要处理二进制 (base 2)、十六进制 (base 16) 和八进制 (base 8) 数字系统。

在 Python 中,我们可以通过在数字前加适当的前缀来表示这些数字。下表列出了这些前缀。

数字系统前缀
二进制0b0B
八进制0o0O
十六进制0x0X

这里有一些例子

print(0b1101011) # 打印 107

print(0xFB + 0b10) # 打印 253

print(0o15) # 打印 13

Python 中的类型转换

在编程中,类型转换是指将一种类型的数字转换为另一种类型的过程。

像加法、减法这样的操作会在其中一个操作数是浮点数时隐式(自动)地将整数转换为浮点数。例如,

print(1 + 2.0) # 打印 3.0

这里,我们可以看到 1(整数)被转换为 1.0(浮点数)进行加法运算,结果也是一个浮点数。

显式类型转换

我们也可以使用内置函数如 int()float()complex() 来显式地在类型之间进行转换。这些函数甚至可以从字符串转换。

num1 = int(2.3)
print(num1) # 打印 2

num2 = int(-2.8)
print(num2) # 打印 -2

num3 = float(5)
print(num3) # 打印 5.0

num4 = complex

('3+5j')
print(num4) # 打印 (3 + 5j)

这里,从浮点数转换为整数时,数字被截断(小数部分被移除)。

类似地,从整数转换为浮点数时,数字后面会加上 .0

Python 随机模块

Python 提供了 random 模块来生成随机数或从迭代器中选择随机项。

首先我们需要导入 random 模块。例如,

import random

print(random.randrange(10, 20))

list1 = ['a', 'b', 'c', 'd', 'e']

# 从 list1 中获取随机项
print(random.choice(list1))

# 洗牌 list1
random.shuffle(list1)

# 打印洗牌后的 list1
print(list1)

# 打印随机元素
print(random.random())

输出

15
a
['d', 'b', 'c', 'e', 'a']
0.6716121217631744

要了解更多关于 random 模块的信息,请访问 Python 随机模块

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

这是在Python 数学模块中可用的函数和属性的完整列表。