Python快速入門文檔

零、學(xué)習(xí)資源總結(jié)

0.0 文檔

0.1 工具


解釋器/交互環(huán)境

解釋器
  • CPython:官方版本
  • IPython: Cpython
  • PyPy
  • JPython
交互環(huán)境

IDE

  • PyCharm: JetBrains出品,必屬精品,寫Python項(xiàng)目必備
  • Visual Studio: 在最新的VS版本都加入了Python的支持
    其他沒有用過

編輯器

與IDE相比,編輯器比較輕便,適合簡(jiǎn)易的腳本編寫。
以下幾個(gè)常用編輯器都對(duì)Python的支持,部分加上插件后效率更高,可以和IDE媲美,在這里不再對(duì)比誰優(yōu)誰劣

  • Sublime Text
  • Visual Studio Code
  • Atom
  • Vim/Emacs

包管理/環(huán)境

  • Pip: 默認(rèn)Python包管理工具,必備
  • 包管理環(huán)境工具:
    • Virtualenv: 一個(gè)Python的包管理模塊,方便各項(xiàng)目的獨(dú)立管理
    • VirtualenvWrapper: Virtualenv的升級(jí)版,方便操作
  • 獨(dú)立的環(huán)境:完整獨(dú)立的一個(gè)環(huán)境,已配備了很多數(shù)據(jù)計(jì)算的lib, 常用于科學(xué)計(jì)算和分析

0.2 教程

0.3 書籍

略,不推薦

0.4 其他資源

0.5 代碼規(guī)范

一、入門學(xué)習(xí)

Python簡(jiǎn)介

  • 歷史、發(fā)展及現(xiàn)狀

    • “龜叔”Guido von Rossum發(fā)明于1989年
    • 通過社區(qū)完善功能與標(biāo)準(zhǔn),Python開發(fā)者將不同領(lǐng)域的優(yōu)點(diǎn)帶給Python
    • 2.0開始從maillist轉(zhuǎn)為完全開源的開發(fā)模式,獲得更加高速的發(fā)展
    • 如今,Python的框架已經(jīng)確立。
      • Python語言以對(duì)象為核心組織代碼(Everything is object)
      • 支持多種編程范式(multi-paradigm)
      • 采用動(dòng)態(tài)類型(dynamic typing)
      • 自動(dòng)進(jìn)行內(nèi)存回收(garbage collection)
      • Python支持解釋運(yùn)行(interpret),并能調(diào)用C庫進(jìn)行拓展
      • Python有強(qiáng)大的標(biāo)準(zhǔn)庫 (battery included)
      • 有豐富的第三方包,如Django, web.py, wxpython, numpy, matplotlib,PIL,將Python升級(jí)成了物種豐富的熱帶雨林。
    • TIOBE語言排行第八,Google的第三大開發(fā)語言
  • 特性/優(yōu)點(diǎn)

    • 提供完善的基礎(chǔ)代碼庫,覆蓋范圍廣,方便直接使用現(xiàn)成資源
    • 有大量第三方庫,且個(gè)人的代碼經(jīng)過封裝也可作為第三方庫調(diào)用
  • 缺點(diǎn)

    • 運(yùn)行速度慢;由于是解釋型語言,代碼執(zhí)行時(shí)逐行翻譯成機(jī)器碼,翻譯過程十分耗時(shí)
    • 代碼不能加密;發(fā)布Python程序,就是公開源代碼

測(cè)試為什么選擇Python?

自動(dòng)化需要腳本語言

對(duì)于大多數(shù)從測(cè)試崗位而言,測(cè)試當(dāng)中有許許多多重復(fù)而繁瑣的操作,如測(cè)試內(nèi)容本身:準(zhǔn)備大量高門檻測(cè)試數(shù)據(jù),基礎(chǔ)核心功能回歸,性能測(cè)試,穩(wěn)定性測(cè)試等;還有測(cè)試管理方面:測(cè)試用例的管理等等。 這些操作如果依靠人工去完成,可謂是費(fèi)時(shí)費(fèi)力,而且稍不留神就可能有出錯(cuò)的可能,因此通過一套標(biāo)準(zhǔn)的自動(dòng)化測(cè)試流程來完成,是測(cè)試的最好選擇,而實(shí)現(xiàn)這一套流程,在大多數(shù)的時(shí)候,依靠的就是腳本語言。

腳本語言有多種多樣,Shell, Ruby, Perl, Python等,這些腳本語言各具特點(diǎn),如系統(tǒng)本身提供的命令行,即Shell語言(Windows上是Bash批處理),能通過簡(jiǎn)單的邏輯指令、運(yùn)算操作及管道操作來完成稍微復(fù)雜的系統(tǒng)任務(wù)。舉個(gè)例子,最初的垃圾清理軟件,就是通過搜索系統(tǒng)當(dāng)中以".tmp"等后綴的文件來進(jìn)行刪除來完成清楚系統(tǒng)垃圾。

Python的特性

那么Python在當(dāng)中,對(duì)于測(cè)試來說,優(yōu)勢(shì)在哪? 通過一段時(shí)間的學(xué)習(xí)以及了解,簡(jiǎn)單總結(jié)如下:

膠水性

膠水性(glue),是Python的最大特征,因?yàn)槌擞糜跍y(cè)試腳本外,Python的社區(qū)當(dāng)中擁有眾多的庫支持,如科學(xué)計(jì)算的Numpy, 機(jī)器學(xué)習(xí)的ScikitLearn,以及眾多的后端開發(fā)框架,就連OpenCV也將Python作為其為數(shù)不多的上層接口語言等等,因而它的功能是非常豐富的,對(duì)于需要快速開發(fā)出軟件的雛形或者驗(yàn)證算法的可行性,Python可謂是哆啦A夢(mèng)的百寶袋。
在測(cè)試這塊,Python有著自帶的單元測(cè)試模塊unittest和記錄模塊logging,簡(jiǎn)化了測(cè)試開發(fā)的時(shí)間。同時(shí)眾多測(cè)試框架,如Appium和selenium支持Python,可謂對(duì)Python是極其友好。

