Python中数字(Number)数据类型常用操作

作者:老街头的猫。 时间:2022-06-01 20:58:47 

数字运算

  • =:用于给变量赋值

  • type(x):查看数据所属类型

  • isinstance(x, A_tuple):判断数据是否为预期类型

  • +:两个数相加

  • -:两个数相减

  • *:两个数相乘

  • /:两个数相除

  • %:两个数进行求余

  • **:两个数进行幂运算

# 给变量赋值数字类型数据
int_data = 100# 整数 int
float_data = 8.88# 小数 float
complex_data = 3+5j# 复数 complex

# 查看变量所属数据类型
print(type(int_data))       # <class 'int'>
print(type(float_data))     # <class 'float'>
print(type(complex_data))   # <class 'complex'>

# 判断两个数据的类型是否相等
print(isinstance(int_data, int))# True
print(isinstance(float_data, int))# False

# 加
print(2 + 1)# 3
print(2 + 6.6)# 8.6   整数和浮点数运算结果为浮点数
print(2.1 + 1.2)# 3.3

# 减
print(2 - 1)# 1
print(2 - 6.6)# -4.6
print(2.1 - 1.2)# 0.9000000000000001
print(round(2.1 - 1.2, 1))# 0.9

# 乘
print(2 * 1)# 2
print(2 * 6.6)# 13.2
print(2.1 * 1.2)# 2.52

# 除
print(2 / 1)# 2.0
print(6.66 / 2)# 3.33
print(6.66 / 2.22)# 3.0

# 求余
print(10 % 3)# 1
print(20.22 % 3)# 2.219999999999999

# 幂运算
print(5 ** 2)# 5的平方,25
print(2 ** 7)# 2的7次方,128

类型转换

  • int(x, base=10):将一个字符串或数字转换为整型。x为字符串或数字,base为进制数,默认10进制。

  • float(x):将一个字符串或数字转换为浮点数。x为字符串或整数。

# int()
# 不传参数则为0
int()# 0
# 将字符串转为整数
int("666")# 666
# 向下取整
int(6.66)# 6
# 将数字转为8进制
int('12',8)# 10

# flaot()
# 不传参数则为0.0
flaot()# 0.0
# 将字符串转为浮点数
float("6.88")# 6.88

注意:如果转换内容中出现非数字字符则会报错。

数学函数

函数说明
abs(x)返回数字的绝对值。x为数值表达式。
max(x)返回给定参数的最大值,参数可以为序列。
min(x)返回给定参数的最小值,参数可以为序列。
pow(x, y, z)返回x的y次方的值。如果z存在则对结果进行取模,等效于pow(x,y) %z
round(number, digits)返回number保留digits位四舍五入的小数,digits不填默认为保留整数

使用示例:

abs(-2.66)# 2.66

max(1, 2, 3)# 3
max([6, 7, 8])# 8

min(1, 2, 3)# 1

pow(10,2)# 100
pow(10,2,3)# 1

round(5.68)# 6
round(5.64, 1)# 5.6

数学库math、cmath

  • math:模块提供了许多对浮点数的数学运算函数。

  • cmath:模块包含了一些用于复数运算的函数。

查看math中包含的内容:

import math

print(dir(math))

# 打印内容
[
   '__doc__', '__file__', '__loader__',
    '__name__', '__package__', '__spec__',
    'acos', 'acosh', 'asin',
    'asinh', 'atan', 'atan2',
    'atanh', 'ceil', 'comb',
    'copysign', 'cos', 'cosh',
    'degrees', 'dist', 'e',
    'erf', 'erfc', 'exp',
    'expm1', 'fabs', 'factorial',
    'floor', 'fmod', 'frexp',
    'fsum', 'gamma', 'gcd',
    'hypot', 'inf', 'isclose',
    'isfinite', 'isinf', 'isnan',
    'isqrt', 'ldexp', 'lgamma',
    'log', 'log10', 'log1p',
    'log2', 'modf', 'nan',
    'perm', 'pi', 'pow',
    'prod', 'radians', 'remainder',
    'sin', 'sinh', 'sqrt',
    'tan', 'tanh', 'tau',
    'trunc'
]

