前面講述了"專題一.函數的基礎知識",而這篇文章講述的python的條件語句和循環語句的基礎知識.主要内容包括:
1.條件語句:包括單分支、雙分支和多分支語句,if-elif-else
2.循環語句:while的使用及簡單網絡刷博器爬蟲
3.循環語句:for的使用及周遊清單、元組、檔案和字元串
在講訴條件語句、循環語句和其他語句之前,先來補充語句塊知識.(前面講函數時已經用到過)
語句塊并非一種語句,它是在條件為真(條件語句)時執行或執行多次(循環語句)的一組語句.在代碼前放置空格或tab字元來縮進語句即可建立語句塊.很多語言特殊單詞或字元(如begin或{)來表示一個語句塊的開始,用另外的單詞或字元(如end或})來表示語句塊的結束.
而在python中使用冒号(:)來辨別語句塊的開始,塊中每一個語句都是縮進的(縮進量相同).當回退到和已經閉合的塊一樣的縮進量時,就表示目前塊已經結束.
if分支語句表達式基本類型常見的有一下三種:
1.單分支語句
它的基本格式是:
if condition:
statement
statement
需要注意的是ptthon中if條件語句條件無需圓括号(),條件後面需要添加冒号,它沒有花括号{}而是使用tab實作區分.其中condition條件判斷通常有布爾表達式(true|false 0-假|1-真 非0即真)、關系表達式(>= <= == !=)和邏輯運算表達式(and or not).
2.雙分支語句
else:
3.多分支語句
if多分支由if-elif-else組成,其中elif相當于else if,同時它可以使用多個if的嵌套.具體代碼如下所示:
while循環語句的基本格式如下:
while condition:
statement
statement
else:
其中判斷條件語句condition可以為布爾表達式、關系表達式和邏輯表達式,else可以省略(此處列出為與c語言等差別).舉個例子:
它的輸出結果為5050,當時當i加到101時,由于i>100将執行else語句.
需要注意的是python中使用井号(#)表示行注釋,使用三引号('''...''')表示多行注釋.差別于c/c++的//行注釋和/**/多行注釋.
下面講述一段代碼刷博器爬蟲,先給出代碼再講解:
在搜狐部落格或新浪部落格中隻要在新視窗打開就會增加浏覽通路次數,是以上面的代碼主要是通過調用webbrowser浏覽器的open_new_tab打開新的視窗,而csdn不行(估計綁定使用者或ip有關).
上面代碼中windoes指令taskkill的作用是殺掉應用程式ie浏覽器,在dos中輸入"taskkill /f /im iexplore.exe"可以強行關閉應用程式(chrome.exe或qq.exe),其中/f表示強行終止程式,/im表示圖像.在該程式中主要的作用是清除記憶體,防止記憶體消耗太大出現當機現象;但是需要調用import os的system()函數打開,而linux下用kill指令(kill -pid或killall)終止程序.

代碼中time.sleep(seconds)表示"delay execution for a given number of seconds.",從打開到加載有一定時間.
當你需要大量增加浏覽量時可以使用兩層循環嵌套,每次打開5個網頁在關閉在執行100次,這樣你的記憶體也不會因為消耗太大出現當機現象,也可以使用import random count=random.randint(20,40)産生20到40随機數來執行外層循環.代碼比較簡單,主要是想通過它介紹些python的基礎知識.但是初次打開ie浏覽器會出現打開次數不一緻的錯誤.why?
該循環語句的基礎格式為:
for target in sequences:
statements
target表示變量名,sequences表示序列,常見類型有list(清單)、tuple(元組)、strings(字元串)和files(檔案).
python的for沒有展現出循環的次數,不像c語言的for(i=0;i<10;i++)中i循環計數,python的for指每次從序列sequences裡面的資料項取值放到target裡,取完即結束,取多少次循環多少次.其中in為成員資格運算符,檢查一個值是否在序列中.同樣可以使用break和continue跳出循環.
1.字元串循環
注意:如果在print結尾加上逗号,那麼接下來語句會與前一條語句在同一行列印.故上面輸出顯示一行.
2.清單循環
注意:清單list由一堆資料用逗号間隔,方括号括起,可以是同類型也可以是不同類型.format(i,'2d')相當于輸出兩位,不足的補空格.當輸出0-9時顯示"口0",而輸出10-99時顯示"10"實作對其功能.輸出結果如下:
因為疊代(循環另一種說法)某範圍的數字是很常用的,是以有個内建的範圍函數range供使用.清單中for n in [1,2,3,4,5,6,7,8]相當于listnum=range(1,9).其格式"range(start, stop[, step]) -> list of integers",它的工作方式類似于分片,它包含下限(本例range(1,9)中為1),但不包含上限(本例中9),如果希望下限為0,可以隻提供上限如range(4)=[0,1,2,3].
産生1到100的數字range(1,101),輸出1到100的奇數range(1,101,2),輸出1到100的偶數range(2,101,2).
3.元組循環
元組tuple每個資料項不可修改,隻可讀,而序列list[1,2,3,4]可以修改.
4.檔案循環
help(file.read)傳回一個字元串."read([size]) -> read at most size bytes, returned as a string."
help(file.readlines)傳回一個清單."readlines([size]) -> list of strings, each a line from the file."相當于讀n行,由n次readline組成,讀出的字元串構成清單.
help(file.readline)從某個檔案讀一行."readline([size]) -> next line from the file, as a string."
輸出顯示:
如果需要檔案輸出也可以通過下面代碼實作,使用w會覆寫而a+是追加功能,後面講檔案詳細叙述.
for r in open('test.txt','r').readlines():
open('test.txt','a+').write(c)
ps:我主要是通過《python基礎教程》和"51cto學院 智普教育的python視訊"學習.是以文中引用了很多視訊中的知識、書籍知識和自己的知識,感謝那些作者和老師,希望文章對大家有所幫助,才開始學習python知識,如果文章中有錯誤或不足之處,還請海涵,也希望大家提出意見與君共勉.勿噴~