Linux中Python程式設計和指令碼編寫入門
眾所周知(並且招聘機構通常需要)系統管理員需要精通指令碼語言。 雖然我們大多數人可能習慣使用Bash(或我們選擇的其他shell)來執行命令列指令碼,但像Python這樣強大的語言可以增加幾個好處。
首先,我們會使用 Python 的命令列工具,還會接觸到 Python 的面向物件特性(這篇文章的後半部分會談到它)。
學習 Python 可以助力於你在桌面應用開發及資料科學領域的職業發展。
容易上手,廣泛使用,擁有海量“開箱即用”的模組(它是一組包含 Python 語句的外部檔案),Python 理所當然地成為了美國計算機專業大學生在一年級時所上的程式設計課所用語言的不二之選。
在這個由兩篇文章構成的系列中,我們將回顧 Python 的基礎部分,希望初學程式設計的你能夠將這篇實用的文章作為一個程式設計入門的跳板,和日後使用 Python 時的一篇快速指引。
Linux 中的 Python
Python 2.x 和 3.x 通常已經內建在現代 Linux 發行版中,你可以立刻使用它。你可以終端模擬器中輸入 python
或 python3
來進入 Python shell, 並輸入 quit()
退出。
linuxidc@linuxidc:~/www.linuxidc.com/Linux公社 -$ which python
/usr/bin/python
linuxidc@linuxidc:~/www.linuxidc.com/Linux公社 -$ which python3
/usr/local/bin/python3
linuxidc@linuxidc:~/www.linuxidc.com/Linux公社 -$ python -V
Python 2.7.15rc1
linuxidc@linuxidc:~/www.linuxidc.com/Linux公社 -$ python3 -V
Python 3.8.0a2
linuxidc@linuxidc:~/www.linuxidc.com/Linux公社 -$ python
Python 2.7.15rc1 (default, Nov 12 2018, 14:31:15)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()
linuxidc@linuxidc:~/www.linuxidc.com/Linux公社 -$ python3
Python 3.8.0a2 (default, Feb 27 2019, 18:45:42)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()
在 Linux 中執行 Python 命令
如果你希望在鍵入 python
時使用 Python 3.x 而不是 2.x,你可以像下面一樣更改對應的符號連結:
$ cd /usr/bin
$ sudo rm /usr/bin/python
$ ln-s python3.6 python #在這裡選擇Python3.x二進位制檔案
刪除 Python 2,使用 Python 3
順便一提,有一點需要注意:儘管 Python 2.x 仍舊被使用,但它並不會被積極維護。因此,你可能要考慮像上面指示的那樣來切換到 3.x。2.x 和 3.x 的語法有一些不同,我們會在這個系列文章中使用後者。
另一個在 Linux 中使用 Python 的方法是通過 IDLE (Python 整合開發環境(the Python Integrated Development Environment)),這是一個為編寫 Python 程式碼而生的圖形使用者介面。在安裝它之前,你最好檢視一下適用於你的 Linux 發行版的 IDLE 可用版本。
# aptitude search idle [Debian及其衍生髮行版]
#yum search idle [CentOS和 Fedora ]
# dnf search idle [Fedora23+版本]
然後,你可以像下面一樣安裝它:
sudo aptitude install idle-python2.7# 我用的是Ubuntu 18.04
sudo aptitude install idle-python3.6 # 我用的是Ubuntu 18.04
安裝好之後直接在/usr/share/applications,就可以找到IDLE的圖示,直接將其複製到桌面上,以後直接在桌面雙擊就可以啟動。
或者在終端輸入: /usr/bin/idle-python3.6即可啟動。
安裝成功後,你會看到 IDLE 的執行畫面。它很像 Python shell,但是你可以用它做更多 Python shell 做不了的事。
比如,你可以:
輕鬆開啟外部檔案 (File → Open);
複製 (Ctrl + C) 和貼上 (Ctrl + V) 文字;
查詢和替換文字;
顯示可能的程式碼補全(一個在其他 IDE 裡可能叫做“智慧感知”或者“自動補完”的功能);
更改字型和字號,等等。
最厲害的是,你可以用 IDLE 建立桌面應用。
我們在這兩篇文章中不會開發桌面應用,所以你可以根據喜好來選擇 IDLE 或 Python shell 去執行下面的例子。
Python 中的基本運算
就像你預料的那樣,你能夠直接進行算術操作(你可以在你的所有運算中使用足夠多的括號!),還可以輕鬆地使用 Python 拼接字串。
你還可以將運算結果賦給一個變數,然後在螢幕上顯示它。Python 有一個叫做拼接 (concatenation) 的實用功能——給 print 函式提供一串用逗號分隔的變數和/或字串,它會返回一個由你剛才提供的變數依序構成的句子:
Python 3.6.7 (default, Oct 22 2018, 11:32:17)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license()" for more information.
>>> a =6
>>> b =9
>>> x = b / a
>>> x
1.5
>>> print(b,"divided by", a,"equals", x)
9 divided by 6 equals 1.5
>>>
注意,你可以將不同型別的變數(數字,字串,布林符號等等)混合在一起。當你將一個值賦給一個變數後,你可以隨後更改它的型別,不會有任何問題(因此,Python 被稱為動態型別語言)。
如果你嘗試在靜態型別語言中(如 Java 或 C#)做這件事,它將丟擲一個錯誤。如下圖
學習 Python 的基本操作x = "Now x is a string"
面向物件程式設計的簡單介紹
在面向物件程式設計(OOP)中,程式中的所有實體都會由物件的形式呈現,並且它們可以與其他物件互動。因此,物件擁有屬性,而且大多數物件可以執行動作(這被稱為物件的方法)。
舉個例子:我們來想象一下,建立一個物件“狗”。它可能擁有的一些屬性有 顏色
、 品種
、 年齡
等等,而它可以完成的動作有 叫()
、 吃()
、 睡覺()
,諸如此類。
你可以看到,方法名後面會跟著一對括號,括號當中可能會包含一個或多個引數(向方法中傳遞的值),也有可能什麼都不包含。
我們用 Python 的基本物件型別之一——列表來解釋這些概念。
解釋物件的屬性和方法:Python 中的列表
列表是條目的有序組合,而這些條目所屬的資料型別並不需要相同。我們像下面一樣來使用一對方括號,來建立一個名叫 rockBands
的列表:
你可以向 rockBands
的 append()
方法傳遞條目,來將它新增到列表的尾部,就像下面這樣:
>>> rockBands =[]
>>> rockBands.append("linuxmi")
>>> rockBands.append("linuxidc.com")
>>> rockBands.append("Linux公社www.linuxidc.com")
>>> rockBands.remove("linuxmi")
>>> rockBands.pop(0)
'linuxidc.com'
>>> rockBands.pop(0)
'Linux公社www.linuxidc.com'
>>> rockBands.pop(0)
為了從列表中移除元素,我們可以向 remove()
方法傳遞特定元素,或向 pop()
中傳遞列表中待刪除元素的位置(從 0 開始計數)。
換句話說,我們可以用下面這種方法來從列表中刪除 “linuxmi”:
>>> rockBands.remove("linuxmi")
或者用這種方法:
>>> rockBands.pop(0)
因為已經刪除了linuxmi,所以linuxidc.com變成了在 0 位置的元素,見下圖
如果你輸入了物件的名字,然後在後面輸入了一個點,你可以按 Ctrl + space
來顯示這個物件的可用方法列表。
列出可用的 Python 方法
列表中含有的元素個數是它的一個屬性。它通常被叫做“長度”,你可以通過向內建函式 len
傳遞一個列表作為它的引數來顯示該列表的長度(順便一提,之前的例子中提到的 print 語句,是 Python 的另一個內建函式)。
如果你在 IDLE 中輸入 len
,然後跟上一個不閉合的括號,你會看到這個函式的預設語法:
len(rockBands)
Python 的 len 函式
現在我們來看看列表中的特定條目。它們也有屬性和方法嗎?答案是肯定的。比如,你可以將一個字串條目轉換為大寫形式,並獲取這個字串所包含的字元數量。像下面這樣做:
Python 3.6.7 (default, Oct 22 2018, 11:32:17)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license()" for more information.
>>> rockBands =[]
>>> rockBands.append("linuxmi")
>>> rockBands.append("linuxidc.com")
>>> rockBands.append("Linux公社www.linuxidc.com")
>>> len(rockBands)
3
>>> rockBands[0].upper()
'LINUXMI'
>>> len(rockBands[0])
7
>>>
總結
在這篇文章中,我們簡要介紹了 Python、它的命令列 shell、IDLE,展示瞭如何執行算術運算,如何在變數中儲存資料,如何使用 print
函式在螢幕上重新顯示那些資料(無論是它們本身還是它們的一部分),還通過一個實際的例子解釋了物件的屬性和方法。
下一篇文章中,我們會展示如何使用條件語句和迴圈語句來實現流程控制。我們也會解釋如何編寫一個指令碼來幫助我們完成系統管理任務。
像往常一樣,如果你對這篇文章有什麼問題,可以向我們尋求幫助。你可以使用下面的聯絡表單向我們傳送留言,我們會盡快回復你。
更多詳情見請繼續閱讀下一頁的精彩內容: https://www.linuxidc.com/Linux/2019-03/157488p2.htm