小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Python基礎(chǔ)入門及學(xué)習(xí)資源

 網(wǎng)海拾貝網(wǎng)絡(luò)豬 2017-09-18



Python和Pythonic


Python是一門計(jì)算機(jī)語言,簡單易學(xué),上手容易,深入有一定困難。為了逼格,還是給你們堆一些名詞吧:動(dòng)態(tài)語言、解釋型、網(wǎng)絡(luò)爬蟲、數(shù)據(jù)處理、機(jī)器學(xué)習(xí)、Web開發(fā)、等等等等。Python目前分為2.x和3.x兩個(gè)版本,與其它語言不一樣的是,它的這兩個(gè)版本是不兼容的,雖然會(huì)其中一個(gè)就容易上手另一個(gè),但是鑒于公司目前幾乎全是用Python2.7,建議同事們也可以從2.x版本開始,如果沒有歷史遺留問題,建議初學(xué)者直接上手Python3。


Pythonic指的是按照Python推薦的規(guī)范,干凈美觀、可讀性強(qiáng)的逼格滿滿到代碼風(fēng)格,比如多使用Python內(nèi)置的數(shù)據(jù)結(jié)構(gòu),不要重復(fù)造輪子。簡單來講,你可以在Python解釋環(huán)境里輸入import this了解一下Python之禪。Python的代碼風(fēng)格上,如果團(tuán)隊(duì)有自己的風(fēng)格則按照自己的風(fēng)格,否則,比較推薦的是PEP8或Google Code Style。關(guān)于PEP8規(guī)范,鏈接在這里(https://www./dev/peps/pep-0008/)。




開發(fā)環(huán)境搭建


在常見的*inx系統(tǒng)上,默認(rèn)都安裝了Python解釋器,你可以直接在終端輸入python進(jìn)入默認(rèn)的環(huán)境。在Windows系統(tǒng)上,你需要去Python官網(wǎng)下載Python的安裝包,安裝之后可以在“所有程序”中找到“IDLE”,也可以在cmd中通過輸入python進(jìn)入解釋器環(huán)境。


對(duì)于Python常用的IDE(集成開發(fā)環(huán)境),推薦使用PyCharm,如果土豪請(qǐng)購買正版,如果不是土豪又有情懷,請(qǐng)使用社區(qū)版(免費(fèi)),如果既不土豪又沒有情懷,就用盜版吧(不推薦)。


Python之所以非常流行,離不開它千千萬萬的第三方庫,你可以將第三方庫理解為我寫了一個(gè)牛X的功能,發(fā)布出來之后你可以直接使用。安裝第三方庫的話,推薦使用pip,在Ubuntu上,你可以通過apt-get install python-pip安裝。




hello, world.


常見情況下,Python代碼可以通過兩種形式運(yùn)行:一是直接在剛才所講的解釋環(huán)境下(輸入python命令后進(jìn)入的地方)一行一行的執(zhí)行,或者也可以保存到一個(gè).py的文件中,在終端輸入python 文件名來執(zhí)行。比如新建一個(gè)test.py,文件內(nèi)容為print 'hello, world.',在終端輸入python test.py,即可輸出hello, world.。



注意??:Python中沒有使用花括號(hào){}來表示代碼間的層級(jí)關(guān)系而是使用縮進(jìn),這樣的好處是在語法層面上限制了不好的代碼風(fēng)格,但是初學(xué)者容易混淆。




變量、基礎(chǔ)數(shù)據(jù)類型


變量


Python中變量不需要聲明,你可以通過直接賦值的方式使用變量:


a = 1

b = True

c = 1.0

a = 3+2j


在Python中,你可以在給一個(gè)變量賦值為一種類型之后重新為其賦值為新的類型(如上面代碼第1、4行)。


基礎(chǔ)數(shù)據(jù)類型


Python中的數(shù)字有:整型、長整型、浮點(diǎn)型、布爾型、復(fù)數(shù)。


  • 整形:int,常見的整數(shù)(正數(shù)/負(fù)數(shù)/0),通過sys.maxint即可查看當(dāng)前平臺(tái)上最大的整型的值。

  • 長整型:long,比整型最大的值還大或者比整型最小的值還小的整數(shù)。注意:Python中長整型沒有大小限制,你的內(nèi)存有多大,它就能表示多大。

  • 浮點(diǎn)型:float,即小數(shù)。

  • 布爾型:bool,常見形式為True, False,表示邏輯真和邏輯假,其實(shí)背后的實(shí)現(xiàn)是數(shù)字1和0.

  • 復(fù)數(shù):complex,Python是為數(shù)不多語法層面上支持復(fù)數(shù)的語言,表現(xiàn)為形如1+2j的形式??梢灾苯又С謨蓚€(gè)復(fù)數(shù)的運(yùn)算。


Python中的所有數(shù)據(jù)類型都是對(duì)象。你可以通過type()函數(shù)查看一個(gè)變量的類型。

Python中字符串有4種表現(xiàn)形式:單引號(hào)、雙引號(hào)、三引號(hào):


string1 = 'this is a str'

string2 = 'this is a str'

string3 = '''this is a str

這里還是string3的范圍'''

string4 = '''this is a str'''


其中,第3/4種字符串表現(xiàn)形式都是三引號(hào)引起來的。如果在字符串的引號(hào)之前加上一個(gè)u,則表示這是一個(gè)unicode字符串,如果加上r,則表示這是一個(gè)原始字符串 ,這兩種類型,對(duì)于初學(xué)者暫不討論。值得注意的是,Python中沒有C-Like語言中的字符類型。




運(yùn)算符、控制語句


運(yùn)算符


Python中沒有類似于C/C++/Java的自增自減運(yùn)算符,因?yàn)樵赑ython中,數(shù)字是一種不可變類型(immutable),對(duì)數(shù)字的操作都會(huì)產(chǎn)生新的對(duì)象而不是修改原來的對(duì)象。但是i = i + 1一樣可以寫為i += 1。

