【Python基础教程】5. 数

news2024/11/19 8:53:34

在这里插入图片描述

🎈个人主页:豌豆射手^
🎉欢迎 👍点赞✍评论⭐收藏
🤗收录专栏: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编程中的数值处理技巧,为后续的编程学习和实践打下坚实的基础。

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

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

相关文章

芒果YOLOv8改进154:提出多种<独家原创结构>ReNLANLSK, CPNGhost, CSCLSK, C2fLSK等,基于LSKNet,即插即用

本篇文章内容基于 论文 LSKNet 论文 的核心, 针对其核心,芒果专栏提出多种原创结构 芒果专栏提出基于 LSKNet 的多种原创结构,改进源码教程 | 详情如下🥇 👉1. 原创结构:ReNLANLSK、👉2. 原创结构:CPNLSK 👉3. 原创结构:CSCLSK、 👉4. 原创结构:C3LSK、 👉5…

labelme、labelimg的安装及使用(含格式转换)

目录 labelme、labelimg简要介绍 labelme labelimg Anaconda虚拟环境 labelme安装 labelme的使用 labelimg安装 labelimg的使用 json格式转换 标注便携操作 labelme、labelimg简要介绍 labelme和labelimg都是图像标注工具&#xff0c;它们在机器学习和计算机视觉领…

在CentOS 8.5.2111下安装vncserver tigervnc-server

# 参考&#xff1a; How to Install TigerVNC Server on CentOS 8 前提&#xff1a; 默认用root操作所有命令 安装桌面GUI dnf groupinstall "Server with GUI" 安装tigervnc-server dnf install tigervnc-server 增加vncuser用户&#xff08;这里默认就是vncuse…

基础数据结构-链表,栈,队列

链表 常见的链表有单链表和双链表 单链表&#xff1a;每个结点有一个next指针指向下一个结点&#xff0c;data存放数据 双链表&#xff1a;每个结点有一个next指针指向下一个结点&#xff0c;prev指针指向上一个结点&#xff0c;data存放数据。 4的下一结点为-1&#xff0c;…

【GO语言卵细胞级别教程】11.探索Go语言的面向对象编程之美(含源码仅此一份,先到先得)

【GO语言卵细胞级别教程】11.探索Go语言的面向对象编程之美&#xff08;含源码仅此一份&#xff0c;先到先得&#xff09; 目录 【GO语言卵细胞级别教程】11.探索Go语言的面向对象编程之美&#xff08;含源码仅此一份&#xff0c;先到先得&#xff09;1.面向对象的引用1.1简介1…

详解TCP/IP五层模型

目录 一、什么是TCP五层模型&#xff1f; 二、TCP五层模型的详细内容 1. 应用层 2. 传输层 3. 网络层 4. 数据链路层 5. 物理层 三、网络设备所在分层 封装和分⽤ 三、Java示例 引言&#xff1a; 在网络通信中&#xff0c;TCP/IP协议是至关重要的。为了更好地理解TCP协议的工…

02-JDK新特性-try-with-resources自动管理资源关闭

try-with-resources 为什么要介绍这个了 看看一下以下代码&#xff1a; public static void fileCopyByTryWithResources(File src, File des) throws IOException {try (FileInputStream fis new FileInputStream(src); FileOutputStream fos new FileOutputStream(des);…

AI预测福彩3D第26弹【2024年4月4日预测--第4套算法重新开始计算第11次测试】

今天清明节假日&#xff0c;一会要外出&#xff0c;可能要晚点回来。咱们尽早先把预测数据跑完&#xff0c;把结果发出来供各位彩友参考。合并下算法&#xff0c;3D的预测以后将重点测试本套算法&#xff0c;因为本套算法的命中率较高。以后有时间的话会在第二篇文章中发布排列…

微电网优化:基于肝癌算法(Liver Cancer algorithm, LCA)的微电网优化(提供MATLAB代码)

一、微电网优化模型 微电网是一个相对独立的本地化电力单元&#xff0c;用户现场的分布式发电可以支持用电需求。为此&#xff0c;您的微电网将接入、监控、预测和控制您本地的分布式能源系统&#xff0c;同时强化供电系统的弹性&#xff0c;保障您的用电更经济。您可以在连接…

Vue3【进阶】

简介 https://cn.vuejs.org/guide/introduction.html 创建vue3工程 【基于 vue-cli创建】 基本和vue-cli的过程类似&#xff0c;只是选择的时候用vue3创建 【基于vite创建】【推荐】 【官网】https://vitejs.cn/ 【可以先去学一下webpack】 步骤 【https://cn.vitejs.…

