400-616-5551

您所在位置: 首页> 学习课程> Python培训 | 怎样做才能让python技术突飞猛进

Python培训 | 怎样做才能让python技术突飞猛进

发布百知教育 来源:学习课程 2019-11-18

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


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

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

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

1

刷题案例


先来看看这道题,原题地址


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


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



Python培训


案例分析


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

首先,很多朋友会发现在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个字符传输给这个空列表。为什么会报错呢?看看下面的代码就知道了:


最终代码

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







上一篇:python爬虫入门实战,爬取app内的数据

下一篇:应届生去公司找个Java程序员的职位需要什么技能?

相关推荐

www.baizhiedu.com

有位老师想和您聊一聊

关闭

立即申请