注意:Python2.5以后的除法為地板除,即5/2=2而不是5/2 = 2.5。

Python常見的邏輯運(yùn)算符為:


  • !=, <>:不等于,表示兩邊的值不相等,推薦使用前一種。1 != 2。

  • ==:等于,表示兩邊的值相等。2 == 2。

  • and:邏輯與,如果兩邊的值都為True則整個(gè)值為True,反之為False。1==1 and 2==2。

  • or:邏輯或,如果兩邊有一個(gè)值True則整個(gè)值為True,反之為False。1==2 or 2==2。

  • not:邏輯非,如果值為True,則結(jié)果為False。not 2==1。


控制語句


條件語句:

Python中的條件語句只有if-elif-else,沒有switch-case,但是有經(jīng)驗(yàn)的開發(fā)者通常使用map這一結(jié)構(gòu)來達(dá)到比switch-case更加優(yōu)雅,更加Pythonic的實(shí)現(xiàn),這個(gè)后續(xù)再說。


if 條件1:

    語句塊1

elif 條件2:

    語句塊2

else:

    語句塊3


elif類似于其它語言中的else if。


循環(huán)語句:

Python中有兩種方式表達(dá)循環(huán)語句:


while 循環(huán):


while 條件:

    語句塊


for循環(huán):


for 變量 in 集合:

    語句塊


