13161216443

您所在位置: 首頁> 學習課程> Python培訓 | 怎樣做才能讓python技術突飛猛進

Python培訓 | 怎樣做才能讓python技術突飛猛進

發布百知教育 來源:學習課程 2019-11-18

起初學習python,我就是秉承著什么好玩學什么的想法,東一榔頭西一棒子的跳著模塊學習??粗芏喾矫娑加兴婕?,但遇到正兒八經的開發代碼時,就歇菜了?;A的字符串、列表、字典操作,都經常出錯。后來才意識到,為了學習模塊而去學習,那只是高屋建瓴,底子差是硬傷。


一開始看到菜鳥教程上有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.akpsimsu.com

有位老師想和您聊一聊

關閉

立即申請