簡(jiǎn)潔、優(yōu)雅

Python在定位上是簡(jiǎn)潔而優(yōu)雅的。對(duì)于測(cè)試腳本而言,腳本的通用性是比較弱的,每次完成特定任務(wù)就需要有一個(gè)新的腳本,亦或者腳本需要隨著進(jìn)度開發(fā)而不斷調(diào)整,那么除了需要對(duì)于模塊的封裝,簡(jiǎn)潔而易讀的語句將是測(cè)試開發(fā)的福音。

除此之外,每每需要對(duì)腳本進(jìn)行修改,如果任務(wù)復(fù)雜,在眾多語句當(dāng)中尋找需要修改的部分必定是苦不堪言的。更進(jìn)一步,如果前人的代碼還沒有注釋,那么估計(jì)想要調(diào)整對(duì)還真的不是那么容易。

尤其是近年來,"Code is comment"的口號(hào)不斷,易讀的代碼就是最好的注釋,而Python的語句通常能夠完成其他語言多倍的任務(wù),這樣的優(yōu)勢(shì)使它在所有高級(jí)語言里面顯得更加高級(jí)。

易上手和學(xué)習(xí)

在許許多多編程語言中,Python在國(guó)外早已成為零基礎(chǔ)的菜鳥的入門語言,可見其易入手的程度。

首先它作為一門解釋型語言,使得它擁有動(dòng)態(tài)的數(shù)據(jù)類型,這對(duì)許多剛開始接觸編程的人來說是非常友好的,不需要考慮數(shù)據(jù)類型后面的內(nèi)存管理,更不用擔(dān)心去理解C/C++語言當(dāng)中指針的使用。其次,豐富的數(shù)據(jù)結(jié)構(gòu)帶來的優(yōu)勢(shì)使得它在處理數(shù)據(jù)和文本能力優(yōu)于C/C++或者是Java等語言,如list和dict,極大地簡(jiǎn)化了對(duì)數(shù)據(jù)的存儲(chǔ)和使用。最后,它的學(xué)習(xí)曲線在眾多語言當(dāng)中應(yīng)該是比較平緩的,每每接觸新的語法特性,都會(huì)感覺是那么自然,讓人覺得就是自然語言一般。

如何快速入門Python

在我讀大學(xué)的時(shí)候,首先接觸的編程語言是C和C++,當(dāng)時(shí)學(xué)校會(huì)把這門語言的每個(gè)部分進(jìn)行拆解,如分成輸入輸出部分,數(shù)據(jù)類型,if-else和for循環(huán)等等,而在我接觸另一門語言Java或者是JS時(shí),很欣慰地發(fā)現(xiàn)它和C++竟是如此相似,幾乎就可以上手即用的感覺,給我留下深刻印象。

而如今,在面對(duì)不同任務(wù)時(shí),往往需要快速學(xué)習(xí)一門語言。而這應(yīng)該是現(xiàn)在每一個(gè)程序員的必備能力,那么回到我們的話題,究竟如何能夠快速入門Python呢?

最近,有個(gè)朋友給我轉(zhuǎn)發(fā)了一篇文章,《如何掌握所有的程序語言》,是之前微軟大神王垠寫的。我讀了之后,恍然大悟,快速入門一門語言的關(guān)鍵,就是學(xué)習(xí)理解這門語言的語言特性。

在文章中,解釋了什么是語言特性,在這舉一些例子,如變量定義、算術(shù)運(yùn)算、for 循環(huán)語句,while 循環(huán)語句、函數(shù)定義,函數(shù)調(diào)用、遞歸、面向?qū)ο?、垃圾回收、指針?biāo)阈g(shù)、goto 語句等等,它幾乎就是這個(gè)語言的一個(gè)配置,而當(dāng)中有一部分是基本配置,這是我們能夠用這門語言的關(guān)鍵,而能夠熟練運(yùn)用這門語言,或者說是擅長(zhǎng)使用,則需要我們花時(shí)間去學(xué)習(xí)這門語言當(dāng)中的更加高級(jí)復(fù)雜的配置。

舉個(gè)例子,C語言在過去一直被認(rèn)作是面向過程的語言,它的執(zhí)行就是按著語句的編排順序來完成。而它的繼任者C++則是多了面向?qū)ο蟮奶匦裕?而近年來,C++則是不斷吸收其他語言的特性,如加入了Lambda函數(shù)、實(shí)質(zhì)就是像Python一樣的函數(shù)式編程,以及支持auto類型,也是學(xué)習(xí)如Python一類語言的動(dòng)態(tài)類型,只不過它們?cè)趯?shí)現(xiàn)的方式不同。

所以基本來看,要快速入門Python,我們只需要根據(jù)我們的需要,去掌握基本的語言特性,如數(shù)據(jù)類型定義、if-else語句、for,while循環(huán)和簡(jiǎn)單的輸入輸出即可。而如果需要完成測(cè)試任務(wù),需要接觸到更多的高級(jí)配置,如os模塊,文件讀寫,以及更多的單元測(cè)試和記錄Log的模塊。

最后,要靈活運(yùn)用還是少不了代碼練手,通過寫幾個(gè)小項(xiàng)目或者完成某些特定的任務(wù),能夠讓人快速熟悉Python里面的特性。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容