值得注意的是Python中沒有C-Like語言里的for(int i=0; i<10;>




集合


Python中常見的集合類型有:list,tuple,set,dict。


list


list表達(dá)的是一列數(shù)據(jù)的集合,列表中的元素可以增加、刪除、查找等操作:


In [1]: l = ['this', 'is', 'a', 'list']  # 初始化一個(gè)list

 

In [2]: type(l)

Out[2]: list

 

In [3]: l.index('is')                     查找元素

Out[3]: 1

 

In [4]: l.append('new item')             新增元素

 

In [5]: l

Out[5]: ['this', 'is', 'a', 'list', 'new item']

In [6]: l.reverse()                       反轉(zhuǎn)列表

 

In [7]: l

Out[7]: ['new item', 'list', 'a', 'is', 'this']

 

In [8]: l.remove('is')                   # 刪除元素

 

In [9]: l

Out[9]: ['new item', 'list', 'a', 'this']


tuple


tuple類似于list,同樣表示一組數(shù)據(jù)的集合,不同的是,tuple是寫保護(hù)的,即:tuple不可以對(duì)其元素做任何修改操作(新增、刪除等):


In [1]: t = (1,2,3)    # 初始化

 

In [2]: t

Out[2]: (1, 2, 3)

 

In [3]: type(t)

Out[3]: tuple


set


set表示一個(gè)不重復(fù)元素的集合,值得注意的是:set是無序的。


In [1]: s = {'this', 'is', 'a', 'a', 'set'}  # 初始化

 

In [2]: s

Out[2]: {'a', 'is', 'set', 'this'}

 

In [3]: type(s)

Out[3]: set

 

In [4]: s.add('new item')               # 新增元素

 

In [5]: s

Out[5]: {'a', 'is', 'new item', 'set', 'this'}

 

In [6]: s.remove('a')                   刪除元素

 

In [7]: s

Out[7]: {'is', 'new item', 'set', 'this'}


dict


dict表示一組數(shù)據(jù)的對(duì)應(yīng)關(guān)系,與set一樣,dict是無序的(你可以通過collections中的OrderDict來達(dá)到有序)。同時(shí),對(duì)于初學(xué)者,dict與set的聲明方式容易混淆:


In [1]: d = {'a': 'A', 'b': 'B'}  # 初始化

 

In [2]: d

Out[2]: {'a': 'A', 'b': 'B'}

 

In [3]: d['a']  

Out[3]: 'A'

 

In [4]: d['c'] = 'C'            # 新增元素

 

In [5]: d

Out[5]: {'a': 'A', 'b': 'B', 'c': 'C'}

 

In [6]: del d['a']             刪除元素

 

In [7]: d

Out[7]: {'b': 'B', 'c': 'C'}


函數(shù)(初步)


在Python中聲明函數(shù)的方式如下:


def add(num1, num2):

    return num1 + num2


通其它語言一樣,你可以在函數(shù)中通過return返回值。不同的是,Python中函數(shù)可以有多個(gè)返回值,比如下面的函數(shù),返回了兩個(gè)數(shù)的和以及差:


def calc(n1, n2):

    return n1 + n2, n1 - n2

 

add, sub = calc(5, 1)

print add, sub  # 6 4


其實(shí)這里并不是真的返回了兩個(gè)值,而是將返回值組裝成一個(gè)tuple再返回。


學(xué)習(xí)資源


用Python編寫代碼一點(diǎn)都不難,事實(shí)上它一直被贊譽(yù)為最容易學(xué)的編程語言。如果你準(zhǔn)備學(xué)習(xí)web開發(fā), Python是一個(gè)不錯(cuò)的開始,甚至想做游戲的話,用Python來開發(fā)游戲的資源也有很多。這是快速學(xué)習(xí)這門語言的途徑之一。


許多程序員都把Python作為編程之旅的開始,然后是像PHP和Ruby這樣的語言。它也是2014年最熱門的web開發(fā)語言之一,并極力推薦學(xué)習(xí)。但是,Python應(yīng)該怎么學(xué)呢?應(yīng)該從哪里開始?


這里推薦的一些書和資源,剛開始學(xué)習(xí)的時(shí)候可能會(huì)特別令人沮喪,一旦你學(xué)完了基礎(chǔ),之后的東西對(duì)你來說就很自然了,你都不需要思考就知道要怎么做。


Python for Beginners



如果你的Python開發(fā)之旅有一段時(shí)間了,這門課程可能是一個(gè)很好的開始。Python for Beginners課程是由Alex Bowers講授的最全面的Python課程之一,這套網(wǎng)絡(luò)教程非常容易學(xué)習(xí)。是的,它需要付一定的費(fèi)用,但你是想單獨(dú)學(xué)習(xí),還是和其他30000名學(xué)生一起學(xué)?


報(bào)名本課程的好處是你將被授權(quán)訪問一個(gè)只有付費(fèi)會(huì)員的論壇, Alex老師自己就駐扎在那,并且很樂意盡可能地幫你解決Python的問題。我的意思是,在這個(gè)清單里任何的資源都是值得的,因?yàn)槟阃度肓艘恍┏杀绢~外收獲了與人溝通的感覺會(huì)超越一切。


