Python学习笔记-数字类型

news/2024/4/26 14:44:12/文章来源:https://blog.csdn.net/u010839204/article/details/128098458

目录

1. 数字类型

1.1 整型

1.2 浮点数

1.3 复数

1.4 布尔类型

2. 常用内置数值计算函数库

3. 随机数函数


本文记录python中的基本数字类型信息,以及一些其他的相关知识点。

1. 数字类型

python中用于标识数字或者数值的数据类型,主要有如下分类:

  • 整型:int
  • 浮点型:float
  • 复数类型:complex
  • 布尔类型:bool

1.1 整型

 整形默认为十进制,计算机采用二级制数据。

不同的整型数据可以相互转换,转换函数如下:

  • bin():将整型数据转换为二进制,输出形式为字符串
  • oct():将整型数据转换为八进制,输出形式是字符串
  • hex():将整型数据转换为十六进制,输出形式是字符串
  • int():接受一个符合整型规范的字符串,并将字符串转换为整型
>>> a = 100
>>> bin(a)
'0b1100100'
>>> a_bin = bin(a)
>>> print(a_bin)
0b1100100
>>> type(a_bin)
<class 'str'>
>>> a_oct = oct(a)
>>> print(a_oct)
0o144
>>> type(a_oct)
<class 'str'>
>>> a_hex = hex(a)
>>> print(a_hex)
0x64
>>> type(a_hex)
<class 'str'>
>>> a_int = int(a)
>>> print(a_int)
100
>>> type(a_int)
<class 'int'>
>>> str_a = "100"
>>> inta = int(a)
>>> print(inta)
100
>>> type(inta)
<class 'int'>
#可直接转换非十进制数据
>>> bin(0xff)
'0b11111111'
# 转换非整型数据时报错
>>> bin('100')
Traceback (most recent call last):File "<stdin>", line 1, in <module>
TypeError: 'str' object cannot be interpreted as an integer
>>>

注意

数字在python是不可变的,如有多个变量指向同一个数值是,该值只会存储在一个内存中,然后不同变量指向同一个内存。

示例如下:

>>> a = 1
>>> b = 1
>>> c = a
>>> print(id(a),id(b),id(c))
140715700289808 140715700289808 140715700289808

可以看出所有变量的di是一样的,id()是python的内置函数,用于读取变量的内存。即上文示例中a、b、c变量指向指向数字1的内存。

>>> a = 1
>>> b = 1
>>> c = a
>>> print(id(a),id(b),id(c))
140715700289808 140715700289808 140715700289808
>>> a = 2
>>> print(id(a),id(b),id(c))
140715700289840 140715700289808 140715700289808
>>>

如上,将a重新赋值为2,只有a的地址改变了,改变a的值时并不是修改数值,而是将新的数值存入内存中,然后将变量重新指向该内存。浮点数、复数等其他数字类型变量具有相同特点。

1.2 浮点数

浮点数就是数学中的小数,特点如下:

  • 以十进制表示;
  • 可以用科学计数法表示;
  • python中的浮点型都是双精度的,每个浮点数占八个字节(64位);

科学计数法的格式如下:

                数值x e 数值y(整型)

                就是x乘以10的y次幂

示例如下:

>>> a = 1.0
>>> b = 0.1
>>> print(type(a))
<class 'float'>
>>> print(type(b))
<class 'float'>
>>> c = 1e2    # 1 乘以 10 的 2次幂
>>> print(c)
100.0
>>> d = 1e-2   # 1 乘以 10 的 -2次幂
>>> print(d)
0.01

注意

        x是不可获取的部分,若确实,则会报错

>>> d = e-2
Traceback (most recent call last):File "<stdin>", line 1, in <module>
NameError: name 'e' is not defined

1.3 复数

复数就是数学中的复数,其特点如下:

  • 复数由“实部”和“虚部”两部分组成;
  • 实数和虚数部分都是浮点型;
  • 虚数部分必须有j或着J;

复数的表达形式

  • a + bj;
  • complex(a,b):其中a是实部,b是虚部

用法示例如下:

>>> a = 1 + 2j
>>> print(type(a))
<class 'complex'>
>>> b = complex(1,2)
>>> print(type(b))
<class 'complex'>
>>> print(id(a),id(b))
2575329711152 2575329711216
>>> # 获取复数的虚部
>>> print(a.imag)
2.0
>>> print(a.real) #获取s复数的实部
1.0
>>> print(a.conjugate())        # 获取共轭复数
(1-2j)

1.4 布尔类型

布尔类型就是是与否,只有两个状态,基本特点如下:

  • 只有True和False两个取值;
  • True对应整数1,False对应整数0;
  • 常用的bool运算包括and、or、not三种,对应与、或、非运算;

多种数据可以等价于True和False:

2. 常用内置数值计算函数库

数学中的一些常用运算在python标准函数中的表达式。

