Python刷题之路,怎样做才能让技术突飞猛进

ArcGIS中利用DEM数据生成地形图既视感的等高线;利用掩膜进行等高线注记;DEM的可视化表达总结 文章目录前言一、效果图展示二、地形(DEM)可视化表达1.一维可视化2.二维可视化2.三维可视化二、ArcGIS中利用DEM数据制作等高线2.三维可视化2.三维可视化2.三维可视化2.三维可视化二、ArcGIS中利用DEM数据制作等高线2.三维可视化2.三维可视化2.三维可视化总结 前言 最近老师布置作业:DEM的可视化表达。想做一个等高线地形图那样、看起来高级一点的等高线,可是我看网上大多数教程都只展示了【等值线】工具,做出来效果都一般。我自认为自己做出来的效果还可以,把步骤分享给大家。 一、 阅读详情

1

比你优秀的人比你还努力

这个世界最可悲的就是 , 比你优秀的人比你还努力

偶然的机会,通过Python认识了一位华为的文职工作人员。起初只是问我,Python初学者看什么书能快速入门。而两个月过后,她已经开始每天在Leecode上刷题了。虽然有时半夜微信收到她刷题刷到崩溃的消息,或者针对部分Python语法的疑问,但作为一位文职大厂的优秀员工,她却比很多本该靠着代码吃饭的人更为努力。

今天这篇文章,就写给那些希望学习Python,但在刷题路上迷茫或者找不到方向的朋友们。文章仅代表个人观点,不喜勿喷。

1

Leecode刷题

起初学习python,我就是秉承着什么好玩学什么的想法,东一榔头西一棒子的跳着模块学习。看着很多方面都有所涉及,但遇到正儿八经的开发代码时,就歇菜了。基础的字符串、列表、字典操作,都经常出错。后来才意识到,为了学习模块而去学习,那只是高屋建瓴,底子差是硬伤。

一开始看到菜鸟教程上有Python100练,就在网上找了个打包好的全套练习题,PDF下载地址在我之前发的文章中:

Python面试的一些心得,与练习题分享

这套题型挺全面的,但是基础和算法的内容比较少,所以开始去Leecode刷题。今天就借着前几天这位朋友问的一道题,谈谈如何在刷题中终结知识,提高刷题效率吧。

1

刷题案例

在引用朋友的代码前,提前和她打了个招呼:

wechart

我真的是很认真去写文章的,第一句话只是寒暄而已,大家忽略就好,哈哈….

