python3 中的数据类型:
python3 中有六种标准的数据类型:
-
Number(数字)
-
String(字符串)
-
List(列表)
-
Tuple(元祖)
-
Set(集合)
-
Dictionary(字典)
Python3 的六个标准数据类型中:
-
不可变数据 (3 个):Number(数字)、String(字符串)、Tuple(元组);
-
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
Number 数字类型:
python 中的数字数据类型用于存储数值;
数字数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间;
a = 22 # 定义一个整形变量
print(id(a)) # 输出变量的地址
a = 33 # 修改变量的值,然后重新输出地址
print(id(a))
输出结果:可以发现内存地址是不一样的
可以使用 del 语句删除一些数字对象的引用:
a = 22 # 定义一个整形变量
print(a) # 输出变量的值
del a # 删除数字对象的引用
print(a) # 重新输出 a 的值,报错:变量 a 未定义
输出结果:
python3 中的数字有四种类型:整数、布尔型、浮点数和复数。
1、int (整数),如 22。在 Python 3 中,整数是没有限制大小的,所以没有 python2 中的 Long。
2、bool (布尔),如 True。在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。到 Python3 中,把 True 和 False 定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加。
3、float (浮点数),如 1.23、3E-2。
4、complex (复数),如 1 + 2j、 1.1 + 2.2j。复数由实数部分和虚数部分组成,可以用 a+bj,或者 complex(a, b) 表示,复数的实部 a 和虚部 b 都是浮点数。
像大多数语言一样,数值类型的赋值和计算都是很直观的。
内置的 type() 函数可以用来查询变量所指的对象类型。
a = 20 # int 类型
b = 3.14 # float 类型
c = True # bool 类型
d = 4+3j # complex 类型
print(type(a))
print(type(b))
print(type(c))
print(type(d))
输出结果:
数字类型转换:
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。
-
int(x) 将 x 转换为一个整数。如果是一个浮点数转换成整数,会舍去小数的部分,只保留整数部分。
-
float(x) 将 x 转换到一个浮点数。
-
complex(x) 将 x 转换到一个复数,实数部分为 x,虚数部分为 0。
-
complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。
数值运算:
Python 解释器可以作为一个简单的计算器,您可以在解释器里输入一个表达式,它将输出表达式的值。
注意1:在整数除法中,除法 / 总是返回一个浮点数,如果只想得到整数的结果,丢弃可能的分数部分,可以使用运算符 //;但是 // 得到的并不一定是整数类型的数,它与分母、分子的数据类型有关系:
注意2:不同类型的数进行混合运算时,会将整数转换成浮点数:
数学函数:
1、ceil(x):返回数字的上入整数,如 math.ceil(3.14) 返回 4;
2、floor(x):返回数字的下舍整数,如 math.floor(3.85) 返回 3;
使用 ceil() 和 floor(x) 方法需要导入 math 模块:import math
# 导入 math 模块
import math
a = 3.14
b = 3.85
print(math.ceil(a)) # 使用 math 模块中的 ceil 函数
print(math.floor(b)) # 使用 math 模块中的 floor 函数
输出结果:
注意:import 和 from ... import ... 用来导入相应的模块;
-
将整个模块(somemodule)导入,格式为:import somemodule
-
从某个模块中导入某个函数(somefunction),格式为:from somemodule import somefunction
-
从某个模块中导入多个函数,格式为:from somemodule import firstFunc, secondFunc, thirdFunc
-
将某个模块中的全部函数导入,格式为:from somemodule import *
# 导入 math 模块中的 ceil 函数
from math import ceil
a = 3.14
print(ceil(a)) # 因为已经导入了函数,所以可以直接使用
3、round(x[, n]):返回浮点数 x 的四舍五入值,如给出 n 值,则代表保留小数点的位数。
4、abs(x):返回数字的绝对值,如 abs(-10) 返回 10;如果 x 是一个复数,则返回它的大小;
a = -10
b = -3.14
c = -22.30
print(abs(a)) # 返回绝对值
print(abs(b))
print(abs(c))
输出结果:
5、fabs(x):也用来返回数字的绝对值,和 abs(x) 函数的区别是:
-
abs() 是内置函数,fabs() 在 math 模块中定义;
-
fabs() 函数只对浮点型跟整形数值有效;abs() 还可作用于复数,返回复数的大小;
6、exp(x):返回 e 的 x 次幂,e 是数学中的一个自然常数,是一个无限不循环的小数,其值约为 2.71828;
7、log(x):返回 x 的自然对数,x > 0;
8、log10(x):返回以 10 为基数的 x 对数;
9、max(x1, x2, ...):返回给定参数的最大值,参数可以为序列;
10、min(x1, x2, ...):返回给定参数的最小值,参数可以为序列;
# 获取最大值
print(max(8, 3.14, 9.85, 5))
# 获取最小值
print(min(8, 3.14, 9.85, 5))
# 参数可以是序列
list = [8, 3.14, 9.85, 5]
print(max(list))
print(min(list))
输出结果:
11、modf(x):返回 x 的整数部分和小数部分,两部分的数值符号与 x 相同,整数部分以浮点型表示;
# 导入 math 模块
import math
# 输出 3.14 的整数部分和小数部分
print(math.modf(3.14))
输出结果:
12、math 模块的 pow(x, y) 函数:返回 x 的 y 次方的值;
还有一个内置 pow(x, y[, z]) 函数:也是返回 x 的 y 次方的值;参数 z 为可选项,如果 z 存在,则再对结果进行取余;其结果等效于 math.pow(x, y) % z。
# 导入 math 模块
import math
# 返回 2 的 3 次方
print(math.pow(2, 3)) # math 模块的 pow() 函数
print(pow(2, 3, 3)) # 内置函数 pow()
输出结果:
13、sqrt(x):返回数字 x 的平方根;如果 math.sqrt(9) 返回 3;
随机数函数:
随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。
Python 包含以下常用随机数函数:
1、choice(seq):从序列(列表、元祖、字符串)的元素中随机挑选一个元素,比如 random.choice(range(10)),表示从 0 到 9 中随机挑选一个整数;
# 导入 random 模块
import random
# 从 range(10) 中返回一个随机数,即从 0 到 9 中随机挑选一个整数
print(random.choice(range(10)))
# 从 [1, 3, 4, 8, 6] 中返回一个随机元素
print(random.choice([1, 3, 4, 8, 6]))
# 从字符串 "howareyou" 中返回一个随机字符
print(random.choice("howareyou"))
输出结果:
2、randrange([start, ] stop [, step]):从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1;
start:指定范围内的开始值,包含在范围内;(可省略,默认从 0 开始)
stop:指定范围内的结束值,不包含在范围内;(不可省略)
step:指定递增基数;(可省略,默认为 1)
# 导入 random 模块
import random
# 从 0-9 中随机选取一个整数
# 参数 start 省略,默认为 0;参数 stop 为 10;参数 step 省略,默认为 1;
print(random.randrange(10))
# 从 1-99 中随机选取一个奇数(start 包含,stop 不包含)
print(random.randrange(1, 100, 2))
输出结果:
3、random():随机生成下一个实数,他在 [0, 1) 范围内;
# 导入 random 模块
import random
# 获取第一个随机数
print(random.random())
# 获取第二个随机数
print(random.random())
输出结果:
4、uniform(x, y):随机生成下一个实数,他在 [x, y] 范围内;即 x 为随机数的最小值,y 为随机数的最大值;
# 导入 random 模块
import random
# 在 [5, 10] 中随机获取一个实数
print(random.uniform(5, 10))
输出结果:
5、seed([x]):改变随机数生成器的种子 seed。如果你不了解其原理,就不用特别去设定 seed,python 会帮我们选择 seed;
6、shuffle(list):将序列的所有元素随机排序;
# 导入 random 模块
import random
list = [22, 11, 8, 35, 3.14] # 定义一个列表
# 将列表中的字符随机排序
random.shuffle(list)
print(list)
输出结果:
三角函数:
Python 包括以下三角函数:由于该类函数不是很常用,所有我就没有去测试;
函数 | 描述 |
---|---|
[acos(x)] | 返回 x 的反余弦弧度值。 |
[asin(x)] | 返回 x 的反正弦弧度值。 |
[atan(x)] | 返回 x 的反正切弧度值。 |
[atan2(y, x)] | 返回给定的 X 及 Y 坐标值的反正切值。 |
[cos(x)] | 返回 x 的弧度的余弦值。 |
[hypot(x, y)] | 返回欧几里德范数 sqrt(xx + yy)。 |
[sin(x)] | 返回的 x 弧度的正弦值。 |
[tan(x)] | 返回 x 弧度的正切值。 |
[degrees(x)] | 将弧度转换为角度,如 degrees(math.pi/2) , 返回 90.0 |
[radians(x)] | 将角度转换为弧度 |