Python 的数据类型与操作

一、常用内置类型(Built - in Types)

        Python 拥有多种内置数据类型,这些类型满足了各种编程需求,从简单的数据存储到复杂的数据结构表示。

1. 数值类型(Numeric Types)

        整数(int):整数在 Python 中可以表示任意大小的整数值,不受特定字节数的限制。例如,x = 10就定义了一个简单的整数变量。整数可用于计数、索引等多种场景。

        浮点数(float):用于表示带有小数点的数字,采用 IEEE 754 双精度浮点数格式。如y = 3.14。浮点数在科学计算、金融计算等需要处理小数的场景中非常有用。

        复数(complex):以a + bj的形式表示,其中a为实部,b为虚部,j表示虚数单位。例如,z = 2 + 3j。复数在数学和工程领域的特定计算中发挥作用。

2. 序列类型(Sequence Types)

        列表(list):列表是一种可变的有序序列,可以包含不同类型的元素。例如,my_list = [1, 'hello', True]。通过索引可以访问列表中的元素,并且可以对列表进行修改、添加或删除元素等操作。

        元组(tuple):元组是不可变的有序序列,与列表类似,但一旦创建就不能修改。如my_tuple = (1, 'world', False)。元组常用于表示固定结构的数据,如函数返回多个值时。

        字符串(string):字符串是由字符组成的不可变序列。在 Python 中,字符串可以使用单引号、双引号或三引号(用于多行字符串)来表示。例如,s = "Python is great"。字符串支持多种操作,如切片、连接、查找等。

3. 映射类型(Mapping Types)

        字典(dictionary):字典是一种无序的键 - 值对数据结构,其中键必须是唯一的。例如,my_dict = {'name': 'John', 'age': 25}。通过键可以快速查找对应的值,常用于存储和查询相关联的数据。

4. 集合类型(Set Types)

        集合(set):集合是无序的、不包含重复元素的数据结构。例如,my_set = {1, 2, 3}。集合支持交集、并集、差集等操作,可用于数据去重、元素关系判断等场景。

5. 布尔类型(Boolean Type)

        布尔类型只有两个值:TrueFalse。它在条件判断、逻辑运算中起着关键作用。例如,x = 5; y = 10; result = x < y,这里result的值为True

二、常用内置常数(Built - in Constants)

        Python 提供了一些内置常数,这些常数在编程过程中具有特殊的意义和用途。

    None:表示空值或者缺失值。在函数没有明确返回值时,默认返回None。例如,一个函数只是执行一些操作而不需要返回特定结果时,可以使用None

    TrueFalse:这是布尔类型的两个值,在逻辑判断中使用。例如,在if语句中判断条件的真假。

    Ellipsis...:这个常数在特定的语法结构中有特殊用途,比如在定义多维数组时可以作为占位符。

三、常用内置运算符(Built - in Operators)