你可以使用優(yōu)惠碼:CODECONDO——它會(huì)給你一個(gè)固定的75%的折扣,但激活只能在2014年9月3日之前——所以要快點(diǎn),您可以隨時(shí)購買的這個(gè)課程然后用于以后的學(xué)習(xí),不要把錢浪費(fèi)在這筆交易上!


譯者注:翻譯時(shí)距這篇原文的發(fā)布快兩年了,所以想購買這套課程的朋友還得是原價(jià)——$99


Learn Python The Hard Way (笨辦法學(xué)Python)



這本書絕對(duì)是學(xué)習(xí)Python最簡單的方法。你會(huì)被如此簡單的基礎(chǔ)學(xué)習(xí)感到震驚,真實(shí)地感受到自己的學(xué)習(xí)歷程,一步一步地獲取新的知識(shí)。我也感到它非常鼓勵(lì)學(xué)習(xí)者去嘗試并創(chuàng)造出自己的程序。


代碼可能會(huì)很少,但是它們肯定會(huì)有助于你更好的理解語言本身和語法。Python非常的流行,所以當(dāng)你遇到了問題時(shí),在類似Stack Exchange這樣的網(wǎng)站里有可能會(huì)找到答案,遇到問題需要解決的話盡管地Google吧。


你會(huì)學(xué)到如何去:


  • 在全平臺(tái)上安裝Python環(huán)境

  • 寫Python程序

  • 理解Python語法和文檔

  • 像程序員一樣思考

  • 還有更多的東西


本書的HTML在線版本是完全免費(fèi)的,大部分人使用的都是在線版。我希望你購買完整的書或者給予一些捐贈(zèng),畢竟作者花了很大的力氣來完成它。如果你感覺視頻更容易學(xué)習(xí)的話,它的高級(jí)版里就包含了視頻。


The Python Challenge



如果你的編程生涯中從沒做過這樣的挑戰(zhàn),這可能會(huì)有點(diǎn)難度。但是配和上面介紹的那本書的話也不是很難,你應(yīng)該嘗試一下。它有33個(gè)關(guān)卡(謎題),你可以用Python編程技巧解決。


幾百萬的人都在試著解決這個(gè),即使你不能完成所有的關(guān)卡,你也會(huì)將學(xué)到很多新的東西,尤其是批判性思維和發(fā)散思維。你的大腦會(huì)過熱,但這是在編程!


Learn Python Programming @ Codecademy


你可能看到許多“大?!背绦騿T罵這個(gè)網(wǎng)站,但那并不重要。我們想要做的是看看或者測試一門編程語言的基本語法是怎么執(zhí)行的,以及調(diào)用函數(shù)時(shí)做了些什么,除了簡單地輸出‘Hello World!’。


在這個(gè)Codecademy的課程中你將會(huì)學(xué)到如何使用文件和循環(huán),什么是函數(shù)以及他們能用來做什么。這些都是非?;A(chǔ)的,但是對(duì)初學(xué)者來說都是很好的東西。當(dāng)需要幫助時(shí)有一個(gè)用來交流的論壇,但所有的東西都應(yīng)該在你理解的范圍之內(nèi)。


你不需要安裝任何工具,如果你想在你自己的電腦上重寫一遍代碼以便更好地理解它,你可能唯一需要的就是一個(gè)Notepad++編輯器。我就是這樣做的,并且我向所有想學(xué)習(xí)編程的人都推薦Codecademy,不管是Python還是其他的語言。


Intro to Computer Science @ Udacity



Udacity提供了一個(gè)很棒的免費(fèi)課程,引你進(jìn)入Python編程和學(xué)習(xí)關(guān)于搜索引擎的許多東西,以及如何編寫你自己的小型網(wǎng)絡(luò)爬蟲。它的確是一個(gè)值得參與的課程,并且還提供了額外的指導(dǎo)和社區(qū)支持。


