【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编程中的数值处理技巧,为后续的编程学习和实践打下坚实的基础。

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

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

相关文章

Taro + vue3 小程序封装标题组件

分为没有跳转页面的title组件和 有跳转页面的title组件 我们可以把这个封装成一个组件 直接上代码 <template><div class"fixed-title-container"><div class"box"><div class"icon" v-if"isShow" click"…

mysql故障排查

MySQL是目前企业最常见的数据库之一日常维护管理的过程中&#xff0c;会遇到很多故障汇总了常见的故障&#xff0c;MySQL默认配置无法满足高性能要求 一 MySQL逻辑架构图 客户端和连接服务核心服务功能存储擎层数据存储层 二 MySQL单实例常见故障 故障1 ERROR 2002 (HY000)…

1.JavaEE进阶篇 - 为什么要学习SpringBoot呢?

文章目录 1.为什么要学框架&#xff1f;2.框架的优点展示(SpringBoot VS Servlet)2.1 Servlet 项⽬开发2.1.1 创建项⽬2.1.2 添加引⽤2.1.3 添加业务代码2.1.4 运⾏项⽬(配置tomcat)2.1.5 Maven配置2.1.5.1修改本地Maven仓库地址2.1.5.2 配置settings.xml文件2.1.5.3项目 本地仓…

C++:函数重载和引用

hello&#xff0c;各位小伙伴&#xff0c;本篇文章跟大家一起学习C&#xff1a;函数重载和引用&#xff0c;感谢大家对我上一篇的支持&#xff0c;如有什么问题&#xff0c;还请多多指教 &#xff01; 文章目录 函数重载1.函数重载的概念为什么C支持函数重载 引用引用的概念引…

计算机网络-HTTP相关知识-基础

HTTP基础 基本概念&#xff1a;HTTP是一种计算机之间交流通信的规范&#xff0c;它允许数据在两点之间传输&#xff0c;这个过程可以包括中转或接力。HTTP不仅仅包括文本&#xff0c;还可以包括图片、音频等超文本。状态码&#xff1a;HTTP状态码分为五类&#xff1a; 2xx&…

C++的 stack和queue 的应用和实现【双端队列的理解和应用】

文章目录 stack的理解和应用栈的理解栈的模拟实现string实现stackvector实现stack queue的理解和应用队列的理解队列的模拟实现 双端队列原理的简单理解deque的缺陷为什么选择deque作为stack和queue的底层默认容器STL标准库中对于stack和queue的模拟实现stack的模拟实现queue的…

深度学习pytorch好用网站分享

深度学习在线实验室Featurizehttps://featurize.cn/而且这个网站里面还有一些学习教程 免费好用 如何使用 PyTorch 进行图像分类https://featurize.cn/notebooks/5a36fa40-490e-4664-bf98-aa5ad7b2fc2f

木棍【dfs搜索优化】

木棒 题目描述 输入样例&#xff1a; 9 5 2 1 5 2 1 5 2 1 4 1 2 3 4 0输出样例&#xff1a; 6 5【思路】 优化 【AC代码】 #include <iostream> #include <algorithm> #include <cstring>using namespace std;const int N 70;int w[N], sum, length,…

C语言中的结构体:高级特性与扩展应用

前言 结构体在C语言中的应用不仅限于基本的定义和使用&#xff0c;还包含一些高级特性和扩展应用&#xff0c;这些特性和应用使得结构体在编程中发挥着更加重要的作用。 一、位字段&#xff08;Bit-fields&#xff09; 在结构体中&#xff0c;我们可以使用位字段来定义成员…

CMOS传输门与三态输出门电路

传输门&#xff08;TG&#xff09;的应用比较广泛&#xff0c;在数字电路和模拟电路中均有作用。 在数电中&#xff1a;作为基本单元电路构成各种逻辑电路&#xff1b;在模电中&#xff1a;可在取样-保持电路、斩波电路、数模转换器中传输模拟信号&#xff0c;所以又叫模拟开关…

AssetBundle在移动设备上丢失

1&#xff09;AssetBundle在移动设备上丢失 2&#xff09;Unity云渲染插件RenderStreaming&#xff0c;如何实现多用户分别有独立的操作 3&#xff09;如何在圆柱体类型的地图中编程玩家的输入 4&#xff09;Mixamo动画的根运动问题 这是第380篇UWA技术知识分享的推送&#xff…

【保姆级讲解如何安装与配置Node.js】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

Java中的网络编程(一)

一、网络编程概述 什么是计算机网络把不同区域的计算机&#xff08;广义&#xff09;通过通信设备和线路连接&#xff0c;可以实现数据的传输和共享的系统。实现不同计算机之间的练习&#xff0c;必须有介质连接。网络编程是干什么的聊天-->聊天软件 QQjava语言是支持网络间…

汽车EDI:如何与奔驰建立EDI连接?

梅赛德斯-奔驰是世界闻名的豪华汽车品牌&#xff0c;无论是技术实力还是历史底蕴都在全球汽车主机厂中居于领先位置。奔驰拥有多种车型&#xff0c;多元化的产品布局不仅满足了不同用户画像的需求&#xff0c;也对其供应链体系有着极大的考验。 本文将为大家介绍梅赛德斯-奔驰乘…

MySQL故障排查与生产环境优化

目录 引言 一、故障排查 1.1 故障一 1.2 故障二 1.3 故障三 1.4 故障四 1.5 故障五 1.6 故障六 1.7 故障七 1.8 故障八 1.9 故障九 1.10 故障十 1.11 故障十一 二、 生产环境优化 2.1 硬件优化 2.2 查询优化 总结 引言 MySQL是目前企业最常见的数据库之一&…

【Redis】Redis群集的三种模式(主从、哨兵、群集)

redis群集有三种模式&#xff0c;分别是主从同步/复制、哨兵模式、Cluster&#xff0c;下面会讲解一下三种模式的工作方式&#xff0c;以及如何搭建cluster群集 ●主从复制&#xff1a;主从复制是高可用Redis的基础&#xff0c;哨兵和集群都是在主从复制基础上实现高可用的。主…

MySQL、Oracle查看字节和字符长度个数的函数

目录 0. 总结1. MySQL1.1. 造数据1.2. 查看字符/字节个数 2. Oracle2.1. 造数据2.2. 查看字符/字节个数 0. 总结 databasecharbyteMySQLchar_length()length()Oraclelength()lengthB() 1. MySQL 1.1. 造数据 sql drop table if exists demo; create table demo (id …

软件架构复用

1.软件架构复用的定义及分类 软件产品线是指一组软件密集型系统&#xff0c;它们共享一个公共的、可管理的特性集&#xff0c;满足某个特定市场或任务的具体需要&#xff0c;是以规定的方式用公共的核心资产集成开发出来的。即围绕核心资产库进行管理、复用、集成新的系统。核心…

【Spring】SpringBoot整合MybatisPlus的基本应用

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 一、MybatisPlus简介 先来看一下官方的简介吧。 MyBatis-Plus &#xff08;简称 MP&#xff09;是一个 MyBatis的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为 简化开发、提高效率而生。Myb…

【快速解决】python缺少了PyQt5模块的QtMultimedia子模块

目录 问题描述 问题原因 解决方法 成功示范 问题描述 Traceback (most recent call last): File "d:\桌面\python项目\DesktopWords-master\main.py", line 4, in <module> from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent ModuleNotFoundEr…