math 模块常量

常量说明
math.e返回欧拉数 (2.7182&hellip;)
math.inf返回正无穷大浮点数
math.nan返回一个浮点值 NaN (not a number)
math.pi&pi; 一般指圆周率。 圆周率 PI (3.1415&hellip;)
math.tau数学常数 &tau; = 6.283185&hellip;,精确到可用精度。Tau 是一个圆周常数,等于 2&pi;,圆的周长与半径之比。

math 模块方法

函数说明
math.acos(x)返回 x 的反余弦,结果范围在 0 到 pi 之间。
math.acosh(x)返回 x 的反双曲余弦值。
math.asin(x)返回 x 的反正弦值,结果范围在 -pi/2 到 pi/2 之间。
math.asinh(x)返回 x 的反双曲正弦值。
math.atan(x)返回 x 的反正切值,结果范围在 -pi/2 到 pi/2 之间。
math.atan2(y, x)返回给定的 X 及 Y 坐标值的反正切值,结果是在 -pi 和 pi 之间。
math.atanh(x)返回 x 的反双曲正切值。
math.ceil(x)将 x 向上舍入到最接近的整数
math.comb(n, k)返回不重复且无顺序地从 n 项中选择 k 项的方式总数。
math.copysign(x, y)返回一个基于 x 的绝对值和 y 的符号的浮点数。
math.cos()返回 x 弧度的余弦值。
math.cosh(x)返回 x 的双曲余弦值。
math.degrees(x)将角度 x 从弧度转换为度数。
math.dist(p, q)返回 p 与 q 两点之间的欧几里得距离,以一个坐标序列(或可迭代对象)的形式给出。 两个点必须具有相同的维度。
math.erf(x)返回一个数的误差函数
math.erfc(x)返回 x 处的互补误差函数
math.exp(x)返回 e 的 x 次幂,Ex, 其中 e = 2.718281&hellip; 是自然对数的基数。
math.expm1()返回 Ex - 1, e 的 x 次幂,Ex,其中 e = 2.718281&hellip; 是自然对数的基数。这通常比 math.e ** x 或 pow(math.e, x) 更精确。
math.fabs(x)返回 x 的绝对值。
math.factorial(x)返回 x 的阶乘。 如果 x 不是整数或为负数时则将引发 ValueError。
math.floor()将数字向下舍入到最接近的整数
math.fmod(x, y)返回 x/y 的余数
math.frexp(x)以 (m, e) 对的形式返回 x 的尾数和指数。 m 是一个浮点数, e 是一个整数,正好是 x == m * 2**e 。 如果 x 为零,则返回 (0.0, 0) ,否则返回 0.5 <= abs(m) < 1 。
math.fsum(iterable)返回可迭代对象 (元组, 数组, 列表, 等)中的元素总和,是浮点值。
math.gamma(x)返回 x 处的伽马函数值。
math.gcd()返回给定的整数参数的最大公约数。
math.hypot()返回欧几里得范数,sqrt(sum(x**2 for x in coordinates))。 这是从原点到坐标给定点的向量长度。
math.isclose(a,b *,rel_tol=1e-09,abs_tol=0.0)检查两个值是否彼此接近,若 a 和 b 的值比较接近则返回 True,否则返回 False。
math.isfinite(x)判断 x 是否有限,如果 x 既不是无穷大也不是 NaN,则返回 True ,否则返回 False 。
math.isinf(x)判断 x 是否是无穷大,如果 x 是正或负无穷大,则返回 True ,否则返回 False 。
math.isnan()判断数字是否为 NaN,如果 x 是 NaN(不是数字),则返回 True ,否则返回 False 。
math.isqrt()将平方根数向下舍入到最接近的整数。
math.ldexp(x, i)返回 x * (2**i) 。 这基本上是函数 math.frexp() 的反函数。
math.lgamma()返回伽玛函数在 x 绝对值的自然对数。
math.log(x[, base])使用一个参数,返回 x 的自然对数(底为 e )。
math.log10(x)返回 x 底为 10 的对数。
math.log1p(x)返回 1+x 的自然对数(以 e 为底)。
math.log2(x)返回 x 以 2 为底的对数
math.perm(n, k=None)返回不重复且有顺序地从 n 项中选择 k 项的方式总数。
math.pow(x, y)将返回 x 的 y 次幂。
math.prod(iterable)计算可迭代对象中所有元素的积。
math.radians(x)将角度 x 从度数转换为弧度。
math.remainder(x, y)返回 IEEE 754 风格的 x 除于 y 的余数。
math.sin(x)返回 x 弧度的正弦值。
math.sinh(x)返回 x 的双曲正弦值。
math.sqrt(x)返回 x 的平方根。
math.tan(x)返回 x 弧度的正切值。
math.tanh(x)返回 x 的双曲正切值。
math.trunc(x)返回 x 截断整数的部分,即返回整数部分,删除小数部分