1. 算术运算符

    加法(+:用于数值相加,也可用于字符串连接和列表、元组等序列的连接。例如,2 + 3得到5"hello" + "world"得到"helloworld"

    减法(-:用于数值相减。如5 - 2得到3

    乘法(*:对于数值是乘法运算,对于字符串和序列可以实现重复操作。例如,3 * 4得到12"a" * 3得到"aaa"

    除法(/:执行浮点数除法,结果总是浮点数。例如,5 / 2得到2.5

2. 比较运算符

    等于(==:判断两个值是否相等。例如,2 == 2返回True"hello" == "world"返回False

    不等于(!=:判断两个值是否不相等。

    大于(>)、小于(<)、大于等于(>=)、小于等于(<=:用于比较数值的大小关系,也可以用于比较字符串按照字典序的大小关系。

3. 逻辑运算符

    与(and:当两个操作数都为True时,结果为True;否则为False。例如,True and False得到False

    或(or:只要有一个操作数为True,结果就为True。例如,True or False得到True

    非(not:对操作数取反,not True得到Falsenot False得到True

四、整除(Integer Division (//))

        整除运算符//用于计算两个数相除并向下取整得到整数结果。例如,7 // 3得到2-7 // 3得到-3。整除在处理需要得到整数部分结果的场景中非常有用,比如计算将一定数量的物品平均分配到若干个容器中时,每个容器能得到的物品数量。与普通除法(/)不同,//操作更关注整数部分的结果,并且在处理负数时遵循向下取整的规则。

五、模运算或余数运算符(%

        模运算(%)用于计算两个数相除的余数。例如,7 % 3得到110 % 2得到0。在很多实际应用中都非常有用,比如判断一个数是否能被另一个数整除(余数为 0 时表示能整除),或者在循环队列、哈希表等数据结构中确定索引位置等场景。例如,在一个长度为n的循环队列中,如果当前位置为pos,要向前移动m个位置,可以通过(pos + m) % n来计算新的位置。

六、类型影响语义(Types Affect Semantics)

        在 Python 中,数据类型对操作的语义有着重要的影响。

        数值类型:不同的数值类型之间进行操作时,可能会发生类型转换。例如,整数和浮点数进行算术运算时,整数会自动转换为浮点数,然后进行计算。这确保了计算结果的准确性和一致性。

        序列类型:对于列表、元组等序列类型,虽然它们有一些相似的操作(如索引、切片),但由于列表是可变的而元组是不可变的,在对它们进行修改操作时语义完全不同。对列表可以使用诸如appendpop等方法来改变列表的内容,但这些操作在元组上是不允许的。

        布尔类型与其他类型:布尔类型在逻辑运算中的语义是明确的,但当与其他类型进行操作时,也会遵循一定的规则。例如,在条件判断中,很多数据类型都可以被转换为布尔值,非零数值、非空字符串、非空列表等都被视为True,而0""[]等被视为False

七、运算符优先级(Operator Order)

        Python 中的运算符有明确的优先级顺序。当一个表达式中包含多个不同类型的运算符时,按照优先级顺序进行计算。

        括号优先级最高:可以使用括号来改变运算顺序,括号内的表达式先进行计算。例如,(2 + 3) * 4,先计算2 + 3得到5,然后再乘以4得到20

        算术运算符优先级:先乘除后加减。例如,2 + 3 * 4,先计算3 * 4 = 12,然后再加上2得到14。其中,幂运算(**)优先级高于乘除运算。

        比较运算符优先级低于算术运算符:例如,2 + 3 > 4,先计算2 + 3 = 5,然后再比较5 > 4得到True

        逻辑运算符优先级not的优先级最高,然后是and,最后是or。例如,True or False and not True,先计算not True得到False,然后False and False得到False,最后True or False得到True

八、短路求值(Short - Circuit Evaluation)

短路求值是逻辑运算符andor的一个重要特性。

   and的短路求值:当使用and连接两个表达式时,如果第一个表达式为False,则不会再计算第二个表达式,因为整个表达式必然为False。例如,False and some_function(),这里some_function()不会被调用。

   or的短路求值:当使用or连接两个表达式时,如果第一个表达式为True,则不会再计算第二个表达式,因为整个表达式已经为True。例如,True or some_function()some_function()不会被调用。这种特性在编写条件判断和优化代码性能时非常有用,可以避免不必要的计算。

        Python 的数据类型和操作是其编程的基础,深入理解这些概念对于编写高效、准确的 Python 程序至关重要。

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

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

相关文章

前端框架对比和选择

​ 大家好&#xff0c;我是程序员小羊&#xff01; 前言&#xff1a; 前端框架选择是前端开发中的关键决策&#xff0c;因为它影响项目的开发效率、维护成本和可扩展性。当前&#xff0c;最流行的前端框架主要包括 React、Vue 和 Angular。它们各有优劣&#xff0c;适用于不同…

Redisson实现分布式锁(看门狗机制)

目录 可重入锁&#xff1a; 锁重试和看门狗机制&#xff1a; 主从一致性&#xff1a; 首先引入依赖&#xff0c;配置好信息 3.使用Redisson的分布式锁 可重入锁&#xff1a; 可重入锁实现是通过redsi中的hash实现的&#xff0c;key依旧是业务名称加id&#xff0c;然后第一个…

功能测试干了三年,快要废了。。。

8年前刚进入到IT行业&#xff0c;到现在学习软件测试的人越来越多&#xff0c;所以在这我想结合自己的一些看法给大家提一些建议。 最近聊到软件测试的行业内卷&#xff0c;越来越多的转行和大学生进入测试行业&#xff0c;导致软件测试已经饱和了&#xff0c;想要获得更好的待…

QT开发:深入详解QtCore模块事件处理,一文学懂QT 事件循环与处理机制

Qt 是一个跨平台的 C 应用程序框架&#xff0c;QtCore 模块提供了核心的非 GUI 功能。事件处理是 Qt 应用程序的重要组成部分。Qt 的事件处理机制包括事件循环和事件处理&#xff0c;它们共同确保应用程序能够响应用户输入、定时器事件和其他事件。 1. 事件循环&#xff08;Ev…

LabVIEW机动车动态制动性能校准系统

机动车动态制动性能测试系统通过高精度的硬件设备与LabVIEW软件的紧密配合&#xff0c;实现了对机动车制动性能的精确校准与评估。系统不仅提高了测试的精确性和效率&#xff0c;而且具备良好的用户交互界面&#xff0c;使得操作更加简便、直观。 项目背景 随着机动车辆数量的…

【数据结构】十大经典排序算法总结与分析

文章目录 前言1. 十大经典排序算法分类2. 相关概念3. 十大经典算法总结4. 补充内容4.1 比较排序和非比较排序的区别4.2 稳定的算法就真的稳定了吗&#xff1f;4.3 稳定的意义4.4 时间复杂度的补充4.5 空间复杂度补充 结语 前言 排序算法是《数据结构与算法》中最基本的算法之一…

波克城市 x NebulaGraph|高效数据血缘系统在游戏领域的构建实战

关于波克城市和作者‍‍ 波克城市&#xff0c;一家专注于研发精品休闲游戏的全球化公司&#xff0c;连续七年入选中国互联网综合实力百强&#xff0c;2023 年位列 17 位。波克城市旗下拥有《捕鱼达人》《猫咪公寓2》等精品休闲游戏&#xff0c;全球注册用户超 5 亿&#xff0c;…

量化交易backtrader实践(一)_数据获取篇(3)_爬取数据

这一节实践其实是在上一节之前进行的&#xff0c;背景原因是因为tushare.pro的积分不够高&#xff0c;当时还没有接触到使用akshare等其他接口&#xff0c;因此对于全股票列表用的是去网页上爬的方式获得的&#xff0c;也就借此机会&#xff0c;再复习了一遍爬虫的相关知识。 …

【Linux】从内核认识信号

一、阻塞信号 1 .信号的一些其他相关概念 实际执行信号的处理动作称为信号递达(Delivery) 信号从产生到递达之间的状态,称为信号未决(Pending)。 进程可以选择阻塞 (Block )某个信号。 被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作. 注…

Element走马灯组件循环播放两个页面是方向不一致

摘要&#xff1a;使用Carousel 走马灯循环播放同一类型的图片、文字等内容&#xff0c;会在循环内容为两组是出现下图 [1]中的现象。本文记录下如何解决 之前项目遇到过一次这个问题&#xff0c;由于indicator-position 指示器不用显示&#xff0c;则判断内容长度为2时&#xf…

SpringBoot2:web开发常用功能实现及原理解析-上传与下载

文章目录 一、上传文件1、前端上传文件给Java接口2、Java接口上传文件给Java接口 二、下载文件1、前端调用Java接口下载文件2、Java接口下载网络文件到本地3、前端调用Java接口下载网络文件 一、上传文件 1、前端上传文件给Java接口 Controller接口 此接口支持上传单个文件和…

干货:分享6款ai论文写作助手,一键生成原创论文(步骤+工具)

写一篇论文是一个复杂的过程&#xff0c;涉及多个步骤&#xff0c;包括选题、研究、撰写、编辑和校对。AI可以在其中的一些步骤中提供帮助&#xff0c;但最终的论文还是需要人类作者的深入思考和创造性输入。以下是六款值得推荐的AI论文写作助手&#xff0c;其中特别推荐千笔-A…

IDEA 新版本设置菜单展开

IDEA 新版本设置菜单展开 使用了新版本的IDEA 新UI后&#xff0c;常用的file&#xff0c;edit&#xff0c;view&#xff0c;菜单隐藏了 在设置中搜索后show main menu in a separate toolbar中可以打开。 打开设置 搜索show main menu in a separate toolbar后勾上

keil调试变量值被篡改问题

今天遇到一个代码中变量值被篡改的问题&#xff0c;某个数组的第一个值运行一段时间之后变成了0&#xff0c;如图&#xff1a; 看现象基本可以断定是内存越界导致的&#xff0c;但是要如果定位是哪里内存越界呢? keil提供了两个工具 1、set access breakpoint at(设置访问断点…

TensorFlow深度学习框架改进K-means聚类、SOM自组织映射算法及上海招生政策影响分析研究...

全文链接&#xff1a;https://tecdat.cn/?p37652 分析师&#xff1a;Chen Zhang 在教育政策研究领域&#xff0c;准确评估政策对不同区域和学生群体的影响至关重要。2021 年上海市出台的《上海市初中学业水平考试实施办法》对招生政策进行了调整&#xff0c;其中名额分配综合…

通过C# 裁剪PDF页面

在处理PDF文档时&#xff0c;有时需要精确地裁剪页面以适应特定需求&#xff0c;比如去除广告、背景信息或者仅仅是为了简化文档内容。 本文将指导如何使用免费.NET控件通过C#实现裁剪PDF页面。 免费库 Free Spire.PDF for .NET 支持在 .NET (C#, VB.NET, ASP.NET, .NET Core)…

java数据结构----图

图的存储结构: 代码实现 public class Graph {// 标记顶点数目private int V;// 标记边数目private int E;// 邻接表private Queue<Integer>[] adj;public Graph(int v) {V v;this.E 0;this.adj new Queue[v];for (int i 0; i < adj.length; i) {adj[i] new Queu…

使用阿里OCR身份证识别

1、开通服务 免费试用 2、获取accesskay AccessKeyId和AccessKeySecret 要同时复制保存下来 因为后面好像看不AccessKeySecret了 3.Api 参考 https://help.aliyun.com/zh/ocr/developer-reference/api-ocr-api-2021-07-07-recognizeidcard?spma2c4g.11186623.0.0.7a9f4b1e5C…

PHP及Java等其他语言转Go时选择GoFly快速快速开发框架指南

概要 经过一年多的发展GoFly快速开发框架已被一千多家科技企业或开发者用于项目开发&#xff0c;他的简单易学得到其他语言转Go首选框架。且企业版的发展为GoFly社区提供资金&#xff0c;这使得GoFly快速框架得到良好的发展&#xff0c;GoFly技术团队加大投入反哺科技企业和开…

红黑树的插入(NGINX源码)

下载并查看NGINX源码 访问NGINX下载页面&#xff0c;找到所需版本 https://nginx.org/en/download.html 使用wget下载源码包&#xff0c;替换版本号为所需版本 wget http://nginx.org/download/nginx-1.24.0.tar.gz解压源码包 tar -xzvf nginx-1.24.0.tar.gz进入解压后的目…