先来看看这道题,原题地址(https://leetcode-cn.com/problems/reverse-vowels-of-a-string/):

编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例 1:
输入: "hello"
输出: "holle"
示例 2:
输入: "leetcode"
输出: "leotcede"

有时候示例害死人,刚看这两个示例,你可能以为提供的字符串都是只有两个元音字母,然后我们找到它们,互换位置即可。其实仔细想想就该明白,字符串肯定是随机的。然后,我们通过朋友的解题代码,来一步步分析如何通过刷题,积累技术点,朋友代码如下:

朋友的代码

1

案例分析

让我们对这份代码进行仔细剖析

首先,很多朋友会发现在reverseVowels函数中,入参的定义与我们日常使用的不同(s:str) -> str
在Python中3.5,PEP 484 - Type Hints附加了一个含义:->用于指示函数返回的类型。类型提示与括号内的类型定义语法,都只是建议但不强制,所以很多教材与代码中,并未添加。大家知道即可….

首先,有一个明显的问题,在while的第一个if中存在一个continue,仔细看代码,这里的continue完全用不到…

我们看到代码定义了i、j两个列表的index值,用于从两边到中间依次遍历,最终进行替换。但还定义一个result的列表,用于在遍历过程中一次赋值。可这里,暴露出了一个python变量数值互换的小技巧。a,b =b,a

而代码中的else:if … 完全可以替换为elif…

下来看看代码报错的这一行,乍一看感觉这行代码应该没问题啊。创建了一个空列表,然后把string的第0个字符传输给这个空列表。为什么会报错呢?看看下面的代码就知道了:

 1a = [1,2,3]
 2b=[]
 3b[0] = a[0]
 4output:
 5Traceback (most recent call last):
 6  File "<input>", line 1, in <module>
 7IndexError: list assignment index out of range
 8
 9a = [1,2,3]
10b=[2]
11b[0] = a[0]
12b
13output:
14[1]

1

最终代码

整理过刚才的几个问题点,让我们最后修改后执行看看:

 1class Solution:
 2    def reverseVowels(self, s: str) -> str:
 3        vowels = list('aeiouAEIOU')
 4        list_s = list(s)
 5        i = 0
 6        j = len(s) - 1
 7        while i < j:
 8            if list_s[i] not in vowels:
 9                i += 1
10            elif list_s[j] not in vowels:
11                j -= 1
12            else:
13                list_s[i], list_s[j] = list_s[j], list_s[i]
14                i += 1
15                j -= 1
16        return ''.join(list_s)

如果大家在平时做题的时候,能针对每一步都仔细思考下,是否有优化空间,涉及到了那些知识点,那么才算是真正合格的刷题思路。刷题不是追求数量,而是看中是否在刷题过程中有所收获。

推荐阅读:
入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |
趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影

年度爆款文案

点阅读原文,领廖雪峰大数据视频资料!
Spring AI 实战:5 分钟搭建你的第一个 AI 应用(含完整代码) 能力关键 API适用场景基础对话简单问答、文本生成流式输出实时打字机效果@Bean模型需要调用外部工具结构化输出需要返回 Java 对象多轮对话聊天机器人场景Spring AI 让 Java 开发者可以用最熟悉的方式(Spring Boot + Maven)进入 AI 应用开发领域,不用学新语言,不用换框架,这是它最大的优势。但目前为止,我们的 AI 应用只能回答"它脑子里已有的知识"。如果让它读懂你自己的技术文档、公司内部知识库呢?这就是下一篇文章的主题——RAG(检索增强生成)实战。 阅读详情

相关推荐

VS2017配置PCL1.9.1 for win10(超详细)

准备工作 VS2017 自行下载 PCL1.9.1 点击链接跳转Github下载,根据自己的环境选择 win64或win32,作者下载的是:PCL-1.9.1-AllInOne-msvc2017-win64.exepcl-1.9.1-pdb-msvc2017-win64.zip 安装PCL 双击点开PCL-1.9.1-AllInOne-msvc2017-win64.exe,选择Add PCL to the system PATH for all users, 更改安装路径,E:\Progra

malapoa的博客 1146

python刷题_11.学习Python,刷题才能让你感受到快(差)乐(距)!

猜数字游戏可用一个简单的while循环来实现。其中 随机数 的生成在第4篇介绍过,键盘输入在上一篇介绍过import randomresult = round(random.random()*100)while result != guess:guess = int(input())if guess>result:print('大了!')elif guess...

weixin_39622655的博客 336

从东南大学906被刷到调剂过程(内含个人感想)

介绍了自己在看到初试成绩,到后期复习以及调剂的全过程,当中也包含了自己的复试中的感想,希望大家理性看待。

Philo的博客 2856

Python常用小技巧,提高刷题效率(适用于蓝桥杯python组)

1. 掌握python标准库及小技巧 python课程学习到面向对象,就可以刷题参加算法比赛了 对于蓝桥杯不支持第三方库,但学会python标准库,将事半功倍; 2. 常用的列表函数 list1.append(x) : 将x添加到列表末尾 list1.sort(): 对列表元素排序 list1.reverse() : 将列表元素逆序 list1.index(x) : 返回第一次出现元素x的索引值 li

A496608119的博客 4246

从光耦隔离到稳定驱动:信捷伺服与STM32的硬件设计陷阱与救赎

本文深入探讨了信捷伺服驱动器与STM32微控制器配合时的硬件设计关键问题,包括光耦隔离电路选型、电源电压选择、拨码开关设置等核心环节。针对伺服驱动器的稳定驱动需求,提供了从电路设计到抗干扰策略的完整解决方案,帮助工程师规避常见陷阱,提升工业控制系统的可靠性。

gold8的专栏 312

手把手教你用Arduino和开源电路DIY一个手机连接的电化学传感器(附GitHub源码)

本文详细介绍了如何利用Arduino和开源电路DIY一个手机连接的电化学传感器,成本不到300元即可复现价值数千元的专业设备。从硬件选型、电路搭建到固件开发和手机应用实现,手把手教你完成整个项目,特别适合科研人员、环境监测爱好者和理工科学生。附GitHub源码,方便快速上手和扩展功能。

weixin_42561040的博客 336

Python学到什么程度可以面试工作?

找工作就像找女朋友一样,是一个匹配的过程。 找女朋友:确定目标-互相了解-展现自己-在一起/追不上。 求职:确定求职目标 -了解雇主期望 - 优化求职物料 - 面试谈判。 因此,了解企业需求是基础**。** 企业对Python工程师的需求主要分为后端开发、算法&大数据&爬虫类、Python前端开发/全栈开发。越早决定职业发展方向越好,这样你可以更有针对性地准备面试。 以Python...

九章算法的博客 6871

电池保护板为什么采用NTC热敏电阻而不是PTC热敏电阻?

R25=10K,即环境温度25°时,阻值是10K),温度变化1°C,阻值相应地明显变化,温度响应很灵敏,也就能精准地反向换算出阻值对应的温度。另外,还有功率型NTC热敏电阻,其主要用在开关电源设计中,串联在市电输入上,抑制浪涌电流。电池保护板上的NTC热敏电阻(NTC一端接地,另一端接电池充电控制IC管脚),在电池温度上升时,NTC热敏电阻温度也会随之上升,从而NTC电阻值会下降,因此电池充电控制IC用ADC检测的电压值就降低,当检测到的电压值达到下限阈值时,电池充电控制IC就会停止对电池的充电或放电。

