Python从入门到放弃——浮点型变量

浮点型变量

前言

上一篇文章我们研究了整数类型变量,本次我们来开始研究一下浮点类型变量。

浮点类型

浮点数在计算机编程中扮演着重要的角色。它们是一种特殊的数据类型,用于存储和处理小数或实数。在Python中,浮点数是由小数点分隔的数字组成的。在本文中,我将探讨浮点类型变量的定义、使用以及它们的一些特点。

首先,让我们来看看浮点数变量的定义。在Python中,可以使用以下语法来定义一个浮点变量:

variable_name = 3.14
print(variable_name)

最后得到的结果如下图所示:

在上面的例子中,variable_name是变量的名称,而3.14是变量的值。注意,浮点数可以是正数或负数,并且可以包含小数点。

接下来,让我们探讨一些使用浮点类型变量的例子。假设我们要计算一个圆的面积。我们知道圆的面积公式是πr^2,其中π是一个数学常数,约等于3.14,而r是圆的半径。我们可以使用浮点类型变量来存储半径和计算面积的结果。下面是一个计算圆面积的示例代码:

pi = 3.14
radius = 5.0area = pi * (radius ** 2)
print(area)

运行结果如下所示:

在上面的例子中,我们定义了一个名为pi的浮点变量,该变量存储了常数π的近似值3.14。然后,我们定义了一个名为radius的浮点变量,该变量存储了圆的半径。接下来,我们使用浮点数的乘法和幂运算,计算圆的面积,并将其存储在名为area的浮点变量中。最后,我们使用print函数将计算结果打印出来。

除了基本的数学计算,浮点类型变量在实际编程中还有许多其他的应用。例如,它们可以用于存储和处理货币值、测量数据、科学计算等。浮点数的范围通常比整数的范围大,因此它们可以表示更大或更小的值。然而,浮点数的精度是有限的,这意味着它们可能无法准确地表示某些十进制数。这是因为计算机内部使用二进制表示浮点数,并且存在舍入误差。因此,在进行关键的精确计算时,我们需要小心处理浮点数。

此外,浮点数还可以表示为特殊值NaN(Not a Number),表示一个无效的或未定义的数值。NaN通常出现在一些非法的数学运算中,比如0除以0。NaN的特点是无法进行比较,任何与NaN进行的比较操作都将返回False。

在Python中,处理浮点数的功能非常强大。Python提供了许多内置函数和模块,用于处理浮点数。这些功能包括数学运算、舍入和格式化等。例如,Python提供了math模块,其中包含了许多数学函数,如sin、cos、sqrt等。另外,Python还提供了round函数来进行舍入操作,可以将浮点数四舍五入到指定的小数位数。此外,Python还提供了format函数来格式化浮点数输出,可以指定输出的精度、宽度和对齐方式等。

总之,浮点数是一种用于表示小数的数据类型,在计算机中以近似的方式存储和处理实数。除了常规的浮点数,还有特殊值如正无穷大、负无穷大和NaN。Python提供了丰富的功能和工具来处理浮点数,包括数学运算、舍入和格式化等。

下面我们来看一下详细的代码

import math# 浮点数运算
a = 1.2
b = 2.3
c = a + b
print(c)  # 输出:3.5# 舍入操作
d = 3.14159
e = round(d, 2)
print(e)  # 输出:3.14# 格式化输出
f = 4.56789
formatted_f = "{:.2f}".format(f)
print(formatted_f)  # 输出:4.57# 使用math模块进行数学运算
g = math.sin(math.pi)
print(g)  # 输出:1.2246467991473532e-16# 特殊浮点数值
h = float('inf')
i = float('-inf')
j = float('nan')
print(h, i, j)  # 输出:inf -inf nan

这段代码主要介绍了Python中浮点数的运算和操作。

  • 首先,代码导入了math模块,该模块提供了一系列数学运算的函数和常量。
  • 然后,定义了两个浮点数a和b,进行加法运算,并将结果赋值给变量c。使用print函数打印出c的值,结果为3.5。
  • 接下来,定义了一个浮点数d,并使用round函数将其四舍五入保留两位小数,将结果赋值给变量e。使用print函数打印出e的值,结果为3.14。
  • 然后,定义了一个浮点数f,并使用format函数将其格式化为保留两位小数的字符串形式,将结果赋值给变量formatted_f。使用print函数打印出formatted_f的值,结果为4.57。
  • 接下来,使用math模块的sin函数计算了π的正弦值,并将结果赋值给变量g。使用print函数打印出g的值,结果为1.2246467991473532e-16,这是一个科学计数法的表示方式。
  • 最后,定义了三个特殊的浮点数值:正无穷大、负无穷大和非数值。使用print函数打印出h、i、j的值,分别为inf、-inf、nan。

深入了解浮点数底层

在Python中,float 类型用于表示浮点数,即带有小数部分的数字。虽然Python为程序员提供了高级别的抽象,使得我们不需要关心底层实现的细节,但了解float类型在Python内部如何表示和存储仍然是有益的。

IEEE 754 浮点数标准