使用示例:

import math

math.ceil(5.4)# 6
math.ceil(5.5)# 6

math.fabs(-6)# 6.0
math.fabs(6)# 6.0

math.floor(6.9)# 6

math.fmod(5, 2)# 1.0

math.isclose(8.005, 8.450, abs_tol = 0.4)# False
math.isclose(8.005, 8.450, abs_tol = 0.5)# True
print(0.1+0.2)# 0.30000000000000004
math.isclose(0.1+0.2, 0.3)#True

math.isnan(float("NaN"))# True

math.pow(2, 10)# 1024.0

math.sqrt(25)# 5.0

随机函数库 random

查看random中包含的内容:

import math

math.ceil(5.4)# 6
math.ceil(5.5)# 6

math.fabs(-6)# 6.0
math.fabs(6)# 6.0

math.floor(6.9)# 6

math.fmod(5, 2)# 1.0

math.isclose(8.005, 8.450, abs_tol = 0.4)# False
math.isclose(8.005, 8.450, abs_tol = 0.5)# True
print(0.1+0.2)# 0.30000000000000004
math.isclose(0.1+0.2, 0.3)#True

math.isnan(float("NaN"))# True

math.pow(2, 10)# 1024.0

math.sqrt(25)# 5.0

random 模块方法

函数说明
seed()初始化随机数生成器。
getstate()返回捕获生成器当前内部状态的对象。
setstate()state 应该是从之前调用 getstate() 获得的,并且 setstate() 将生成器的内部状态恢复到 getstate() 被调用时的状态。
getrandbits(k)返回具有 k 个随机比特位的非负 Python 整数。 此方法随 MersenneTwister 生成器一起提供,其他一些生成器也可能将其作为 API 的可选部分提供。 在可能的情况下,getrandbits() 会启用 randrange() 来处理任意大的区间。
randrange()从 range(start, stop, step) 返回一个随机选择的元素。
randint(a, b)返回随机整数 N 满足 a <= N <= b。
choice(seq)从非空序列 seq 返回一个随机元素。 如果 seq 为空,则引发 IndexError。
choices(population, weights=None, *, cum_weights=None, k=1)从 population 中选择替换,返回大小为 k 的元素列表。 如果 population 为空,则引发 IndexError。
shuffle(x[, random])将序列 x 随机打乱位置。
sample(population, k, *, counts=None)返回从总体序列或集合中选择的唯一元素的 k 长度列表。 用于无重复的随机抽样。
random()返回 [0.0, 1.0) 范围内的下一个随机浮点数。
uniform(x, y)随机生成下一个实数,它在[x,y]范围内。
triangular(low, high, mode)返回一个随机浮点数 N ,使得 low <= N <= high 并在这些边界之间使用指定的 mode 。 low 和 high 边界默认为零和一。 mode 参数默认为边界之间的中点,给出对称分布。
betavariate(alpha, beta)Beta 分布。 参数的条件是 alpha > 0 和 beta > 0。 返回值的范围介于 0 和 1 之间。
expovariate(lambd)指数分布。 lambd 是 1.0 除以所需的平均值,它应该是非零的。
gammavariate()Gamma 分布( 不是伽马函数) 参数的条件是 alpha > 0 和 beta > 0。
gauss(mu, sigma)Gamma 分布( 不是伽马函数) 参数的条件是 alpha > 0 和 beta > 0。
lognormvariate(mu, sigma)对数正态分布。 如果你采用这个分布的自然对数,你将得到一个正态分布,平均值为 mu 和标准差为 sigma 。 mu 可以是任何值,sigma 必须大于零。
normalvariate(mu, sigma)正态分布。 mu 是平均值,sigma 是标准差。
vonmisesvariate(mu, kappa)冯&middot;米塞斯分布。 mu 是平均角度,以弧度表示,介于0和 2*pi 之间,kappa 是浓度参数,必须大于或等于零。
paretovariate(alpha)帕累托分布。 alpha 是形状参数。
weibullvariate(alpha, beta)威布尔分布。 alpha 是比例参数,beta 是形状参数。