你可以報(bào)名成為付費(fèi)學(xué)生得到導(dǎo)師的指導(dǎo),并且可以在課程結(jié)束得到一個(gè)證書,或者你可以自己使用免費(fèi)的課件學(xué)習(xí),遺憾的是付費(fèi)課堂的容量有限,所以你申請(qǐng)后需要加入名單等待。


它總共有11個(gè)課程,每一個(gè)都有講解非常深入的文檔。去它的官方主頁查看更多的信息或者你想問的問題的答案。


Google’s Python Class



Google它本身就被一大堆Python代碼驅(qū)動(dòng)著,只有他們提供社區(qū)支持并且愿意幫助其他人學(xué)習(xí)這門語言才更有意義。這是我曾經(jīng)最喜歡看的指南和課程之一。它真的很詳細(xì),而且視頻適合初學(xué)者,觀看起來也很有趣。


去看幾分鐘它的第一堂課,看看你是否喜歡那個(gè)老師,然后決定是否開始學(xué)習(xí)Python!官方主頁有這些練習(xí)題和例題的所有鏈接。


A Byte of Python



非常像LPTHW(笨辦法學(xué)Python),但是在如何制定完整的學(xué)習(xí)計(jì)劃并實(shí)施,以及如何邁出第一步上提供了更深層次的引導(dǎo),而不會(huì)讓你喪失自信心。對(duì)于那些想學(xué)Python的人來說它被認(rèn)為是最好的初學(xué)者教程之一,當(dāng)然你要先看看前幾章,是否喜歡它的寫作風(fēng)格。


Think Python



Think Python是一個(gè)面向Python初學(xué)者的手冊(cè)。它從編程的基本概念教起,非常詳細(xì)地定義了所有第一次會(huì)遇到的術(shù)語,并且很有邏輯地展現(xiàn)新的概念。像遞歸和面向?qū)ο筮@樣大一點(diǎn)的知識(shí)板塊被分成了一系列更小的步驟,穿插于課程幾個(gè)章節(jié)。


在這個(gè)鏈接里你會(huì)發(fā)現(xiàn)有大量的示例代碼。它是最為專業(yè)的書之一,它有一個(gè)很嚴(yán)肅的原則: “像計(jì)算機(jī)科學(xué)家一樣思考”。它需要將近40美元才能買到,但是你可以下載免費(fèi)的PDF和HTML版本。如果從頭開始學(xué)Python的話,肯定會(huì)從它上面得到好處。


Python at Learnstreet



你可能會(huì)想有個(gè)網(wǎng)站提供如何在他們頁面上添加HTML代碼的課程,哈哈。嚴(yán)肅一點(diǎn)地說,Learnstreet提供了很棒的Python交互式學(xué)習(xí)教程,就像這篇文章所說的所有東西一樣,它對(duì)初學(xué)者非常友好。如果你遇到了問題,最好用Google去搜索。


我最喜歡Learnstreet的一點(diǎn)是每個(gè)練習(xí)后面都有許多提示和解釋,顯示在你編寫代碼的同一個(gè)界面里。


The New Boston



如果你更喜歡使用視頻學(xué)習(xí),我不確定是否還有比The New Boston的Python系列視頻教程更全面的了,許多其他的編程語言也可以在他們的YouTube頻道里找到。


它唯一的缺點(diǎn)就是沒有可以閱讀或者下載的資料,你只能看視頻。我是那種不能忍受一直盯著視頻看的程序員,這可能與我選擇Google的Python課程有關(guān),但它們實(shí)在太有趣了。


Python @ Coursera



這個(gè)課程是為從來沒接觸過編程的人準(zhǔn)備的。你只需要小學(xué)的數(shù)學(xué)水平就可以了:懂簡單的數(shù)學(xué)方程和算術(shù)優(yōu)先級(jí),以及像f(x) = x + 5這樣的函數(shù)。


它在十周內(nèi)應(yīng)該可以學(xué)完,每周大概花10小時(shí)來完成課后作業(yè)。如果你有時(shí)間來做這個(gè),并且不會(huì)感到很累,我推薦你注冊(cè)并完成這個(gè)課程,它會(huì)鞏固你的知識(shí),并可以結(jié)合上面介紹的任何一個(gè)資源來更好地理解 Python。


