Python作為一門新型的編程語言(一般常用作腳本語言)很受歡迎,畢竟相對其他的編程語言(Java ,C#等)來說比較容易入手。那么,在剛開始學習Python時有哪些疑難點需要掌握呢?以下是小編為你整理的python入門編寫程序教程 ?
list:列表。關于列表主要有創(chuàng)建、訪問、添加、刪除和替換幾方面來看。 ?
創(chuàng)建:L=[1,2,3,4,5] ?
訪問:分按照索引訪問和倒序訪問。前者:L[0]=1,L[4]=5;后者:L[-1]=5,L[-5]=1
?
添加: ?
1,直接在*添加:L.append() ?
例如:L.append(6)則L=[1,2,3,4,5,6] ?
2. L.insert()這個需要輸入兩個參數(shù)(前面參數(shù)是索引號,后面是新元素),例如L.insert(0,8)則L=[8,1,2,3,4,5] ?
3,刪除: ?
L.pop(),這個是刪除*一個元素;如果刪除某個位置的元素,只需要在()中輸入索引號即可。如:L.pop(0)則L=[2,3,4,5] ?
4,替換: ?
想替換哪個位置的元素,只需要L[xx]其中xx就是替換的元素的索引號。例如: ?
L[1]='Adam'則L=[1,'Adam',3,4,5] ?
2 ?
tuple:元組。創(chuàng)建tuple例如:t=(1,2,3) ?
注意:單元素的tuple必須要在元素后面添加“,”,例如:t=(1,) ?
查看tuple只需要t[xx]其中xx表示元素的索引號。 ?
tuple是不可變的,一旦創(chuàng)建便不可修改。 ?
3 ?
dict:字典。關于dict主要有創(chuàng)建、訪問、添加和遍歷幾方面來看。 ?
創(chuàng)建:dict={'A':1,'B':2,'C':3}前面的為Key后面的問Value,dict就是有Key:Value組合成的??梢酝ㄟ^Key來查找Value。 ?
訪問:d[key]訪問時必須保證key是在dict中的。例如:print d['A']=1;key在不在dict中需要判斷(一般都使用dict提供的get方法即可),例如:print d.get('A')返回1;如果輸入的key不存在dict中,那么print d['p']返回的是None。 ?
注意:dict的特點:無序,key必須是不可變。 ?
更新(添加):直接用賦值語句即可。例如:d['M']=4則print d返回的可能是{''C':3,'M':4,A':1,'B':2}因為dict是無序的,所以返回的順序也是不確定的。 ?
遍歷:dict={'A':1,'B':2,'C':3使用for即可 ?
for key in d: ?
print key ?
則返回的是對應的key值: ?
A ?
B ?
C ?
變量的應用
首先看變量(實際是對象引用,只是大家在其他語言的影響下,習慣叫變量) ?
如果2個變量的數(shù)值相同,那么必然是地址相同,所以a is b是True(正確的) ?
解析:a = 123,這時候內(nèi)存里面沒有123這個對象,于是創(chuàng)建了123,當b = 123的時候,內(nèi)存里面有了123這個對象,于是直接指向123這個對象,這就是Python的特點,變量也是引用對象 ?
當換成元組之后,結果就不一樣了,結果是False(不正確) ?
比如:a = (123,456) b = (123,456) ?
解析:a是指向一個元組,b是指向一個元組,這些元組分別有自己的內(nèi)存地址,然后這些元組里面的元素再分別指向其他對象 ?
但是具體到某一個元素的時候,結果又一樣了 ?
比如,a = (123,456) b = (123,456),比較,a[0] 與 b[0] ?
解析:當具體指向某一個元素的時候,實際指向這個元素指向的對象 ?
注意:當元組只有一個元素的時候,創(chuàng)建的不是元組(列表就不一樣了,如圖2) ?
如:a = (123),那么a的類型的int,不是元組類型 ?
關于==符號 ?
python的==是比較值是否相同,不是比較內(nèi)存是否相同 ?
比如:a =(123,456) b =(123,456),而a==b則是True,a is b是Flash ?
查看內(nèi)存地址,用id() ?
說了這么多,is是比較內(nèi)存地址,那么人眼比較可以直接打印出內(nèi)存地址 ?
比如:a = 123,id(a)則是獲取a的內(nèi)存地址 ?
輸出方法
輸出無外乎就是將想要打印的東西或者結果打印出來,即為輸出 ?
使用print()函數(shù)進行輸出
?
打印字符串 ?
可以在括號中加上引號引起來的字符打印輸出 ?
例如輸出test,代碼實現(xiàn)如下 ?
print('test') ?
當然也可以打印多個字符串 ?
例如輸出'test , ','hello world!' ?
可以次用逗號分割,就可以連接在一起輸出到屏幕 ?
print('test , ','hello world!') ?
稍作說明:print()會依次打印每個字符串,遇到逗號就會輸出一個空格,這樣子字符串就連成一片輸出來嘍。 ?
還可以打印整數(shù)(數(shù)值型的) ?
例如 ?
print(250) ?
當還可以將數(shù)值跟字符一起輸出來 ?
例如:算一個250+250 ?
print(250+250) ?
輸出的更漂亮一些,可以這樣 ?
print('205 + 250 = ' , 250+250) ?
選擇一款合適的編程語言
事實上,Python、PHP、JAVA等常見的語言都可以用于編寫網(wǎng)絡爬蟲,你首先需要選擇一款合適的編程語言,這些編程語言各有優(yōu)勢,可以根據(jù)習慣進行選擇。在此筆者推薦使用Python進行爬蟲項目的編寫,其優(yōu)點是:簡潔、掌握難度低。 ?
掌握Python的一些基礎爬蟲模塊
當然,在進行這一步之前,你應當先掌握Python的一些簡單語法基礎,然后才可以使用Python語言進行爬蟲項目的開發(fā)。
在掌握了Python的語法基礎之后,你需要重點掌握一個Python的關于爬蟲開發(fā)的基礎模塊。這些模塊有很多可以供你選擇,比如urllib、requests等等,只需要精通一個基礎模塊即可,不必要都精通,因為都是大同小異的,在此推薦的是掌握urllib,當然你可以根據(jù)你的習慣進行選擇。 ?
深入掌握一款合適的表達式
學會了如何爬取網(wǎng)頁內(nèi)容之后,你還需要學會進行信息的提取。事實上,信息的提取你可以通過表達式進行實現(xiàn),同樣,有很多表達式可以供你選擇使用,常見的有正則表達式、XPath表達式、BeautifulSoup等,這些表達式你沒有必要都精通,同樣,精通1-2個,其他的掌握即可,在此建議精通掌握正則表達式以及XPath表達式,其他的了解掌握即可。正則表達式可以處理的數(shù)據(jù)的范圍比較大,簡言之,就是能力比較強,XPath只能處理XML格式的數(shù)據(jù),有些形式的數(shù)據(jù)不能處理,但XPath處理數(shù)據(jù)會比較快。