Python 基礎(chǔ):分分鐘入門

Python和Pythonic

Python是一門計(jì)算機(jī)語言(這不是廢話么)击胜,簡單易學(xué),上手容易役纹,深入有一定困難偶摔。為了逼格,還是給你們堆一些名詞吧:動態(tài)語言促脉、解釋型辰斋、網(wǎng)絡(luò)爬蟲、數(shù)據(jù)處理瘸味、機(jī)器學(xué)習(xí)亡呵、Web開發(fā)、等等等等硫戈。Python目前分為2.x和3.x兩個版本锰什,與其它語言不一樣的是,它的這兩個版本是不兼容的丁逝,雖然會其中一個就容易上手另一個汁胆,但是鑒于公司目前幾乎全是用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饮六。其垄。

開發(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)境。

想要一起學(xué)習(xí)交流想要共同進(jìn)步的可以加python爬蟲學(xué)習(xí)q-u-n-227-435-450 辜膝,里有許多學(xué)習(xí)資料等待著大家

對于Python常用的IDE(集成開發(fā)環(huán)境)无牵,推薦使用PyCharm,如果土豪請購買正版厂抖,如果不是土豪又有情懷茎毁,請使用社區(qū)版(免費(fèi)),如果既不土豪又沒有情懷忱辅,就用盜版吧(不推薦)七蜘。

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

hello, world.

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

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

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

變量

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

a = 1

b = True

c = 1.0

a = 3+2j

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

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

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

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

長整型: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的形式惧财。可以直接支持兩個復(fù)數(shù)的運(yùn)算扭仁。

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

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

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)形式都是三引號引起來的瓤帚。如果在字符串的引號之前加上一個u描姚,則表示這是一個unicode字符串,如果加上r戈次,則表示這是一個原始字符串?轩勘,這兩種類型,對于初學(xué)者暫不討論怯邪。值得注意的是绊寻,Python中沒有C-Like語言中的字符類型


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

運(yùn)算符

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

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

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

!=, <>:不等于仇箱,表示兩邊的值不相等,推薦使用前一種东羹。1 != 2剂桥。

==:等于,表示兩邊的值相等属提。2 == 2渊额。

and:邏輯與,如果兩邊的值都為True則整個值為True垒拢,反之為False旬迹。1==1 and 2==2。

or:邏輯或求类,如果兩邊有一個值True則整個值為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),這個后續(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; i++)的語法,不過可以使用xrange或者range函數(shù)實(shí)現(xiàn)同樣的效果艇挨。前一個函數(shù)返回一個生成器残炮,后一個函數(shù)返回list,一般推薦使用前一個缩滨,至于這兩個函數(shù)的異同势就,后面有時間細(xì)聊泉瞻。

集合

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

list

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

In[1]: l = ['this','is','a','list']# 初始化一個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不可以對其元素做任何修改操作(新增、刪除等):

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

In[2]: t

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

In[3]: type(t)

Out[3]: tuple

set

set表示一個不重復(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ù)的對應(yīng)關(guān)系,與set一樣锻离,dict是無序的(你可以通過collections中的OrderDict來達(dá)到有序)铺峭。同時,對于初學(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]: deld['a']#刪除元素

In[7]: d

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

函數(shù)(初步)

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

def add(num1,num2):

returnnum1 + num2

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

def calc(n1,n2):

returnn1 + n2,n1 *n2

add,sub = calc(5,1)

print add,sub# 6 4

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

小結(jié)

Python中最最最基礎(chǔ)的部分差不多就是這些了,后面會繼續(xù)分享一些Pythonic的Python代碼寫法服协。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末绍昂,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子偿荷,更是在濱河造成了極大的恐慌治专,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件遭顶,死亡現(xiàn)場離奇詭異张峰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)棒旗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門喘批,熙熙樓的掌柜王于貴愁眉苦臉地迎上來撩荣,“玉大人,你說我怎么就攤上這事饶深〔筒埽” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵敌厘,是天一觀的道長台猴。 經(jīng)常有香客問我,道長俱两,這世上最難降的妖魔是什么饱狂? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮宪彩,結(jié)果婚禮上休讳,老公的妹妹穿的比我還像新娘。我一直安慰自己尿孔,他們只是感情好俊柔,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著活合,像睡著了一般雏婶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上白指,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天留晚,我揣著相機(jī)與錄音,去河邊找鬼侵续。 笑死倔丈,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的状蜗。 我是一名探鬼主播需五,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼轧坎!你這毒婦竟也來了宏邮?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤缸血,失蹤者是張志新(化名)和其女友劉穎蜜氨,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捎泻,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡飒炎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了笆豁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片郎汪。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡赤赊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出煞赢,到底是詐尸還是另有隱情抛计,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布照筑,位于F島的核電站吹截,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏凝危。R本人自食惡果不足惜波俄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望媒抠。 院中可真熱鬧弟断,春花似錦咏花、人聲如沸趴生。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽苍匆。三九已至,卻和暖如春棚菊,著一層夾襖步出監(jiān)牢的瞬間浸踩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工统求, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留检碗,地道東北人。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓码邻,卻偏偏與公主長得像折剃,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子像屋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容