Pythonspot



Pythonspot是一個(gè)綜合教程,劃分了很多不同類別的知識(shí)板塊,首先你將擁有初學(xué)者資源來幫你開始Python的學(xué)習(xí),然后你繼續(xù)保持前進(jìn)你能學(xué)到更多關(guān)于使用Python開發(fā)web,創(chuàng)建圖形界面,開發(fā)游戲的內(nèi)容,到那時(shí)你可以準(zhǔn)備學(xué)習(xí)一些更高級(jí)的板塊,像網(wǎng)絡(luò)等等。這些都在一個(gè)地方,非常容易使用。


Python Practice Book



從根本上說,這是Anand Chitipothu在他講授Python課程時(shí)使用的資源,但即便你不與Anand本人一起學(xué)習(xí),你仍然可以利用這個(gè)資源來獲取Python在不同角度的見解,以及看到不同開發(fā)者的觀點(diǎn)。


Python Tutor



我認(rèn)為這是新手程序員近期能夠上手的最好的項(xiàng)目之一,Python Tutor都是在教你當(dāng)執(zhí)行你寫的代碼時(shí)到底發(fā)生了些什么。清楚地了解到如何寫一段程序,能夠理解后臺(tái)程序的每個(gè)命令都是截然不同的。你可以使用自己寫的代碼,也可以使用平臺(tái)提供的代碼。


Real Python



雖然這是一個(gè)收費(fèi)的資源,但最新的評(píng)論看起來還是相當(dāng)不錯(cuò)的,所以不管怎樣我決定加上這一條。在Real Python需要花費(fèi)60美元來開始你的學(xué)習(xí),將會(huì)有超過1300頁的內(nèi)容和10個(gè)多小時(shí)的視頻供你訪問,還包括以后可以免費(fèi)更新。你能得到來自Real Python團(tuán)隊(duì)的導(dǎo)師的幫助,不過這需要額外的費(fèi)用。以及博客里有適量與代碼相關(guān)的教程能夠給你幫助。


Full Stack Python



你能比較熟練地使用Python了,但是你不知道接下來該走什么樣的方向?這個(gè)網(wǎng)絡(luò)課程就是為你解決這個(gè)問題的,通過給你一個(gè)真正的項(xiàng)目去做,幫助你理解怎樣用你學(xué)到的Python知識(shí)建立一個(gè)web應(yīng)用程序和網(wǎng)站。學(xué)會(huì)怎樣積累一些真正的知識(shí)。


Invent with Python




教你怎樣使用Python創(chuàng)造一款你自己的電腦游戲。每章為你提供了一個(gè)新游戲完整的源代碼,通過這些例子教你編程的概念。它在網(wǎng)站上可以免費(fèi)閱讀,或者在亞馬遜購買。


PythonLearn



你是一個(gè)對(duì)信息學(xué)感興趣的家伙嗎?整個(gè)網(wǎng)站的資源都圍繞著確切的話題,所以如果你感興趣的話,去看看可能會(huì)是一件好事。


Dive Into Python3



遲早有一天,大多數(shù)的東西都會(huì)使用Python3來構(gòu)建,盡管Python2仍然非常穩(wěn)定并被大量使用,但Python3在過去的兩年里確實(shí)發(fā)展的非常完整了。這本在線書籍所有的內(nèi)容都在幫助你理解Python3是什么,以及如何最好地掌握它。


擴(kuò)展閱讀,點(diǎn)下面超鏈接:

她發(fā)明了WiFi                      北漂IT人的未來在哪兒

T級(jí)攻防:大規(guī)模DDOS防御架構(gòu)

黑掉一臺(tái)根本不聯(lián)網(wǎng)的電腦  怎樣逼死一名程序員

攻下隔壁女生路由器后  網(wǎng)站滲透思路全方面總結(jié)

他是最牛黑客              怎樣獲取他人計(jì)算機(jī)ip地址

QQ是如何監(jiān)控你的聊天記錄的     VR、AR、MR

程序員從入門到結(jié)婚                        Google面試題

數(shù)據(jù)恢復(fù)工具軟件               多功能U盤啟動(dòng)工具盤

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多