当前位置: 首页 > news >正文

【Python深入学习】- 书籍推荐|数据结构和算法介绍|内建集合数据类型

 🌈个人主页: Aileen_0v0
🔥系列专栏:PYTHON学习系列专栏
💫"没有罗马,那就自己创造罗马~"

若把编写代码比作行军打仗,那么要想称霸沙场,不能仅靠手中的利刃,还需深谙兵法。Python是一把利刃,数据结构与算法则是兵法。只有熟读兵法,才能使利刃所向披靡,今天我想跟大家分享我的读书心得---<<Python数据结构与算法分析>>

为什么选择这本书 

1.原因

学校没有教材,当时觉得单纯听课和看视频特别吃力,作为一名热爱学习,追求真理的大学生,在老师和朋友的推荐下,选择了这本书.

正如书中所言:"只有洞彻数据结构与算法,才能真正精通Python".作为一名精益求精的博主,我通过阅读前部分的内容发现这本书,特别适合小白以及大神进行学习和复盘,内容精炼简洁,非常容易理解.我想正是因为这本书妙不可言,所以它才会被华盛顿大学、北京大学等多家高校采用.

2.想法

从今天起,为了回馈粉丝对我的支持,我将会把这本书的所有内容吃透并且内化,与大家进行每日的阅读和学习分享

什么是算法

1.算法概念

计算机科学的研究对象是问题、解决问题的过程,以及通过该过程得到的解决方案。给定一
个问题,计算机科学家的目标是 开发一个能够逐步解决该问题的算法 。算法是具有有限步骤的过程,依照这个过程便能解决问题。因此, 算法就是解决方案。

为何学习数据结构及抽象数据类型

1.过程抽象和数据抽象区别

过程抽象 将功能的实现细节隐藏 起来,从而 使用户能从更高的视角来看待功能。
数据抽象 的基本思想与此类似。
抽象数据类型(有时简称为ADT) 从逻辑上描述了如何看待数据及其对应运算而无须考虑具体实现。这意味着我们仅需要关心数据代表了什么,而可以忽略它们的构建方式。
通过这样的抽象,我们 对数据进行了一层 封装 ,其 基本思想是封装具体的实现细节,使它们对用户不可见, 这被称为 信息隐藏。

2.抽象数据类型原理

下图展示了 抽象数据类型及其原理 。用户 通过利用抽象数据类型提供的操作来与接口交互。
抽象数据类型是与用户交互的外壳。真正的实现则隐藏在内部。用户并不需要关心各种实现细节。

抽象数据类型的实现 常被称为 数据结构

PYTHON基础

1.通过类去学习抽象数据类型的原因

Python 支持面向对象编程范式。这意味着 Python 认为数据是问题解决过程中的关键点。在Python 以及其他所有面向对象编程语言中, 都是对数据的构成(状态)以及数据能做什么(行为)的描述。由于类的使用者只能看到数据项的状态和行为,因此 类与抽象数据类 型是相似的。在面向对象编程范式中,数据项被称作对象。一个对象就是类的一个实例。

2.复习python基础知识点

运算符// 。注意,当两个整数相除时,其结果是一个浮点数,而整除运算符截去小数部分,只返回商的整数部分。
a = 10
b = 3
c = a // b
print(c)  # 输出结果为3
Python 通过 bool 类实现对表达真值非常有用的布尔数据类型。布尔对象可能的状态值是
True 或者 False 布尔运算符有and、or以及not。
当一个名字第一次出现在赋值语句的左边部分时,会创建对应的 Python 变量。赋值语句将
名字与值关联起来。 变量存的是指向数据的引用,而不是数据本身。 来看看下面的代码。
theSum = 0
# 0
theSum = theSum + 1
print(theSum)
# 1
theSum = True
print(theSum )
# True 
赋值语句 theSum = 0 创建变量theSum ,并且 令其保存指向数据对象0的引用 (如图下图所示)。Python 会先计算赋值运算符右边的表达式,然后将指向该结果数据对象的引用赋给左边的变量名。
赋值语句改变了变量的引用 ,这体现了 Python的动态特性。
变量指向数据对象的引用
赋值语句改变变量的引用

内建集合数据类型

1.下期预告

除了数值类和布尔类, Python 还有众多强大的 內建集合类 列表、字符串 以及 元组 是概念上
非常相似的 有序集合 ,但是只有理解它们的差别,才能正确运用。 集(set)和字典 无序集合。

 总结

今天,我们了解了关于算法和抽象数据结构的概念,以及关于python的一些基础知识点,后面我会继续续写我和这本书的故事,希望大家多多支持,你的鼓励是我继续不断前行的动力!

相关文章:

【Python深入学习】- 书籍推荐|数据结构和算法介绍|内建集合数据类型

&#x1f308;个人主页: Aileen_0v0 &#x1f525;系列专栏:PYTHON学习系列专栏 &#x1f4ab;"没有罗马,那就自己创造罗马~" 若把编写代码比作行军打仗&#xff0c;那么要想称霸沙场&#xff0c;不能仅靠手中的利刃&#xff0c;还需深谙兵法。Python是一把利刃&…...

物联网对接协议

物联网对接协议有很多种&#xff0c;以下是几种常见的物联网对接协议&#xff1a; Modbus&#xff1a;是一种强大的通信标准&#xff0c;广泛应用于工业自动化和SCADA系统&#xff0c;以便将仪表、传感器和执行器的信号发送回主控制器。 Modbus具有广泛的通信协议&#xff0c;…...

腾讯待办关停,导出的数据怎么恢复到手机上面?

相信有不少腾讯待办的用户都发现了其“业务关停通知”&#xff0c;确实如此&#xff0c;由于业务调整&#xff0c;腾讯待办将于2023年的12月20日全面停止运营并下架&#xff0c;这就表示以后我们无法继续使用它了。在腾讯待办关停之前&#xff0c;绝大多数用户需要做的就是及时…...

视频特效编辑软件 After Effects 2022 mac中文版介绍 (ae 2022)

After Effects 2022 mac是一款视频特效编辑软件&#xff0c;被称为AE&#xff0c;拥有强大的特效工具&#xff0c;旋转&#xff0c;用于2D和3D合成、动画制作和视觉特效等&#xff0c;效果创建电影级影片字幕、片头和过渡&#xff0c;是一款可以帮助您高效且精确地创建无数种引…...

innovus:解决报告复制时一行拆成两行的问题

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f; innovus复制报告时一行的东西出现在两行上&#xff0c;解决只需要一条命令: set_table_style -no_frame_width...

MySQL数据脱敏(Data masking plugin functions)

对于企业而言&#xff0c;数据脱敏可以在数据共享或测试时用于保护敏感数据&#xff08;如信用卡&#xff0c;社保卡&#xff0c;地址等&#xff09;。通过对敏感数据进行脱敏处理&#xff0c;组织可以最大限度地降低数据泄露和未经授权访问的风险&#xff0c;同时仍能够使用真…...

Flutter 07 框架和三棵树(Widgets、Elements和RenderObjects)

一、Flutter框架的整体结构&#xff1a; Flutter是Google推出并开源的跨平台开发框架&#xff0c;主打跨平台、高保真、高性能。开发者可以通过Dart语 言开发Flutter应用&#xff0c;一套代码同时运行在ios和Android平台。不仅如此&#xff0c;Flutter还支持Web、桌面、嵌 入应…...

EasyExcel 导出冻结指定行

导出的实体类 package org.jeecg.modules.eis.test;import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.*; import lombok.Getter; import lombok.Setter; import org.apache.poi.ss.usermodel.HorizontalAlignment;import…...

ke9案例三:页面提交文件,我服务器端接收