电子绿洲的博客 5627

python基础刷题_Python刷题提升——第一季(题目篇)

博客写了一年多了,也积攒了100+文章分享感谢大家陪我一起学习每次在评论区看到你们的疑问和鼓励,我甚是欣慰在部分文章最后留有一些问题,大家都会踊跃给出自己的答案除了之前的Python数据结构算法连载我这边还会收集一些不错的Python问题,整理好给大家作为刷题提升Python编程能力的题目当然,我这边也会给出一套我写的代码参考答案,真的只是参考哦当然,也希望你给出更加优化的答案,或者能指出我代码的...

weixin_39592789的博客 286

virtuoso--DFF

27-实验课-std_cell2

qq_61440044的博客 2005

LDRA Testbed(TBrun)软件单元测试_操作指南

通过前面的几篇文章,使用Testbed进行软件静态分析的内容已经基本讲解完毕。从这篇文章开始,将继续讲解如何使用TBrun进行软件单元测试、软件集成测试。

文章主要涉及嵌入式软件开发、测试、项目管理等,欢迎交流,共同进步。 7771

leetcode 345. 反转字符串中的元音字母(python)

题目链接 题目描述: 编写一个函数,以字符串作为输入,反转该字符串中的元音字母。 示例 1: 输入: “hello” 输出: “holle” 示例 2: 输入: “leetcode” 输出: “leotcede” 说明: 元音字母不包含字母"y"。 class Solution: def reverseVowels(self, s: str) -> str: begi...

weixin_44740082的博客 254

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

你的编程能力从什么时候开始突飞猛进?

大家好,我是一行最近在知乎看到一个问题 “你的编程能力从什么时候开始突飞猛进?”仔细思考了一下,我那编程能力突飞猛进的时候,腰都快给我叉弯了,那时不要太得意在一行我读研究生之前还不是计算机相关专业,而读研的时候误打误撞进了一个需要写代码的课题组虽然有些淡淡的畏惧,毕竟从生化环材去学代码,像是进入了另一个世界,不过也硬着头皮去上了我遇到的第一个项目是读懂一款程序的源码,这样以后在有需求的时候可以随意进行修改虽然看起来很简单,但是当时我连hello world是啥都不清楚,程序语言还是VB,只能按着资料收藏家的