函数数学表示说明
copysign(x,y)复制符号位,用y的正负号替换x的正负号
fabs(x)|x|返回x的绝对值
factorial(x)x!返回x的阶乘,x必须为正整数或0,否则会报错
floor(x)向下取整,返回不大于x的最大整数
fmod(x,y)x % y返回x与y的模
frexp(x)x = m * 2 **e返回(m,e),若x为零,则返回(0.0,0)
fsum(iterable)浮点数精度求和
gcd(a,b)返回a和b的最大公约数
iscolse(a,b)比较a和b的相似性,相近返回True,否则返回False

isfinite(x)

若x不是无穷大,也不是NaN,返回True;否则返回False

isnan(x)x为NaN时返回True,否则返回False
ldexp(x,i)返回x*(2**i)
modf(x)返回x的小数部分和整数部分
trunc(x)返回x的整数部分
exp(x)e^x返回e的x次幂
expm1(x)e^x-1返回e的x次幂减去1
log(x[,base])返回x的自然对数
log1p(x)ln(1+x)返回1+x的自然对数
log2(x)返回以2为底x的对数
log10(x)返回以10为底x的对数
pow(x,y)x^{y}返回x的y次幂
sqrt(x)\sqrt{x}返回x的平方根
sin(x)sin x返回x的正弦函数值
cos(x)cos x返回x的余弦函数值
tan(x)tan x返回x的正切函数值
asin(x)arcsin x返回x的反正弦函数值
acos(x)atccos x返回x的反余弦函数值
atan(x)atctan x返回x的反正切函数值
atan2(x) arctan \frac{y}{x}返回y/x的反正切函数
math.erf(x)高斯误差函数
math.erfc(x)余补高斯误差函数
math.gamma(x)伽马函数,也叫欧拉第二积分函数
math.lgamma(x)伽马函数的自然对数

3. 随机数函数

随机数函数random用于生成置定范围内的随机数。

import randoma = random.random()  # 生成一个0-1范围内的随机数
b = random.randint(1,200)      # 生成1-200范围内的一个随机整数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_38766.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

盘点程序员的花式赚外快的骚操作

2022世界杯比赛难得如期开幕了&#xff0c;卡塔尔王子的表情包想必大家已经看到眼晕。 我拿2200亿和你玩&#xff0c;你踢一个0&#xff1a;2过不过分啊~ 现实中的投资可不比卡塔尔王子的表情包失落更多&#xff0c;毕竟投资有风险入行需谨慎。 然而悲惨的事实是&#xff0c;…

量表如何分析?

一、什么是量表 量表是一种测量工具&#xff0c;通常用来测量人们的主观态度、意见或价值观念。我们经常会在问卷中使用量表对调查对象进行测量&#xff0c;最常见到的就是李克特量表。 ‍1、定义&#xff1a;李克特量表 李克特量表是最常用的量表&#xff0c;是由美国社会心…

大数据平台功能

一 前言 计算机设备和信息数据的相互融合&#xff0c;对各个行业来说都是一次非常大的进步&#xff0c;已经渗入到工业、农业、商业、军事等领域&#xff0c;同时其大数据平台软件也得到一定发展。就目前来看&#xff0c;各类编程语言的发展、人工智能相关算法的应用、大数据时…

求树的直径算法以及证明

以下为两次dfs&#xff08;bfs&#xff09;的做法以及正确性证明。 算法步骤 &#xff08;1&#xff09;任取树上一点S&#xff0c;以S为源点BFS得S到各个顶点的d值&#xff1b; &#xff08;2&#xff09;取d值最大者之一为P&#xff0c;再以P为源点BFS得P到各个顶点的d值&am…

【计算机】可信平台模块Trusted Platform Module - TPM

简述 Brief Introduction TPM内部功能模块示意图&#xff1a; 引述 Trusted Platform Module Technology Overview (Windows) | Microsoft Learn&#xff1a; Trusted Platform Module (TPM) technology is designed to provide hardware-based, security-related functions.…

「区块链+数字身份」:DID 身份认证的新战场

美国经济学家布莱恩 • 阿瑟在其著作《技术的本质》中&#xff0c;写过这么一句话&#xff1a;「技术总是进行着这样一种循环&#xff0c;为解决老问题去采用新技术&#xff0c;新技术又引发新问题&#xff0c;新问题的解决又要诉诸更新的技术」。 区块链技术之所以能流行&…

在MacOS上实现两个网络调试助手的UDP通信测试

文章目录一、背景二、网络调试助手软件三、UDP通信过程一、背景 因为有一个项目要中会使用本机中两个应用程序之间的UDP通信。 因此本文记录一下怎么在MacOS上实现两个网络调试助手的UDP通信测试。 二、网络调试助手软件 我使用的网络调试助手软件是&#xff1a;网络调试助…

Redis实战——优惠券秒杀(超卖问题)

1 实现优惠券秒杀功能 下单时需要判断两点&#xff1a;1.秒杀是否开始或者结束2.库存是否充足 所以&#xff0c;我们的业务逻辑如下 1. 通过优惠券id获取优惠券信息 2.判断秒杀是否开始&#xff0c;如果未返回错误信息 3.判断秒杀是否结束&#xff0c;如果已经结束返回错误…