案例三:页面提交文件,我服务器端接收 ProcessFile.java 1value "/process-file" 2获取邮件消息的所有部分part--Collection<Part> partsrequest.getParts(); 3遍历每一个part 4之后可以打印头文件等String headerpart.getHeader("content-disposition&q…...

springboot调用第三方接口json转换成对象

请求接口是一个比较常见的需求&#xff0c;接口返回一般是一个json类型&#xff0c;需要进行组装成对应的类&#xff0c;例 {"status_code": 200,"message": "success","data": {"cost": 286.6933,"bom_list": […...

uniapp使用vue3和ts开发小程序自定义tab栏,实现自定义凸出tabbar效果

要实现自定义的tabbar效果&#xff0c;可以使用自定义tab覆盖主tab来实现&#xff0c;当程序启动或者从后台显示在前台时隐藏自带的tab来实现。自定义一个tab组件&#xff0c;然后在里面实现自定义的逻辑。 组件中所使用的组件api可以看&#xff1a;Tabbar 底部导航栏 | uView…...

麒麟信安获批牵头成立国家关键领域信创行业产教融合共同体

日前&#xff0c;由麒麟信安、长沙理工大学、长沙职业技术学院联合牵头成立的国家关键领域信创行业产教融合共同体&#xff08;以下简称&#xff1a;共同体&#xff09;已获湖南省教育厅批准&#xff0c;并推荐至教育部。 目前共同体已吸引10余家联盟单位及全国20余家企业、高…...

好消息,微信消费者投诉工具升级,可以直接回复用户、处理投诉了。。。

大家好&#xff0c;我是小悟 兄弟们&#xff0c;阅读本文之前&#xff0c;建议先阅读【连夜干出来一个自动处理【微信消费者投诉管理系统】&#xff0c;支持多商户】。 为了使工具更好用&#xff0c;也为帮助商户更好地处理消费者投诉&#xff0c;提升用户满意度&#xff0c;…...

手动修复 rabbitmq 报错 “Crash dump is being written to“

rabbitmq 报错: 2023-11-07 16:38:52.682 [error] emulator Error in process <0.368.0> on node rabbitrabbitmq-0.rabbitmq-discovery.openstack.svc.cluster.local with exit value: {shutdown,[{mnesia_loader,handle_exit,2,[{file,"mnesia_loader.erl"}…...

日志门面技术

1.JCL public abstract class LogFactory {public static Log getLog(Class clazz) throws LogConfigurationException {// 默认实现类为LogFactoryImplreturn getFactory().getInstance(clazz);} }利用LogFactoryImpl实例化具体的日志框架。其中&#xff0c;如果存在log4j依赖…...

机器人制作开源方案 | 管内检测维护机器人

一、作品简介 作者&#xff1a;李泽彬&#xff0c;李晋晟&#xff0c;杜张坤&#xff0c;禹馨雅 单位&#xff1a;运城学院 指导老师&#xff1a;薛晓峰 随着我国的社会主义市场经济的飞速发展和科学技术的革新&#xff0c;各行各业的发展越来越离不开信息化和网络化的…...

k8s存储卷

目录 1、emptyDir存储卷 2、hostPath存储卷 3、nfs共享存储卷 4、PVC 和 PV 4.1 PV和PVC之间的相互作用遵循这个生命周期&#xff1a; 4.2 PV的状态 4.3 一个PV从创建到销毁的具体流程如下&#xff1a; 静态PVC&#xff1a; 动态PVC 1、emptyDir存储卷 当Pod被分配给节…...

View 自定义 - 属性 xml

一、概念 在 xml 中为控件设置的属性。自定义属性名称如果使用系统已定义的&#xff0c;例如 textSize 会在编译时报错。 格式类型定义/使用 string 字符串 <attr name "myContent" format "color" /> android:myContent "Hello Word!&quo…...

2007-2022年全国各地级市金融机构网点数据

2007-2022年地级市金融机构网点数据 1、时间&#xff1a;2007-2022年 2、指标&#xff1a;行政区划代码、年份、城市名称、所属省份、银行网点数量、其中-政策性银行及国家开发银行营业网点占比、其中-商业银行营业网点数量占比、其中-农村金融机构营业网点数量占比 3、范围…...

OpenAI开发者大会掀起风暴:GPT模型价格狂降50%,应用商店即将亮相,AI技术将引爆全球!

OpenAI首届开发者大会召开了&#xff01; 关键信息&#xff1a; GPT-4升级版GPT-4 Turbo来了&#xff0c;上下文窗口达到128k&#xff0c;为GPT-4的4倍&#xff1b;OpenAI还降低了几乎所有模型的API使用价格&#xff0c;整体便宜了一半多&#xff1b;GPT-4系列的多模态能力向B…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机&#xff0c;点进去 点进去 查看URL&#xff0c;有 ?fileflag.php说明存在文件包含&#xff0c;原理是php://filter 协议 当它与包含函数结合时&#xff0c;php://filter流会被当作php文件执行。 用php://filter加编码&#xff0c;能让PHP把文件内容…...

第7篇:中间件全链路监控与 SQL 性能分析实践

7.1 章节导读 在构建数据库中间件的过程中&#xff0c;可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中&#xff0c;必须做到&#xff1a; &#x1f50d; 追踪每一条 SQL 的生命周期&#xff08;从入口到数据库执行&#xff09;&#…...

【堆垛策略】设计方法

堆垛策略的设计是积木堆叠系统的核心&#xff0c;直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法&#xff0c;涵盖基础规则、优化算法和容错机制&#xff1a; 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则&#xff1a; 大尺寸/重量积木在下&#xf…...

云安全与网络安全:核心区别与协同作用解析

在数字化转型的浪潮中&#xff0c;云安全与网络安全作为信息安全的两大支柱&#xff0c;常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异&#xff0c;并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全&#xff1a;聚焦于保…...

麒麟系统使用-进行.NET开发

文章目录 前言一、搭建dotnet环境1.获取相关资源2.配置dotnet 二、使用dotnet三、其他说明总结 前言 麒麟系统的内核是基于linux的&#xff0c;如果需要进行.NET开发&#xff0c;则需要安装特定的应用。由于NET Framework 是仅适用于 Windows 版本的 .NET&#xff0c;所以要进…...