一行玩python 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

我的编程能力从什么时候开始突飞猛进的?

有干货、更有故事,微信搜索【编程指北】关注这个不一样的程序员,等你来撩~ 知乎上有个提问: 你的编程能力从什么时候开发突飞猛进? 觉得挺有意思的,所以顺手回答了下,同时也发到我的博客上来,这篇文章纯碎是记流水账,也没什么干货。 大家就当看个故事~ 正文 啃完一本本书,做完一个个 lab,没有突飞猛进,一切都是量变最终累积成质变。 但是有那样一些时间节点,你会明显感觉到自己的编程能力确实有提高不少,能够编码实现更多的想法,接受新知识的速度也会加快,我想这是不是就是零散的知识点逐渐连成线、组成面呢? 不.

编程指北 1648

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

怎样使得自己的编程能力突飞猛进

怎样使得自己的编程能力突飞猛进学习一门新的编程语言尝试独立完成一个项目重温经典书籍认真研读源码使用Google进行搜索使用英文文档深入学习技术 学习一门新的编程语言 当熟练了Java之后,再去学习新的编程语言,比如Python,这个时候不仅能够很快的学习好Python,Java语言能力也在迅速提高 因为语言是相通的,当学习Python的时候,会带着和Java相比较的心去学,这个时候,不仅学习了P...

攻城狮Chova的博客 960

21张让你Python代码能力突飞猛进的速查表

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)

Python_cocola的博客 246

我的「编程能力」从什么时候开始突飞猛进的?

啃完一本本书,做完一个个 lab,没有突飞猛进,一切都是量变最终累积成质变。但是有那样一些时间节点,你会明显感觉到自己的编程能力确实有提高不少,能够编码实现更多的想法,接受新知识的速度也会加快,我想这是不是就是零散的知识点逐渐连成线、组成面呢?不过老实说,就编程能力上确实没有“突飞猛进”的感觉。我们都是普通的剧本,不可能像张无忌一样因跌落悬崖,意外获得《九阳神功》,从此突飞猛进、开挂,走向人生巅峰。

VN520的博客 284

python学完之后可以做什么,学完python可以做什么

人工智能和大数据的推动之下,Python已经成为了非常热门的编程语言,可以说Python和AI有着紧密关联,为什么Python会这么火?就业前景如何呢?小编为大家介绍一下吧。这份完整版的Python全套学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码【免费获取】

2401_84162687的博客 1377

迷茫,985大三,考研还是找工作?

【摘要】文章分享了一位985大三学生在考研与找工作间的迷茫,建议优先争取实习机会,通过海投面试积累经验,查漏补缺。实习能提前适应职场,增加简历亮点甚至转正机会。作者作为算法社群创始人,结合自身十年刷题经历,提出刷题的正反馈价值在于持续获得学习愉悦感。社群提供编程教学、算法集训、求职辅导等服务,鼓励学员通过实践提问提升技能。最后附上星球服务详情链接,强调实战经验对职业发展的重要性。(149字)

英雄哪里出来 2814

学会了Python之后,我的职业生涯突飞猛进

学会了Python之后,我的职业生涯突飞猛进 DT(Data Technology)时代,公司对于数据越来越重视,身为职场人,收集上万条表格数据做商业分析,裁剪上千张图片,发送数百封邮件…这些都是经常会遇到的场景。我一直期待能有个工具解放我,直到我遇到了Python。 Python的魅力 很多小伙伴入坑Python都是从爬虫开始的,在简单了解 HTTP 协议、网页基础知识和一些爬虫库之后,爬取一般...

weixin_37585004的博客 233
上一篇: 300 页图解网络.pdf (附下载)
下一篇: 沉入海底 2 年的微软数据中心浮出水面:故障率只有陆地上的 1/8,除了长点贝类和藻类完全没问题...
菜鸟学Python
博客等级 码龄9年 8061粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值