【Python基础教程】5. 数

在这里插入图片描述

🎈个人主页:豌豆射手^
🎉欢迎 👍点赞✍评论⭐收藏
🤗收录专栏:python基础教程
🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步!

专栏往期文章:

【Python基础教程】5. 数与表达式

  • 一 数的概念
    • 1.1 概念
    • 1.2 类比
  • 二、数的类型
    • 2.1 整型(int)
    • 2.2 浮点型(float)
    • 2.3 复数(complex)
  • 三、数值运算
    • 3.1算术运算符
        • 加(+)
        • 减(-)
        • 乘(*)
        • 除(/)
        • 取模(%)
        • 幂运算(**)
        • 整除(//)
    • 3.2 运算符优先级与结合性
        • 优先级顺序
        • 结合性
  • 四、类型转换
    • 4.1 隐式类型转换
    • 4.2 显式类型转换
  • 总结

在这里插入图片描述

引言:

在Python编程的世界里,数是最基础、也是最重要的概念之一。

无论是进行简单的数学计算,还是构建复杂的算法,都离不开对数的操作和处理。

在本篇博客中,我们将深入探讨Python中数的概念、类型、运算以及类型转换,帮助大家更好地理解和运用Python中的数值处理。

首先,我们会介绍数的概念,并通过一些生动的类比来帮助大家理解。接着,我们将详细解析Python中的三种主要数的类型:整型、浮点型和复数,以及它们各自的特点和用法。

掌握了数的类型之后,我们将进入数值运算的讲解。我们将介绍Python中的基本算术运算符,包括加、减、乘、除、取模、幂运算和整除等,并解释它们的用法和运算规则。同时,我们还将讨论运算符的优先级和结合性,帮助大家避免常见的运算错误。

最后,我们将探讨类型转换的概念。在Python中,有时我们需要将一种类型的数转换为另一种类型,以便进行特定的运算或操作。我们将介绍隐式类型转换和显式类型转换的概念和用法,并举例说明它们在实际编程中的应用。

通过本篇博客的学习,相信大家对Python中的数值处理会有更深入的理解,为后续的编程学习打下坚实的基础

一 数的概念

1.1 概念

在Python中,数(Numbers)是基本的数据类型,用于表示数值。Python支持多种数值类型,每种类型都有其特定的用途和特性。

数据类型(DataType)

它是计算机科学中的一个基本概念,它指的是在程序设计中用于定义变量或函数参数等所能存储数据的种类。在编程语言中,每种数据类型都有其特定的存储方式、取值范围以及可进行的操作

数据类型的作用在于帮助程序员明确数据的性质,以便正确地使用这些数据,并优化数据的存储和运算效率。

在Python中,变量的数据类型是动态的,可以在程序运行过程中改变。这意味着程序员无需在声明变量时指定其数据类型,Python解释器会根据赋给变量的值自动推断其数据类型。这种动态类型系统使得Python编程更加灵活和便捷。

在现实生活中,我们可以将数据类型比作不同类型的容器,用于存储和表示不同类型的物品。这些容器具有不同的特性,决定了它们能装什么、不能装什么,以及如何使用和处理其中的物品

Python中的数可以参与各种数学运算,如加法、减法、乘法、除法、取模等,并遵循一定的运算优先级和结合性

Python还提供了丰富的数学函数和操作符来处理这些数,使得数值计算变得简单而高效。

在Python中,数值不仅可以用于基本的数学运算,还可以作为条件判断、循环控制、列表和元组等复合数据类型的元素,以及作为函数和方法的参数或返回值。因此,理解Python中数的概念对于掌握Python编程基础是非常重要的。

1.2 类比

在现实生活中,我们可以将Python中的数类比为日常生活中的各种“量”或“数值”。这些数值可以是整数、小数或表示某种特殊关系的数值(如复数),它们都有各自的实际意义和用途。

以一家超市为例:

  1. 整型:在超市中,我们经常会遇到整数,比如购买的商品数量、库存数量、货架编号等。这些整数都是精确且没有小数部分的,就像Python中的整型一样,用于表示完整、确切的数值。

  2. 浮点型:当涉及到商品的价格、重量或顾客的消费总额时,我们通常会使用带有小数点的数值。这些浮点数值能够更精确地表示实际情况,就像Python中的浮点型一样,用于处理需要小数精度的计算。

  3. 复数:虽然在日常超市购物中不太可能直接遇到复数,但我们可以将其类比为某种特殊情境下的数值表示。比如,在某些科学计算或工程应用中,可能需要用到复数以表示某种周期性变化或波动。这就像超市中某些特殊商品的促销策略,可能涉及复杂的计算模式,需要用到类似复数的概念来理解和处理。

通过这个类比,我们可以理解Python中的数是如何与现实世界中的数值相对应的。在Python编程中,我们可以使用这些数值类型来进行各种计算和操作,就像在现实生活中我们使用不同的数值来表示和处理各种情况一样。掌握这些数值类型的概念和用法,对于编写准确、高效的Python程序至关重要。

二、数的类型

具体介绍Python中数的类型如下:

2.1 整型(int)

定义与示例

整型用于表示整数,即没有小数部分的数字

在Python中,整型的范围取决于计算机的内存大小和使用的Python解释器。

示例:

# 创建一个整型变量
num_int = 10
print(num_int)  # 输出: 10
print(type(num_int))  # 输出: <class 'int'>

进制转换(二进制、八进制、十六进制)

Python中整型支持多种进制数的表示。除了默认的十进制外,还可以使用前缀来表示其他进制:

  • 二进制:以0b0B开头
  • 八进制:以0o0O开头
  • 十六进制:以0x0X开头

示例:

# 二进制数
binary_num = 0b1010  # 等价于十进制的10
print(binary_num)  # 输出: 10

# 八进制数
octal_num = 0o12  # 等价于十进制的10
print(octal_num)  # 输出: 10

# 十六进制数
hex_num = 0xA  # 等价于十进制的10
print(hex_num)  # 输出: 10

此外,还可以使用内置函数bin(), oct(), 和 hex() 将十进制数转换为相应的二进制、八进制和十六进制字符串表示形式。

函数

在Python中,函数是一段可重用的代码块,它执行特定的任务并可能返回结果。函数通过定义名称、参数和代码体来创建,可以多次调用以执行相同的操作,从而提高代码的可读性、可维护性和效率。

可以将Python中的函数想象成一家餐厅中的菜单项。每个菜单项(即函数)都对应着一道特定的菜品(即任务),有自己的名称(函数名)、所需的原料(参数)以及制作步骤(代码体)。

当顾客(即程序)想要品尝这道菜品时,只需向服务员(即代码调用者)点单,服务员便会按照菜单上的制作步骤为顾客准备这道菜。同样地,在程序中,我们可以通过调用函数来执行特定的任务,而无需每次都重新编写相同的代码。这样,不仅提高了代码的可读性和可维护性,还使得代码更加高效和简洁。

print函数

它是Python中的一个内置函数,它的主要功能是输出指定的信息到控制台,使得程序员能够直观地看到程序运行过程中的数据和结果

2.2 浮点型(float)

定义与示例

浮点型用于表示带有小数点的实数。在Python中,浮点数是双精度浮点数,使用64位来存储。

示例:

# 创建一个浮点型变量
num_float = 3.14
print(num_float)  # 输出: 3.14
print(type(num_float))  # 输出: <class 'float'>

精度问题

由于计算机内部表示浮点数的限制,有些浮点数可能不能精确表示,这会导致一些看似简单的数学运算产生不精确的结果。例如:

print(0.1 + 0.2)  # 输出: 0.30000000000000004,而不是期望的0.3

这种精度问题在财务计算或需要高精度计算的场合尤为重要,通常需要使用专门的库(如decimal模块)来处理。

2.3 复数(complex)

定义与示例

复数由实部和虚部组成,可以表示为a + bj,其中a是实部,b是虚部,j(或J)是虚数单位,满足j^2 = -1

示例:

# 创建一个复数变量
num_complex = 3 + 4j
print(num_complex)  # 输出: (3+4j)
print(type(num_complex))  # 输出: <class 'complex'>

type()函数

type函数在Python中扮演着重要角色,它的主要功能是用于获取对象的数据类型,帮助程序员了解对象的具体类型,以便在编程过程中进行更准确的类型判断和操作。在这里,num_complex就是一个对象。

实部与虚部

可以通过realimag属性分别访问复数的实部和虚部。

属性

在Python中,属性是对象的特性或数据,它描述了对象的某种状态或特征。属性可以通过点(.)操作符来访问和修改,是面向对象编程中不可或缺的一部分,使得对象能够具有更加丰富的描述和行为。

示例:

# 访问复数的实部和虚部
real_part = num_complex.real  # 实部为3
imag_part = num_complex.imag  # 虚部为4
print(real_part)  # 输出: 3.0
print(imag_part)  # 输出: 4.0

复数在Python中主要用于科学计算、信号处理、工程应用等领域,其中涉及到需要表示和处理波动、旋转等复杂数学概念的场合。通过内置的复数类型,Python可以方便地执行复数的算术运算。

三、数值运算

在Python中,数值运算主要通过算术运算符进行。这些运算符允许我们对数值类型的变量进行加法、减法、乘法、除法、取模、幂运算和整除等操作。下面是对这些运算符的具体介绍:

3.1算术运算符

加(+)

用于将两个数值相加。

a = 5
b = 3
result = a + b  # 结果为 8
减(-)

用于从一个数值中减去另一个数值。

a = 5
b = 3
result = a - b  # 结果为 2
乘(*)

用于将两个数值相乘。

a = 5
b = 3
result = a * b  # 结果为 15
除(/)

用于将第一个数值除以第二个数值,返回浮点数结果

a = 5
b = 2
result = a / b  # 结果为 2.5
取模(%)

返回两数相除的余数。

a = 5
b = 2
result = a % b  # 结果为 1
幂运算(**)

用于计算第一个数值的第二个数值次方。

a = 2
b = 3
result = a ** b  # 结果为 8
整除(//)

返回商的整数部分,忽略小数部分

a = 5
b = 2
result = a // b  # 结果为 2

3.2 运算符优先级与结合性

优先级顺序

Python中的算术运算符具有不同的优先级,优先级从高到低如下:

  1. 括号
  2. 幂运算(**)
  3. 乘(*)、除(/)、整除(//)、取模(%)
  4. 加(+)、减(-)

优先级决定了在没有括号的情况下,算术表达式中各个部分如何计算

例如,乘法和除法会先于加法和减法执行。

结合性

结合性是指当多个相同优先级的运算符出现在表达式中时,它们如何结合。在Python中,除了幂运算外,大多数算术运算符都是左结合的,这意味着它们从左到右进行计算。例如:

a = 2
b = 3
c = 4
result = a - b - c  # 等价于 (a - b) - c,结果为 -5

然而,幂运算具有右结合性,意味着它会从右向左计算

a = 2
b = 3
c = 2
result = a ** b ** c  # 等价于 a ** (b ** c),结果为 512

理解运算符的优先级和结合性对于编写清晰且高效的代码至关重要,可以避免由于计算顺序错误而导致的逻辑问题。在复杂的表达式中,使用括号来明确指定计算顺序通常是一个好的编程习惯。

四、类型转换

在Python中,类型转换是一个重要的概念,它允许我们在不同的数据类型之间进行转换。下面将详细解释隐式类型转换和显式类型转换,并给出相应的示例。

4.1 隐式类型转换

隐式类型转换是Python在运行时自动进行的数据类型转换,程序员通常不需要显式地指定。Python会根据上下文的需要自动进行这种转换。

示例说明

当我们进行数学运算时,Python会尝试自动转换数据类型以确保运算可以正确进行。

# 整数与浮点数相加,整数自动转换为浮点数
a = 5
b = 3.0
result = a + b  # result的值为8.0,整数a自动转换为浮点数

# 字符串与整数相加,引发TypeError,因为字符串和整数之间不能自动转换
c = "5"
d = 3
# e = c + d  # 这行会报错,TypeError: can only concatenate str (not "int") to str

# 正确的方式是将整数转换为字符串
e = c + str(d)  # e的值为"53"

在这个例子中,当整数a与浮点数b相加时,Python自动将整数a转换为浮点数以完成运算。然而,字符串与整数相加时,由于它们之间不存在自然的隐式转换规则,所以Python会抛出一个TypeError异常。

4.2 显式类型转换

显式类型转换是指程序员通过调用内置函数(如int()float()complex()等)来明确地将一个数据类型转换为另一个数据类型。

函数的使用

  • int(): 将一个数值或字符串转换为整数。
  • float(): 将一个数值或字符串转换为浮点数。
  • complex(): 创建一个复数。

示例

# 将浮点数转换为整数
x = 3.14
int_x = int(x)  # int_x的值为3,小数部分被丢弃

# 将字符串转换为整数
str_y = "42"
int_y = int(str_y)  # int_y的值为整数42

# 将整数转换为浮点数
z = 7
float_z = float(z)  # float_z的值为7.0

# 将字符串转换为浮点数
str_w = "3.14"
float_w = float(str_w)  # float_w的值为浮点数3.14

# 创建复数
complex_num = complex(3, 4)  # complex_num的值为3+4j

注意事项

  • 当使用int()函数转换浮点数时,小数部分会被丢弃,不进行四舍五入。
  • 使用int()float()转换字符串时,字符串必须表示一个有效的数字,否则会抛出ValueError
  • complex()函数接收两个参数,第一个参数为实部,第二个参数为虚部。

错误处理的示例

try:
    # 尝试将一个非数字字符串转换为整数
    invalid_str = "abc"
    int_invalid = int(invalid_str)  # 这会抛出ValueError
except ValueError as e:
    print(f"转换错误: {e}")  # 输出错误信息

在这个错误处理的示例中,我们尝试将一个非数字字符串"abc"转换为整数,这会引发ValueError异常。我们使用try-except块来捕获这个异常,并打印出错误信息。

总结

通过本篇博客的学习,我们全面了解了Python中数的概念、类型、运算以及类型转换。我们深入探讨了整型、浮点型和复数这三种主要的数的类型,并学习了如何使用它们进行各种数值运算。同时,我们也掌握了运算符的优先级和结合性,以避免在复杂的运算中出现错误。

此外,我们还介绍了类型转换的概念和用法,包括隐式类型转换和显式类型转换。了解这些转换方法可以帮助我们在编程中更加灵活地处理各种数值类型,实现更复杂的逻辑和功能。

总的来说,本篇博客为大家提供了一个全面而深入的Python数值处理教程,希望能够帮助大家更好地掌握Python编程中的数值处理技巧,为后续的编程学习和实践打下坚实的基础。

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

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

相关文章

文本处理语言awk基本语法

文章目录 运算符流程控制函数封装 awk语言初步 AWK 是一种强大的文本处理和数据解析工具&#xff0c;它支持丰富的运算符和流程控制语句。运算符方面&#xff0c;AWK 提供了基本的算术运算符&#xff08;, -, *, /, %, ^, **&#xff09;和赋值运算符&#xff08;, -, *, /, %…

【QT+QGIS跨平台编译】056:【pdal_json_schema+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

点击查看专栏目录 文章目录 一、pdal_json_schema介绍二、pdal下载三、文件分析四、pro文件五、编译实践一、pdal_json_schema介绍 pdal_json_schema 是与 PDAL(Point Data Abstraction Library)相关的 JSON 模式文件。PDAL 是一个用于处理和分析点云数据的开源库。JSON 模式…

常见寻找 SQL 注入漏洞方法总结

一、借助推理进行测试 识别 SOL 注入漏洞有一种简单的规则:通过发送意外数据来触发异常。该规则包括如下含义: 1. 识别 Web 应用上所有的数据输入。 2. 了解哪种类型的请求会触发异常。 3. 检测服务器响应中的异常。 二、通过参数判断 假设你正在访问一个网站&#xff0c…

NoSQL之Redis配置

文章目录 NoSQL之Redis配置一、关系数据库和非关系数据库1、关系型数据库2、非关系型数据库3、非关系型数据库产生背景4、关系型数据库和非关系型数据库的区别4.1 数据存储方式不同4.2 扩展方式不同4.3 对事务性的支持不同 5、总结5.1 关系型数据库5.2 非关系型数据库 二、Redi…

Spring-IoC 基于注解

基于xml方法见&#xff1a;http://t.csdnimg.cn/dir8j 注解是代码中的一种特殊标记&#xff0c;可以在编译、类加载和运行时被读取&#xff0c;执行相应的处理&#xff0c;简化 Spring的 XML配置。 格式&#xff1a;注解(属性1"属性值1",...) 可以加在类上…

大数据基础设施搭建 - Spark

文章目录 一、解压压缩包二、修改配置文件conf/spark-env.sh三、测试提交Spark任务四、Spark on Hive配置4.1 创建hive-site.xml&#xff08;spark/conf目录&#xff09;4.2 查看hive的hive-site.xml配置与3.1配置的是否一致4.3 测试SparkSQL4.3.1 启动SparkSQL客户端&#xff…

【JAVA】JAVA快速入门(长期维护)

下面是java的一些入门基础知识&#xff0c;有需要借鉴即可。 课程&#xff1a;B站黑马程序员&#xff0c;JAVA入门LINK 一、初识JAVA 1.java概述 概念&#xff1a;java是由sun公司研发&#xff0c;在2009年被oracle收购&#xff0c;祖师爷詹姆斯高斯林&#xff0c;是一种高级…

Copilot for Microsoft365使用心得

从去年3月份的发布到上周获得的体验名额&#xff0c;关注copilot已经超过了一年&#xff0c; 实际体验了一周觉得微软这款产品真的挺厉害的&#xff0c;至少在我认知里面确实可以减少很多的工作量&#xff0c;在此感谢陈老师公众号的体验卡的活动&#xff08;活动真实有效&…

101. 对称二叉树及同类题

101. 对称二叉树 力扣题目链接(opens new window) 给定一个二叉树&#xff0c;检查它是否是镜像对称的。 递归 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNo…

【青龙脚本】星抖

脚本出处:Huaji 功能:完成日常任务 每天运行1次即可 变量名:yuanshen_xddj 手机登录软件后&#xff0c;抓包&#xff0c;搜索Authorization里面的参数 注意:每天12小时都要进软件领取金块&#xff0c;超过12小时就会停止产出 参数设置都在脚本注释里&#xff0c;懂的都懂&a…

Redis从入门到精通(五)Redis实战(二)商户查询缓存

↑↑↑请在文章头部下载测试项目原代码↑↑↑ 文章目录 前言4.2 商户查询缓存4.2.1 缓存介绍4.2.2 查询商户信息的传统做法4.2.2.1 接口文档4.2.2.2 代码实现4.2.2.3 功能测试 4.2.3 查询商户信息添加Redis缓存4.2.3.1 逻辑分析4.2.3.2 代码实现4.2.3.3 功能测试 4.2.3 数据一致…

传输层 --- UDP

目录 1. 传输层是什么呢&#xff1f; 2. 再谈端口号 2.1. 端口号是什么 2.2. 协议号是什么 2.3. 认识知名端口号 2.4. 端口号的相关问题 2.4.1. 一个进程可以绑定多个端口号吗&#xff1f; 2.4.2. 一个端口号可以被多个进程绑定吗&#xff1f; 2.4.3. 为什么不使用P…

向量数据库 | AI时代的航道灯塔

向量数据库 | AI时代的航道灯塔 什么是向量检索服务拍照搜商品 你使用过向量数据库吗&#xff1f;使用体验&#xff1f;为什么向量数据库能借由大模型引起众多关注向量数据库在当前AI热潮中是昙花一现&#xff0c;还是未来AI时代的航道灯塔&#xff1f; 今天的话题主要是讨论向…

python-基础篇-字符串、列表、元祖、字典-列表

文章目录 2.3.2列表2.3.2.1列表介绍2.3.2.1.1列表的格式2.3.2.1.2打印列表 2.3.2.2列表的增删改查2.3.2.2.1列表的遍历2.3.2.2.1.1使用for循环2.3.2.2.1.2使用while循环 2.3.2.2.2添加元素("增"append, extend, insert)2.3.2.2.2.1append 2.3.2.2.2.2extend2.3.2.2.2…

博客搭建(hexo+github)

简介 搭建完成网站的如下所示 https://polarday.top/ 使用github托管博客&#xff0c;完全免费不需要购买服务器 博客框架&#xff1a;hexo hexo主题&#xff1a;ICARUS 图床&#xff1a;githubPicGo 编辑&#xff1a;vscode 为什么使用hexo框架&#xff1f;因为hexo是静态框…

新手开抖店:选品过后如何有效对接达人?这些方法100%有效!

哈喽~我是电商月月 要说做抖音小店最主要的是什么&#xff1f;那当然是找品了 那出单最快的方法是什么&#xff1f;无疑是达人带货了&#xff01; 但新手店铺没销量&#xff0c;没体验分&#xff0c;没好评怎么能让达人同意帮我们带货呢&#xff1f; 方法其实很简单&#x…

上位机图像处理和嵌入式模块部署(qmacvisual之plc通信)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 传统的非标自动化设备当中&#xff0c;plc发挥了很大的作用。这里面如何对这些电机和机构进行控制&#xff0c;大多数场景下用的就是plc设备了。目…

常用的AI绘画自动生成器介绍

AI绘画自动生成器是一种利用人工智能技术生成图像的工具。它可以根据用户输入的文本描述自动生成相应的图像。目前,有几种流行的AI绘画自动生成器,包括: 1. **DALL-E 2** DALL-E 2是由OpenAI开发的AI绘画生成器,它可以根据用户输入的自然语言描述生成高质量的图像。DALL-E 2使…

上位机图像处理和嵌入式模块部署(qmacvisual之tcp服务器端)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 上面一篇&#xff0c;我们谈到了tcp客户端&#xff0c;另外一种连接方法就是tcp服务器端。事实上&#xff0c;对于第三方系统&#xff0c;大多数情…

解析Apache Kafka:在大数据体系中的基本概念和核心组件

关联阅读博客文章&#xff1a;探讨在大数据体系中API的通信机制与工作原理 关联阅读博客文章&#xff1a;深入解析大数据体系中的ETL工作原理及常见组件 关联阅读博客文章&#xff1a;深度剖析&#xff1a;计算机集群在大数据体系中的关键角色和技术要点 关联阅读博客文章&a…