传奇登录器打不开的四种原因

最近很多传奇玩家或者GM都遇到了传奇登陆器打不开&#xff0c;没反应&#xff0c;提示无法访问指定设备等问题&#xff0c;导致很多游戏没有办法玩&#xff0c;让玩家心情沮丧&#xff0c;作为GM&#xff0c;那么就更伤心了&#xff0c;很多玩家进不来游戏&#xff0c;开服数千…

Maven笔记(2022-11-29)

一、Maven简述 1.1 什么是Maven&#xff1f; Apache Maven 是一款基于 Java 平台的项目管理和构建工具&#xff0c;它基于项目对象模型(POM)的概念&#xff0c;通过一小段描述信息来管理项目的构建、报告和文档。 简单来讲Maven就是一个构建工具&#xff0c;用来管理我们的项目…

GMM算法

高斯混合模型聚类(Gaussian Mixture Mode&#xff0c;GMM) 高斯混合模型是一种概率式的聚类方法&#xff0c;它假定所有的数据样本x由k个混合多元高斯分布组合成的混合分布生成。 其中高斯分布的概率密度函数如下&#xff1a; 现在的问题就是如何求α,μ,σ\alpha,\mu,\sigm…

Spring-全面详解(学习总结---从入门到深化)

目录 Spring简介 Spring体系结构 IOC_控制反转思想 IOC_自定义对象容器 IOC_Spring实现IOC IOC_Spring容器类型 ​ 容器实现类 IOC_对象的创建方式 使用构造方法 使用工厂类的方法…

09【MyBatis多表关联查询】

文章目录三、MyBatis多表关联查询3.1 表的关系3.2 一对一查询3.2.1 搭建环境3.2.2 需求分析3.2.3 dao接口3.2.3 mapper.xml3.2.4 测试3.2.5 配置MyBatis一对一关系1&#xff09;传统映射&#xff1a;2&#xff09;使用association标签映射3.3 一对多查询3.3.1 需求分析3.3.2 da…

Kamiya丨Kamiya艾美捷大鼠微量白蛋白酶联免疫吸附试验说明书

Kamiya艾美捷大鼠微量白蛋白酶联免疫吸附试验预期用途&#xff1a; 大鼠微量白蛋白酶联免疫吸附试验&#xff08;ELISA&#xff09;是一种高灵敏度的双位点酶联免疫吸附试验&#xff08;ELISA&#xff09;大鼠生物样品中微量白蛋白的测定。仅供研究使用。 引言 白蛋白&#x…

SpringBoot、EasyPoi、Echarts 实现文档导入、出、图表显示 (饼状图、柱状图) 保姆级教程

一、介绍环境 EasyPOI: 现在我们就来介绍下EasyPoi,首先感谢EasyPoi 的开发者​。EasyPoi开源 easypoi 是为了让开发者快速的实现excel&#xff0c;word,pdf的导入导出&#xff0c;基于Apache poi基础上的一个工具包。easypoi教程 Echarts: …

转扩!寻找G2022次列车“旅客”

各位求职朋友大家好&#xff0c;欢迎乘坐G2022次列车 本次列车为6节编组&#xff0c;由上海开往北京&#xff0c;途径宁波、重庆 本次列车乘务组全体工作人员为您提供全方位福利待遇 上车地址&#xff1a;上海擎创信息技术有限公司 - 社会招聘 (eoitek.com) 如您还需其他帮助…

Java给图片增加水印,根据图片大小自适应,右下角/斜角/平铺

Hi&#xff0c;I’m Shendi 最近写自己的文件服务器&#xff0c;上传图片时需要自动增加水印&#xff0c;在这里记录一下 文章目录效果展示读取图片从 byte[] 读取图片获取画板绘制水印根据图片大小自适应水印大小右下角文字水印斜角水印平铺水印图片水印输出图片水印就是在图片…

SLAM学习笔记(二)

5.相机与图像 相机将三维世界中的坐标点&#xff08;单位米&#xff09;映射到二维图像平面&#xff08;单位为像素&#xff09;的过程中能够用一个几何模型进行描述。 单目相机(Mono)的成像过程&#xff1a; 1、世界坐标系下有个固定的点P&#xff0c;世界坐标为 2、由于相…

基于Java+SSM+Vue+ElementUi的汉语言类网上考试系统

项目介绍 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#xff0c;科学化的管理&#xff0c;使信…

前置微小信号放大器在光声技术的血管识别研究中的应用

实验名称&#xff1a;前置微小信号放大器在光声技术的血管识别研究中的应用 研究方向&#xff1a;生物识别技术 测试目的&#xff1a; 利用MATLAB对光声血管进行识别&#xff1a;1、对光声血管图库的图像进行预处理包括归一化、二值化、平滑、细化和毛刺修剪得到细化图像&#…