【APUE】网络socket编程温度采集智能存储与上报项目技术------多进程编程

作者简介&#xff1a; 一个平凡而乐于分享的小比特&#xff0c;中南民族大学通信工程专业研究生在读&#xff0c;研究方向无线联邦学习 擅长领域&#xff1a;驱动开发&#xff0c;嵌入式软件开发&#xff0c;BSP开发 作者主页&#xff1a;一个平凡而乐于分享的小比特的个人主页…

item_search-按关键字搜索淘宝商品接口:精准关键字,多样搜索类型,智能排序——淘宝购物新体验

淘宝购物新体验&#xff1a;item_search接口——精准关键字、多样搜索类型与智能排序 在淘宝购物的新体验中&#xff0c;item_search接口扮演着至关重要的角色&#xff0c;它为用户提供了精准关键字搜索、多样搜索类型以及智能排序等功能&#xff0c;极大地提升了购物的便捷性…

趣学前端 | 综合一波CSS选择器的用法

背景 最近睡前习惯翻会书&#xff0c;重温了《HTML5与CSS 3权威指南》。这本书&#xff0c;分上下两册&#xff0c;之前读完了上册&#xff0c;下册基本没翻过。为了对得起花过的每一分钱&#xff0c;决定拾起来近期读一读。 CSS 选择器 在CSS3中&#xff0c;提倡使用选择器…

Python爬虫-懂车帝城市销量榜单

前言 本文是该专栏的第23篇,后面会持续分享python爬虫干货知识,记得关注。 最近粉丝留言咨询某汽车平台的汽车销量榜单数据,本文笔者以懂车帝平台为例,采集对应的城市汽车销量榜单数据。 具体的详细思路以及代码实现逻辑,跟着笔者直接往下看正文详细内容。(附带完整代码…

程序员的工资是多少,和曹操有莫大的关系

曹操是谁大家都知道了吧&#xff0c;他是三国时期的一个有名的大老板&#xff0c;谁知道曹操的工资是多少呢&#xff1f;这个其实也不好说&#xff0c;有时候曹操赚很多的钱&#xff0c;有时候也亏血本&#xff0c;甚至连脑袋都差点掉了。创业不容易啊&#xff0c;曹老板也是如…

动力云客-B站(第一天)

一 项目技术选型及开发工具 前后端分离的项目&#xff08;前端项目 后端项目&#xff09; 前端&#xff1a;Html、CSS、JavaScript、Vue、Axios、Element Plus后端&#xff1a;Spring Boot、Spring Security、MyBatis、MySQL、Redis 相关组件&#xff1a;HiKariCP&#x…

科东软件参加广州机器人产业联盟举办先进工业母机专家研讨会

工业母机是“制造机器的机器”&#xff0c;具有基础性、通用性、战略性特征&#xff0c;包括了减材切削机床、等材成形装备、增材制造装备及其控制系统等&#xff0c;是衡量国家工业水平和竞争力的重要标志。广东省作为全球知名的制造业基地&#xff0c;非常重视高端装备领域工…

(三)LTspice学习交流分析

文章目录 前言一、Edit simulation cmd二、添加激励总结 前言 上一节我们学习了LTspice的安装&#xff0c;很简单&#xff0c;无脑安装 &#xff08;一&#xff09;LTspice简介 &#xff08;二&#xff09;LTspice学习之简介2 今天我们来学习一下LTspice另一个非常重要的仿真功…

【VASP学习】在Ubuntu系统安装vasp.5.4.4的全过程(包括VASP官方学习资料、安装过程中相关编辑器的配置、VASP的编译及VASP的测试)

在Ubuntu系统安装vasp.5.4.4的全过程 VASP的简介与相关学习资料安装前的准备工作及说明安装过程intel编译器的安装VASP的编译VASP的测试 参考来源 VASP的简介与相关学习资料 VASP(Vienna Ab initio Simulation Package)是基于第一性原理对原子尺度的材料进行模拟计算的软件。比…

7种链游媒体宣发工具助力游戏营销-华媒舍

一. 什么是链游媒体 链游媒体是指以区块链技术为基础&#xff0c;实现游戏与媒体资源之间的连接和交互的媒体形态。通过区块链技术&#xff0c;链游媒体能够确保游戏内容和媒体信息的透明性和不可篡改性&#xff0c;提供更加公正、透明的游戏环境。 二. 链游媒体宣发工具的重要…