使用示例:

import random

# 从1-100中选一个整数
print(random.randint(1,100))# 80

print(random.choice([1, 2, 3, 5, 9]))# 2
print(random.choice('A String'))# A
print(random.choice(range(10)))# 8

# 从 1-100 中选取一个奇数
print(random.randrange(1, 100, 2))# 57
# 从 0-99 选取一个随机数
print(random.randrange(100))# 91
# 随机选取0到100间的偶数
print(random.randrange(0, 101, 2))# 22

print(random.random())# 0.699045676948276

print(random.uniform(1, 100))# 66.79353123577998

保留小数到指定位数

# 向下取整,转为整数
print(int(58.86))   # 58

import math
# 向上取整,转为整数
print(math.ceil(58.86))     # 59

# 四舍五入,转为整数
print(round(58.86))     # 59

# 四舍五入,保留2位小数
print(round(4.859999999999999, 2))  # 4.86

# 分割整数和小数
print(str(58.866).split(".")[0])    # 58

三角函数

函数说明
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)将角度转换为弧度。

来源:https://blog.csdn.net/weixin_44988085/article/details/129022889

标签:Python,数字,数据类型
0
投稿

猜你喜欢

  • Python实现查找系统盘中需要找的字符

    2022-10-02 02:35:50
  • python字典和json.dumps()的遇到的坑分析

    2023-07-27 22:03:29
  • 微信小程序上传图片功能(附后端代码)

    2023-07-24 04:21:40
  • 页面加载对访问的影响

    2009-10-30 18:54:00
  • django模板加载静态文件的方法步骤

    2023-04-12 17:13:26
  • 简单介绍Python中利用生成器实现的并发编程

    2022-04-29 00:56:12
  • Python利用fastapi实现上传文件

    2023-12-09 05:54:40
  • Python操作MongoDB数据库的方法示例

    2022-09-03 13:48:40
  • Python无损音乐搜索引擎实现代码

    2021-01-28 19:19:02
  • 详解Python发送email的三种方式

    2023-07-01 07:19:28
  • Python命令行库click的具体使用

    2023-07-05 02:51:16
  • 如何修改Linux的下MySQL 5.0的默认连接数

    2012-01-29 18:07:04
  • python利用MethodType绑定方法到类示例代码

    2023-08-23 08:07:31
  • Pycharm安装第三方库时Non-zero exit code错误解决办法

    2023-03-15 12:15:01
  • Python实现对象转换为xml的方法示例

    2022-12-18 01:39:18
  • Python3 解决读取中文文件txt编码的问题

    2022-10-22 13:14:43
  • php 字符串中是否包含指定字符串的多种方法

    2023-06-11 20:21:38
  • Python 实现任意区域文字识别(OCR)操作

    2021-04-23 03:52:37
  • Java连接sqlserver2008数据库代码

    2023-07-02 10:22:17
  • python3使用SMTP发送简单文本邮件

    2023-09-28 10:07:24
  • asp之家 网络编程 m.aspxhome.com