Python 数字、类型转换与数学
- 多种数值类型:Python 支持多种数字类型,包括整数 (
int
)、浮点数 (float
) 和复数 (complex
)。 - 数字系统与类型转换:Python 可以表示不同的数字系统(二进制、八进制、十六进制),并通过内置函数实现显式类型转换(如
int()
,float()
)。 - 随机数与数学模块:Python 提供
random
模块生成随机数和math
模块进行数学运算,如计算圆周率、对数、三角函数等。
数字数据类型用于存储数值。
Python 支持整数、浮点数和复数。它们在 Python 中定义为 int
、float
和 complex
类。
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,值分别为 5、5.42 和 8+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 中,我们可以通过在数字前加适当的前缀来表示这些数字。下表列出了这些前缀。
数字系统 | 前缀 |
---|---|
二进制 | 0b 或 0B |
八进制 | 0o 或 0O |
十六进制 | 0x 或 0X |
这里有一些例子
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 数学模块中可用的函数和属性的完整列表。