【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) # 输出结果为3Python 通过 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深入学习】- 书籍推荐|数据结构和算法介绍|内建集合数据类型
🌈个人主页: Aileen_0v0 🔥系列专栏:PYTHON学习系列专栏 💫"没有罗马,那就自己创造罗马~" 若把编写代码比作行军打仗,那么要想称霸沙场,不能仅靠手中的利刃,还需深谙兵法。Python是一把利刃&…...
物联网对接协议
物联网对接协议有很多种,以下是几种常见的物联网对接协议: Modbus:是一种强大的通信标准,广泛应用于工业自动化和SCADA系统,以便将仪表、传感器和执行器的信号发送回主控制器。 Modbus具有广泛的通信协议,…...
腾讯待办关停,导出的数据怎么恢复到手机上面?
相信有不少腾讯待办的用户都发现了其“业务关停通知”,确实如此,由于业务调整,腾讯待办将于2023年的12月20日全面停止运营并下架,这就表示以后我们无法继续使用它了。在腾讯待办关停之前,绝大多数用户需要做的就是及时…...
视频特效编辑软件 After Effects 2022 mac中文版介绍 (ae 2022)
After Effects 2022 mac是一款视频特效编辑软件,被称为AE,拥有强大的特效工具,旋转,用于2D和3D合成、动画制作和视觉特效等,效果创建电影级影片字幕、片头和过渡,是一款可以帮助您高效且精确地创建无数种引…...
innovus:解决报告复制时一行拆成两行的问题
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? innovus复制报告时一行的东西出现在两行上,解决只需要一条命令: set_table_style -no_frame_width...
MySQL数据脱敏(Data masking plugin functions)
对于企业而言,数据脱敏可以在数据共享或测试时用于保护敏感数据(如信用卡,社保卡,地址等)。通过对敏感数据进行脱敏处理,组织可以最大限度地降低数据泄露和未经授权访问的风险,同时仍能够使用真…...
Flutter 07 框架和三棵树(Widgets、Elements和RenderObjects)
一、Flutter框架的整体结构: Flutter是Google推出并开源的跨平台开发框架,主打跨平台、高保真、高性能。开发者可以通过Dart语 言开发Flutter应用,一套代码同时运行在ios和Android平台。不仅如此,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转换成对象
请求接口是一个比较常见的需求,接口返回一般是一个json类型,需要进行组装成对应的类,例 {"status_code": 200,"message": "success","data": {"cost": 286.6933,"bom_list": […...
uniapp使用vue3和ts开发小程序自定义tab栏,实现自定义凸出tabbar效果
要实现自定义的tabbar效果,可以使用自定义tab覆盖主tab来实现,当程序启动或者从后台显示在前台时隐藏自带的tab来实现。自定义一个tab组件,然后在里面实现自定义的逻辑。 组件中所使用的组件api可以看:Tabbar 底部导航栏 | uView…...
麒麟信安获批牵头成立国家关键领域信创行业产教融合共同体
日前,由麒麟信安、长沙理工大学、长沙职业技术学院联合牵头成立的国家关键领域信创行业产教融合共同体(以下简称:共同体)已获湖南省教育厅批准,并推荐至教育部。 目前共同体已吸引10余家联盟单位及全国20余家企业、高…...
好消息,微信消费者投诉工具升级,可以直接回复用户、处理投诉了。。。
大家好,我是小悟 兄弟们,阅读本文之前,建议先阅读【连夜干出来一个自动处理【微信消费者投诉管理系统】,支持多商户】。 为了使工具更好用,也为帮助商户更好地处理消费者投诉,提升用户满意度,…...
手动修复 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实例化具体的日志框架。其中,如果存在log4j依赖…...
机器人制作开源方案 | 管内检测维护机器人
一、作品简介 作者:李泽彬,李晋晟,杜张坤,禹馨雅 单位:运城学院 指导老师:薛晓峰 随着我国的社会主义市场经济的飞速发展和科学技术的革新,各行各业的发展越来越离不开信息化和网络化的…...
k8s存储卷
目录 1、emptyDir存储卷 2、hostPath存储卷 3、nfs共享存储卷 4、PVC 和 PV 4.1 PV和PVC之间的相互作用遵循这个生命周期: 4.2 PV的状态 4.3 一个PV从创建到销毁的具体流程如下: 静态PVC: 动态PVC 1、emptyDir存储卷 当Pod被分配给节…...
View 自定义 - 属性 xml
一、概念 在 xml 中为控件设置的属性。自定义属性名称如果使用系统已定义的,例如 textSize 会在编译时报错。 格式类型定义/使用 string 字符串 <attr name "myContent" format "color" /> android:myContent "Hello Word!&quo…...
2007-2022年全国各地级市金融机构网点数据
2007-2022年地级市金融机构网点数据 1、时间:2007-2022年 2、指标:行政区划代码、年份、城市名称、所属省份、银行网点数量、其中-政策性银行及国家开发银行营业网点占比、其中-商业银行营业网点数量占比、其中-农村金融机构营业网点数量占比 3、范围…...
OpenAI开发者大会掀起风暴:GPT模型价格狂降50%,应用商店即将亮相,AI技术将引爆全球!
OpenAI首届开发者大会召开了! 关键信息: GPT-4升级版GPT-4 Turbo来了,上下文窗口达到128k,为GPT-4的4倍;OpenAI还降低了几乎所有模型的API使用价格,整体便宜了一半多;GPT-4系列的多模态能力向B…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