Python中的float类型通常遵循IEEE 754标准来表示浮点数。IEEE 754是一个定义浮点数在计算机中如何表示、存储和运算的国际标准。它定义了多种精度的浮点数,包括单精度(32位)和双精度(64位)。Python的float类型通常是双精度(double precision)。

浮点数的构成

一个IEEE 754浮点数由三个部分组成:

  • 符号位(Sign):1位,用于表示正负号(0表示正数,1表示负数)。
  • 指数位(Exponent):对于双精度浮点数,指数位占用11位。它表示了数值的指数部分,并且有一个偏移量(对于双精度是1023)。
  • 尾数位(Mantissa 或 Fraction):对于双精度浮点数,尾数位占用52位。它表示了数值的小数部分(或称为分数部分)。

浮点数的范围与精度

由于指数位和尾数位的位数是固定的,因此浮点数的范围和精度也是有限的。

  • 范围:由于指数位的限制,浮点数有一个最小值(接近但大于0)和一个最大值(有限的)。
  • 精度:由于尾数位的限制,浮点数不能表示所有实数,只能表示一定精度范围内的数。这意味着对于某些操作(如除法),结果可能不是精确的。

Python中的float类型

在Python中,当你创建一个浮点数时(例如x = 3.14),Python会将其存储为一个遵循IEEE 754标准的双精度浮点数。你可以使用sys.float_info来获取有关Python中float类型的信息,包括其精度、范围等。

浮点数的限制

由于浮点数的表示方式和精度限制,它们在某些情况下可能会导致问题:

  • 舍入误差:由于浮点数的精度有限,某些计算可能会导致舍入误差。
  • 表示范围:非常大的数或非常小的数可能无法用浮点数精确表示。
  • 特殊值:浮点数还包括一些特殊值,如正无穷大(float(‘inf’))、负无穷大(-float(‘inf’))和非数字(float(‘nan’))。

浮点数与十进制数的差异

需要注意的是,虽然我们在日常生活中经常使用十进制数,但计算机内部使用二进制数来表示和处理数据。由于二进制数无法精确表示所有十进制小数(如1/3或1/10),因此浮点数的表示和计算可能会受到这种差异的影响。这也是为什么在进行金融计算或需要高精度计算时,通常会使用专门的库(如decimal库)来避免浮点数的舍入误差。

总结

总结起来,浮点类型变量在Python中起到了至关重要的作用。它们用于存储和处理小数和实数,可以进行各种数学运算,并具有一些特殊的特点。在实际编程中,我们需要注意浮点数的精度和舍入误差,并使用适当的函数和方法来处理浮点数。通过熟练掌握浮点类型变量的使用,我们可以更好地进行数值计算和科学编程。

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

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

相关文章

迎接创新浪潮!RFID国军标助力数字化装备场转型

随着大数据、物联网的飞速发展,数字化转型已成为军事发展的核心战略之一。在这一重大历史进程中,广州一芯未来的RFID国军标呈现出独特而重要的作用。它不仅提升了装备管理的效率和准确性,还增强了装备的安全保障和资源配置的合理性。它以高效…

SpringMVC基础详解

