Linux平臺(tái)下Python腳本編程入門(一)
眾所周知,系統(tǒng)管理員需要精通一門腳本語(yǔ)言,而且招聘機(jī)構(gòu)列出的職位需求上也會(huì)這么寫(xiě)。大多數(shù)人會(huì)認(rèn)為 Bash (或者其他的 shell 語(yǔ)言)用起來(lái)很方便,但一些強(qiáng)大的語(yǔ)言(比如 Python)會(huì)給你帶來(lái)一些其它的好處。
首先,我們會(huì)使用 Python 的命令行工具,還會(huì)接觸到 Python 的面向?qū)ο筇匦?這篇文章的后半部分會(huì)談到它)。
學(xué)習(xí) Python 可以助力于你在桌面應(yīng)用開(kāi)發(fā)及數(shù)據(jù)科學(xué)領(lǐng)域的職業(yè)發(fā)展。
容易上手,廣泛使用,擁有海量“開(kāi)箱即用”的模塊(它是一組包含 Python 語(yǔ)句的外部文件),Python 理所當(dāng)然地成為了美國(guó)計(jì)算機(jī)專業(yè)大學(xué)生在一年級(jí)時(shí)所上的程序設(shè)計(jì)課所用語(yǔ)言的不二之選。
在這個(gè)由兩篇文章構(gòu)成的系列中,我們將回顧 Python 的基礎(chǔ)部分,希望初學(xué)編程的你能夠?qū)⑦@篇實(shí)用的文章作為一個(gè)編程入門的跳板,和日后使用 Python 時(shí)的一篇快速指引。
Linux 中的 Python
Python 2.x 和 3.x 通常已經(jīng)內(nèi)置在現(xiàn)代 Linux 發(fā)行版中,你可以立刻使用它。你可以終端模擬器中輸入 python 或 python3 來(lái)進(jìn)入 Python shell, 并輸入 quit() 退出。
- $ which python
- $ which python3
- $ python -v
- $ python3 -v
- $ python
- >>> quit()
- $ python3
- >>> quit()
在 Linux 中運(yùn)行 Python 命令
如果你希望在鍵入 python 時(shí)使用 Python 3.x 而不是 2.x,你可以像下面一樣更改對(duì)應(yīng)的符號(hào)鏈接:
- $ sudo rm /usr/bin/python
- $ cd /usr/bin
- $ ln -s python3.2 python # Choose the Python 3.x binary here
刪除 Python 2,使用 Python 3
順便一提,有一點(diǎn)需要注意:盡管 Python 2.x 仍舊被使用,但它并不會(huì)被積極維護(hù)。因此,你可能要考慮像上面指示的那樣來(lái)切換到 3.x。2.x 和 3.x 的語(yǔ)法有一些不同,我們會(huì)在這個(gè)系列文章中使用后者。
另一個(gè)在 Linux 中使用 Python 的方法是通過(guò) IDLE (Python 集成開(kāi)發(fā)環(huán)境(the Python Integrated Development Environment)),這是一個(gè)為編寫(xiě) Python 代碼而生的圖形用戶界面。在安裝它之前,你***查看一下適用于你的 Linux 發(fā)行版的 IDLE 可用版本。
- # aptitude search idle [Debian 及其衍生發(fā)行版]
- # yum search idle [CentOS 和 Fedora]
- # dnf search idle [Fedora 23+ 版本]
然后,你可以像下面一樣安裝它:
- $ sudo aptitude install idle-python3.2 # I'm using Linux Mint 13
安裝成功后,你會(huì)看到 IDLE 的運(yùn)行畫(huà)面。它很像 Python shell,但是你可以用它做更多 Python shell 做不了的事。
比如,你可以:
- 輕松打開(kāi)外部文件 (File → Open);
- 復(fù)制 (Ctrl + C) 和粘貼 (Ctrl + V) 文本;
- 查找和替換文本;
- 顯示可能的代碼補(bǔ)全(一個(gè)在其他 IDE 里可能叫做“智能感知”或者“自動(dòng)補(bǔ)完”的功能);
- 更改字體和字號(hào),等等。
Python Shell
最厲害的是,你可以用 IDLE 創(chuàng)建桌面應(yīng)用。
我們?cè)谶@兩篇文章中不會(huì)開(kāi)發(fā)桌面應(yīng)用,所以你可以根據(jù)喜好來(lái)選擇 IDLE 或 Python shell 去運(yùn)行下面的例子。
Python 中的基本運(yùn)算
就像你預(yù)料的那樣,你能夠直接進(jìn)行算術(shù)操作(你可以在你的所有運(yùn)算中使用足夠多的括號(hào)!),還可以輕松地使用 Python 拼接字符串。
你還可以將運(yùn)算結(jié)果賦給一個(gè)變量,然后在屏幕上顯示它。Python 有一個(gè)叫做拼接 (concatenation) 的實(shí)用功能——給 print 函數(shù)提供一串用逗號(hào)分隔的變量和/或字符串,它會(huì)返回一個(gè)由你剛才提供的變量依序構(gòu)成的句子:
- >>> a = 5
- >>> b = 8
- >>> x = b / a
- >>> x
- 1.6
- >>> print(b, "divided by", a, "equals", x)
注意,你可以將不同類型的變量(數(shù)字,字符串,布爾符號(hào)等等)混合在一起。當(dāng)你將一個(gè)值賦給一個(gè)變量后,你可以隨后更改它的類型,不會(huì)有任何問(wèn)題(因此,Python 被稱為動(dòng)態(tài)類型語(yǔ)言)。
如果你嘗試在靜態(tài)類型語(yǔ)言中(如 Java 或 C#)做這件事,它將拋出一個(gè)錯(cuò)誤。
學(xué)習(xí) Python 的基本操作
面向?qū)ο缶幊痰暮?jiǎn)單介紹
在面向?qū)ο缶幊?OOP)中,程序中的所有實(shí)體都會(huì)由對(duì)象的形式呈現(xiàn),并且它們可以與其他對(duì)象交互。因此,對(duì)象擁有屬性,而且大多數(shù)對(duì)象可以執(zhí)行動(dòng)作(這被稱為對(duì)象的方法)。
舉個(gè)例子:我們來(lái)想象一下,創(chuàng)建一個(gè)對(duì)象“狗”。它可能擁有的一些屬性有顏色、品種、年齡等等,而它可以完成的動(dòng)作有 叫()、吃()、睡覺(jué)(),諸如此類。
你可以看到,方法名后面會(huì)跟著一對(duì)括號(hào),括號(hào)當(dāng)中可能會(huì)包含一個(gè)或多個(gè)參數(shù)(向方法中傳遞的值),也有可能什么都不包含。
我們用 Python 的基本對(duì)象類型之一——列表來(lái)解釋這些概念。
解釋對(duì)象的屬性和方法:Python 中的列表
列表是條目的有序組合,而這些條目所屬的數(shù)據(jù)類型并不需要相同。我們像下面一樣來(lái)使用一對(duì)方括號(hào),來(lái)創(chuàng)建一個(gè)名叫 rockBands 的列表:
你可以向 rockBands 的 append() 方法傳遞條目,來(lái)將它添加到列表的尾部,就像下面這樣:
- >>> rockBands = []
- >>> rockBands.append("The Beatles")
- >>> rockBands.append("Pink Floyd")
- >>> rockBands.append("The Rolling Stones")
為了從列表中移除元素,我們可以向 remove() 方法傳遞特定元素,或向 pop() 中傳遞列表中待刪除元素的位置(從 0 開(kāi)始計(jì)數(shù))。
換句話說(shuō),我們可以用下面這種方法來(lái)從列表中刪除 “The Beatles”:
- >>> rockBands.remove("The Beatles")
或者用這種方法:
- >>> rockBands.pop(0)
如果你輸入了對(duì)象的名字,然后在后面輸入了一個(gè)點(diǎn),你可以按 Ctrl + space 來(lái)顯示這個(gè)對(duì)象的可用方法列表。
列出可用的 Python 方法
列表中含有的元素個(gè)數(shù)是它的一個(gè)屬性。它通常被叫做“長(zhǎng)度”,你可以通過(guò)向內(nèi)建函數(shù) len 傳遞一個(gè)列表作為它的參數(shù)來(lái)顯示該列表的長(zhǎng)度(順便一提,之前的例子中提到的 print 語(yǔ)句,是 Python 的另一個(gè)內(nèi)建函數(shù))。
如果你在 IDLE 中輸入 len,然后跟上一個(gè)不閉合的括號(hào),你會(huì)看到這個(gè)函數(shù)的默認(rèn)語(yǔ)法:
Python 的 len 函數(shù)
現(xiàn)在我們來(lái)看看列表中的特定條目。它們也有屬性和方法嗎?答案是肯定的。比如,你可以將一個(gè)字符串條目轉(zhuǎn)換為大寫(xiě)形式,并獲取這個(gè)字符串所包含的字符數(shù)量。像下面這樣做:
- >>> rockBands[0].upper()
- 'THE BEATLES'
- >>> len(rockBands[0])
- 11
總結(jié)
在這篇文章中,我們簡(jiǎn)要介紹了 Python、它的命令行 shell、IDLE,展示了如何執(zhí)行算術(shù)運(yùn)算,如何在變量中存儲(chǔ)數(shù)據(jù),如何使用 print 函數(shù)在屏幕上重新顯示那些數(shù)據(jù)(無(wú)論是它們本身還是它們的一部分),還通過(guò)一個(gè)實(shí)際的例子解釋了對(duì)象的屬性和方法。
下一篇文章中,我們會(huì)展示如何使用條件語(yǔ)句和循環(huán)語(yǔ)句來(lái)實(shí)現(xiàn)流程控制。我們也會(huì)解釋如何編寫(xiě)一個(gè)腳本來(lái)幫助我們完成系統(tǒng)管理任務(wù)。
你是不是想繼續(xù)學(xué)習(xí)一些有關(guān) Python 的知識(shí)呢?敬請(qǐng)期待本系列的第二部分(我們會(huì)在腳本中將 Python 和命令行工具的優(yōu)點(diǎn)結(jié)合在一起),你還可以考慮購(gòu)買我們的《*** Python 編程》系列教程(這里有詳細(xì)信息)。
像往常一樣,如果你對(duì)這篇文章有什么問(wèn)題,可以向我們尋求幫助。你可以使用下面的聯(lián)系表單向我們發(fā)送留言,我們會(huì)盡快回復(fù)你。
Linux 平臺(tái)下 Python 腳本編程入門(二)