本文介紹了如何運行一個Python程式,有價值的資訊不多,羅列如下:
1. 第一種方式叫Interactive Coding,就是在Python的shell下輸入語句。這樣做的代價是代碼一被輸入就會被執行,可以用來快速的做單元測試(比如想知道某句代碼應該怎 麼寫來滿足需求,可以用這種模式)。這裡需要注意的是以下幾點:a) 這種模式下不需輸入print語句,直接輸入運算式或變數,就能列印出運算式和變數的值 b) 這種模式下輸入的代碼不能帶有前置空格,也就是不能以空格打頭 c) 如何輸入一個複合陳述式,也就是這是一段代碼,不是一句。當我們輸入一段複合陳述式時,Python shell的prompt會從 >>> 變成 ... ,然後我們可以繼續輸入,需要記住的是,當語句輸入完時,要輸入一個空白斷行符號,告訴Python shell,這個語句結束了,方可!
2. 第二種方式就是代碼寫在一個檔案裡面。首先我們可以用python <filename>來運行這個python程式,記住python的程式要把副檔名取為.py;其次,UNIX/Linux上特有的,和 bash一樣,在代碼的第一行,輸入#!/usr/bin/python ,這樣,直接把這個檔案附上可執行許可權,就可以直接執行這個檔案了,和bash編程一樣;再次,可以把代碼的第一行寫成這樣:#! /usr/bin/env python ,和上一次不一樣的是,這樣寫的話,env命令就會在當前環境中尋找python可執行程式,不需要我們將python可執行檔的路徑hard code到代碼中,這也是UNIX/Linux中特有的。
3. 第三種方式是直接在windows下雙擊.py檔案,這就不說了,我們做python基本都是在Linux下
4. imports & reloads 。這個很重要,import命令可以直接匯入一個py檔案,具體的搜尋路徑在第15章將描述。如import script4,注意,這裡script4不要寫成script4.py,import會自動尋找副檔名為py的python檔案。在Python中,每 個py檔案都稱為module,這些檔案中的變數、函數等都稱為該module中的attribute,通過import,我們就可以將這個module 載入,然後訪問其中的attributes。需要注意的是,import的動作只會做一次,也就是說,如果我們import script4後,就算這個script4被修改了,我們再次執行import script4的話也不會有任何反應,因為Python認為import是一個非常expensive的動作,所以只會做一次!如果要python重新載 入一個已經import過的module的話,請用reload,文法是這樣的:reload(script4),注意,這裡reload要以括弧的方式 引用script4,因為reload是一個function,而import是一個statement!reload就會重新載入script4,不過 在reload的時候,要求script4一定要被import過!
5. 訪問module、attributes。import了一個module之後,就可以訪問module中的attribute,方式有兩種,如下(title是myfile.py中的一個變數):
% python # Start Python.
>>> import myfile # Run file; load module as a whole.
>>> print myfile.title # Use its attribute names: `.' to qualify.
% python # Start Python.
>>> from myfile import title # Run file; copy its names.
>>> print title #Use name directly: no need to qualify.
都看到了,第一種就是用Full Qualify的方式來引用;第二種通過關鍵字from,直接將title引用。
6. import module之後,可以用dir函數查看到這個module中所有的attribute,如:
>>> dir(threenames)
['__builtins__', '__doc__', '__file__', '__name__', 'a', 'b', 'c']
threenames是threenames.py,已經被import,用dir就可以看到裡面的attribute,用兩個underscore標識的是內建的attribute,每個module都會被python預置這些attribute,和C++很像。
7. Embedded Calls. Python可以被內建在很多地方,比如python的代碼被內建在資料庫中、網頁中、其他程式碼中等等。這裡有個C調用Python的例子:
#include <Python.h>
...
Py_Initialize( );
PyRun_SimpleString("x = brave + sir + robin");
只要include了Python.h,就可以用上面的函數來執行python的代碼。簡言之,python和很多其他的語言都有很好的相容性。