文章目录 一、SpringMVC简介1、什么是MVC2、MVC架构模式与三层模型的区别3、什么是SpringMVC 二、HelloWorld程序1、pom文件2、springmvc.xml3、配置web.xml文件4、html文件5、执行Controller 三、RequestMapping注解1、value属性1.1、基础使用1.2、Ant风格(模糊匹配…

在CenteOs7上安装mysql8.0(Super详细版)

在CenteOs7上安装mysql8.0 为什么用Mysql8.0?如何下载下载地址需要提前准备下载步骤 服务器上安装如何上传到服务器?通过wget下载到服务器并解压 开始安装非必须安装如果全部安装执行顺序 安装完后,启动mysql使用“systemctl”检测mysqld服务…

充分利用智慧校园人事系统,提升党政职务管理

智慧校园人事系统中的党政职务管理功能,是专为高校及教育机构设计的,旨在高效、精确地处理与党政职务相关的各类事务,包括职务任命、任期管理、职责分配、考核评估等,以信息化手段促进党务及行政工作的透明化、规范化。 该模块首先…

Jest是什么软件?

Jest是一个由Facebook开发的开源JavaScript测试框架,它专为JavaScript项目的测试而设计,特别适用于React和Node.js环境。Jest以其简单的配置、高效的性能和易用性而闻名,成为现代JavaScript项目中不可或缺的测试工具。以下是关于Jest的详细解…

《Windows API每日一练》8.1 button控件二

8.1.4 按钮 在BTNLOOK中显示的前两个按钮是“按键”按钮(push button)。此类按钮是一种带有 文本的矩形,这些文本是在CreateWindow调用的窗口文本参数中提供的。而CreateWindow 或MoveWindow调用中指定的宽度和高度则确定了矩形的大小。文本…

面对全球新能源汽车合作发展创维汽车如何实现共赢

由全球新能源汽车合作组织(筹)主办、中国电动汽车百人会承办的首届全球新能源汽车合作发展论坛(GNEV2024)于6月27日,6月28日在新加坡金沙会议展览中心召开。创维汽车国际营销公司总经理齐奎源受邀参会并作出分享。 本届大会以推动全球新能源汽车产业协同发展与合作…

C语言课设--读取文件并统计数据

读取文件并统计数据 // 统计记事本英文字符数 //功能 &#xff1a; 读 文件 a.txt 统计出各种 数字 大写字母 小写字母 0~9 A~Z a ~z各有多少个 程序主体框架如下&#xff1a; #include<stdio.h> int a[128]{0};//其中数组元素a[i]保存 ASCII 码为i的字符的数量 v…

【CSS in Depth 2 精译】2.4 视口的相对单位

当前内容所在位置 第一章 层叠、优先级与继承第二章 相对单位 2.1 相对单位的威力2.2 em 与 rem2.3 告别像素思维2.4 视口的相对单位 ✔️2.5 无单位的数值与行高2.6 自定义属性2.7 本章小结 2.4 视口的相对单位 前面介绍过的 em 和 rem 是相对于 font-size 定义的&#xff0…

rust + mingw安装教程

0. 说明 windows上安装rust时&#xff0c;需要在电脑上安装C/C构建工具。推荐的的两种工具链可以选择&#xff1a; visual studio build toolsmingw 官方推荐使用visual studio&#xff0c;若你的电脑上已经安装了visual studio&#xff0c;则无需再安装&#xff0c;直接安装…

单目相机减速带检测以及测距

单目相机减速带检测以及测距项目是一个计算机视觉领域的应用&#xff0c;旨在使用一个摄像头&#xff08;单目相机&#xff09;来识别道路上的减速带&#xff0c;并进一步估计车辆与减速带之间的距离。这样的系统对于智能驾驶辅助系统&#xff08;ADAS&#xff09;特别有用&…

基于tensorflow2的目标检测完整实现过程

序言 虽然tf1仍然在维护&#xff0c;但tf2毕竟是主流&#xff0c;如果不是项目有明确要求&#xff0c;建议直接选择tf2。本文以tf2为例展开&#xff0c;总结从环境准备到使用自己的数据和tensorflow预训练模型进行快速训练和调用。对tensorflow和目标检测算法有深入了解的&…

Vue+Xterm.js+WebSocket+JSch实现Web Shell终端

一、需求 在系统中使用Web Shell连接集群的登录节点 二、实现 前端使用Vue&#xff0c;WebSocket实现前后端通信&#xff0c;后端使用JSch ssh通讯包。 1. 前端核心代码 <template><div class"shell-container"><div id"shell"/>&l…

【FPGA】STA静态时序分析

文章目录 一.定义二.分类1. 静态时序分析2. 静态时序分析 三. 概念四. 时间余量1.场景2.建立时间余量3.保持时间余量 一.定义 时序分析:检查电路是否满足时序要求&#xff1b; 二.分类 1. 静态时序分析 STA,遍历所有的时序路径&#xff0c;根据时序库&#xff08;.lib文件&…

新手教学系列——使用uWSGI对Flask应用提速

在构建和部署Flask应用时,性能和稳定性是两个关键的因素。为了提升Flask应用的性能,我们可以借助uWSGI这个强大的工具。本文将详细介绍为什么要使用uWSGI、uWSGI的底层原理,并提供一个实例配置,帮助你更好地理解和应用这个工具。 为什么要使用uWSGI uWSGI 是一个应用服务…

探索企业知识边界,鸿翼ECM AI助手开启智慧问答新时代

在信息化迅速发展的当下&#xff0c;企业积累的数字文档数量巨大&#xff0c;这些文档中蕴含的深层信息对业务发展至关重要。然而&#xff0c;传统的搜索技术常常因只能进行关键字查询而无法满足对文档深层次理解的需求。 据Gartner调查&#xff0c;高达47%的员工在寻找有效工…

Webpack: 三种Chunk产物的打包逻辑

概述 在前文 Webpack: Dependency Graph 管理模块间依赖 中&#xff0c;我们已经详细讲解了「构建」阶段如何从 Entry 开始逐步递归读入、解析模块内容&#xff0c;并最终构建出模块依赖关系图 —— ModuleGraph 对象。本文我们继续往下&#xff0c;讲解在接下来的「封装」阶段…

【大数据】—美国交通事故分析(2016 年 2 月至 2020 年 12 月)

引言 在当今快速发展的数字时代&#xff0c;大数据已成为我们理解世界、做出决策的重要工具。特别是在交通安全领域&#xff0c;大数据分析能够揭示事故模式、识别风险因素&#xff0c;并帮助制定预防措施&#xff0c;从而挽救生命。本文将深入探讨2016年2月至2020年12月期间&…

24年河南特岗教师招聘流程+报名流程

河南特岗教师报名流程如下 1.登录河南省特岗招聘网 登录河南省特岗招聘网注册账号和密码&#xff0c;账号可以是手机号或者身份证号&#xff0c;密码自己设置 2.注册登录账号 注册完账号重新登录账号&#xff0c;输入身份证号、手机号、密码、验证码 3.浏览考试须知 填写个人信…