Python作為一門新型的編程語言(一般常用作腳本語言)很受歡迎,畢竟相對(duì)其他的編程語言(Java ,C#等)來說比較容易入手。那么,在學(xué)習(xí)玩入門Python的時(shí)候,應(yīng)該從哪方面入手,學(xué)習(xí)流程是怎樣的呢?以下是小編為你整理的如何學(xué)好python基礎(chǔ) ?
基礎(chǔ)知識(shí):學(xué)習(xí)每一種新的編程語言都是從最基本的開始,對(duì)于python而言也是需要先學(xué)習(xí)其基礎(chǔ)知識(shí)。
python的基礎(chǔ)知識(shí)包括:變量和數(shù)據(jù)類型,List和Tuple,條件判斷和循環(huán),Dict和Set, 函數(shù),切片,迭代和列表生成式。 ?
注意:學(xué)習(xí)基礎(chǔ)知識(shí)切莫著急,一定要打好基礎(chǔ),這樣才會(huì)更好的應(yīng)用python。 ?
進(jìn)階知識(shí):學(xué)完掌握基礎(chǔ)知識(shí)之后,就要學(xué)習(xí)進(jìn)階知識(shí)了。 ?
python的進(jìn)階知識(shí)包括:函數(shù)式編程,模塊,面向?qū)ο缶幊袒A(chǔ),類的繼承和定制類。 ?
python裝飾器:裝飾器是很重要的一個(gè)知識(shí)點(diǎn)。 ?
關(guān)于裝飾器需要涉及到函數(shù)作用域.閉包的使用和裝飾器的概念及使用。 ?
如何搭建環(huán)境
學(xué)習(xí)爬蟲首先學(xué)習(xí)Python,建議通過**mooc和《笨方法學(xué)Python》來實(shí)現(xiàn)入門,那本書的內(nèi)容可以有所取舍。通過這兩個(gè)途徑再上網(wǎng)上針對(duì)性地查找相關(guān)內(nèi)容完全可以入門,重點(diǎn)在于理解“面向?qū)ο蟆薄? ?
爬蟲入門首先要明白一些網(wǎng)絡(luò)技術(shù),了解TCP/IP參考模型,并且對(duì)應(yīng)用層的HTTP協(xié)議的方法和工作原理有一定的認(rèn)識(shí)。爬蟲爬取網(wǎng)頁(yè)內(nèi)容,大多數(shù)網(wǎng)頁(yè)服務(wù)由HTTP協(xié)議實(shí)現(xiàn)。 ?
正式學(xué)習(xí)爬蟲庫(kù)urllib和正則表達(dá)式,urllib靈活性很高,并且和你所學(xué)的網(wǎng)絡(luò)原理、HTTP原理非常貼合,利于新手學(xué)習(xí),正則表達(dá)式看看內(nèi)容,再看幾個(gè)實(shí)例就應(yīng)該會(huì)用了,不推薦看亂七八糟的教程和MOOC(效果非常差,講的跨度太大),推薦書籍《精通Python網(wǎng)絡(luò)爬蟲 核心技術(shù)、框架與項(xiàng)目實(shí)戰(zhàn) 》(韋瑋)。同樣是選擇性的閱讀。 ?
學(xué)習(xí)完成之后,多加實(shí)踐,推薦實(shí)戰(zhàn)項(xiàng)目:1、爬取漫畫網(wǎng)上的一部漫畫的所有圖片,并用PowerPoint做成PDF 2、爬取電影下載網(wǎng)站上的所有電影下載鏈接并整理到Excel。能獨(dú)立完成這兩個(gè)實(shí)戰(zhàn)項(xiàng)目,恭喜你已經(jīng)成功入門! ?
常見的函數(shù)應(yīng)用
交換變量 ?
x = 6
y = 5
x, y = y, x
print x
>>> 5
print y
>>> 6 ?
if 語句在行內(nèi)
print "Hello" if True else "World"
>>> Hello ?
連接
下面的*一種方式在綁定兩個(gè)不同類型的對(duì)象時(shí)顯得很cool。 ?
nfc = ["Packers", "49ers"] ?
afc = ["Ravens", "Patriots"] ?
print nfc + afc ?
>>> ['Packers', '49ers', 'Ravens', 'Patriots'] ?
print str(1) + " world"
>>> 1 world
print `1` + " world"
>>> 1 world
print 1, "world"
>>> 1 world
print nfc, 1
>>> ['Packers', '49ers'] 1
數(shù)字技巧
#除后向下取整
print 5.0//2
>>> 2
# 2的5次方
print 2**5
>> 32
注意浮點(diǎn)數(shù)的除法
print .3/.1
>>> 2.9999999999999996
print .3//.1
>>> 2.0 ?
數(shù)值比較 ?
這是我見過諸多語言中很少有的如此棒的簡(jiǎn)便法 ?
x = 2
if 3 > x > 1:
print x
>>> 2
if 1 < x > 0:
print x
>>> 2
5 ?
同時(shí)迭代兩個(gè)列表 ?
nfc = ["Packers", "49ers"] ?
afc = ["Ravens", "Patriots"]
?
for teama, teamb in zip(nfc, afc): ?
print teama + " vs. " + teamb ?
>>> Packers vs. Ravens ?
>>> 49ers vs. Patriots ?
Import語句 創(chuàng)建了自定義模塊,就是為了用它,import就是用來導(dǎo)入我們寫的模塊的?,F(xiàn)在自定義一個(gè)簡(jiǎn)單的模塊函數(shù)myTest.py。然后創(chuàng)建另一個(gè)python文件testImport來導(dǎo)入myTest.py,測(cè)試可行性。如圖:運(yùn)行testImport得出結(jié)果hi:BOb。這就是import語句簡(jiǎn)單應(yīng)用。
from...import 和from...import*語句:from語句是從模塊中導(dǎo)入其中的一部分到命名空間(下面說)中,還以剛才的兩個(gè)文件為例,from myTest import sayHi,就是把模塊myTest中的sayHi函數(shù)導(dǎo)入到testImport函數(shù)中。
命名空間和作用域(即局部變量全局變量):一個(gè)Python表達(dá)式可以訪問局部命名空間和全局命名空間里的變量。如果一個(gè)局部變量和一個(gè)全局變量重名,則局部變量會(huì)覆蓋全局變量。python會(huì)假設(shè)任何函數(shù)內(nèi)賦值的變量都是局部的,因此一個(gè)全局變量要想在局部變量里使用,需要用到global語句了,要么是在函數(shù)內(nèi)再聲明一下這個(gè)局部變量,如圖注釋的兩個(gè)方法: ?
dir()函數(shù):dir函數(shù)是一個(gè)已經(jīng)排好序的列表,列表的內(nèi)容是在模塊里定義過的名字。列表容納了模塊里定義過的所有的模塊,函數(shù)和變量 ?
globals()和locals()函數(shù):兩個(gè)函數(shù)分別用來返回全局和局部命名空間里的名字(返回類型是字典形式,因此可以用key()摘取)。