1. 程式人生 > >python基礎注意點(二)

python基礎注意點(二)

 每個模組都有一個__name__屬性,當其值是'__main__'時,表明該模組自身在執行,否則是被引入。

說明:__name__ 與 __main__ 底下是雙下劃線, _ _ 是這樣去掉中間的那個空格。

內建的函式 dir() 可以找到模組內定義的所有名稱。以一個字串列表的形式返回:

如果沒有給定引數,那麼 dir() 函式會羅列出當前定義的所有名稱

目錄只有包含一個叫做 __init__.py 的檔案才會被認作是一個包,主要是為了避免一些濫俗的名字(比如叫做 string)不小心的影響搜尋路徑中的有效模組。

最簡單的情況,放一個空的 :file:__init__.py就可以了。當然這個檔案中也可以包含一些初始化程式碼或者為(將在後面介紹的) __all__變數賦值。

使用者可以每次只匯入一個包裡面的特定模組,

在需要匯入包中所有模組時,import* 還是有意義的。

只需要在 __init__.py 檔案裡面將所有模組名定義在列表 __ALL__ 中就能解決你最後的擔憂。

Python兩種輸出值的方式: 表示式語句和 print() 函式。

第三種方式是使用檔案物件的 write() 方法,標準輸出檔案可以用 sys.stdout 引用。

如果你希望輸出的形式更加多樣,可以使用 str.format() 函式來格式化輸出值。

如果你希望將輸出的值轉成字串,可以使用 repr() 或 str() 函式來實現。

str(): 函式返回一個使用者易讀的表達形式。

repr(): 產生一個直譯器易讀的表達形式。

str.format() 比較新的函式,python格式化輸出

str.format() 的基本使用如下:

>>> print('{}網址: "{}!"'.format('菜鳥教程', 'www.runoob.com'))

菜鳥教程網址: "www.runoob.com!"

括號及其裡面的字元 (稱作格式化欄位) 將會被 format() 中的引數替換。

在括號中的數字用於指向傳入物件在 format() 中的位置,如下所示:

>>> print('{0} 和 {1}'.format('Google', 'Runoob'))

Google 和 Runoob

>>> print('{1} 和 {0}'.format('Google', 'Runoob'))

Runoob 和 Google

如果在 format() 中使用了關鍵字引數, 那麼它們的值會指向使用該名字的引數。

>>> print('{name}網址: {site}'.format(name='菜鳥教程', site='www.runoob.com'))

菜鳥教程網址: www.runoob.com

位置及關鍵字引數可以任意的結合:

Python提供了 input() 內建函式從標準輸入讀入一行文字,預設的標準輸入是鍵盤。

input 可以接收一個Python表示式作為輸入,並將運算結果返回。

open(filename, mode)

f.read()

為了讀取一個檔案的內容,呼叫 f.read(size), 這將讀取一定數目的資料, 然後作為字串或位元組物件返回。

size 是一個可選的數字型別的引數。 當 size 被忽略了或者為負, 那麼該檔案的所有內容都將被讀取並且返回

f.readline()

f.readline() 會從檔案中讀取單獨的一行。換行符為 '\n'。f.readline() 如果返回一個空字串, 說明已經已經讀取到最後一行。

f.readlines() 將返回該檔案中包含的所有行。

如果設定可選引數 sizehint, 則讀取指定長度的位元組, 並且將這些位元組按行分割。

f.write(string) 將 string 寫入到檔案中, 然後返回寫入的字元數。

如果要寫入一些不是字串的東西, 那麼將需要先進行轉換:

f.tell() 返回檔案物件當前所處的位置, 它是從檔案開頭開始算起的位元組數。

如果要改變檔案當前的位置, 可以使用 f.seek(offset, from_what) 函式。

在文字檔案中 (那些開啟檔案的模式下沒有 b 的), 只會相對於檔案起始位置進行定位。

當你處理完一個檔案後, 呼叫 f.close() 來關閉檔案並釋放系統的資源,如果嘗試再呼叫該檔案,則會丟擲異常

python的pickle模組實現了基本的資料序列和反序列化。

通過pickle模組的序列化操作我們能夠將程式中執行的物件資訊儲存到檔案中去,永久儲存。

通過pickle模組的反序列化操作,我們能夠從檔案中建立上一次程式儲存的物件。

基本介面:

pickle.dump(obj, file, [,protocol])

有了 pickle 這個物件, 就能對 file 以讀取的形式開啟:

x = pickle.load(file)

os 模組提供了非常豐富的方法用來處理檔案和目錄

try語句按照如下方式工作;

首先,執行try子句(在關鍵字try和關鍵字except之間的語句)

如果沒有異常發生,忽略except子句,try子句執行後結束。

如果在執行try子句的過程中發生了異常,那麼try子句餘下的部分將被忽略。如果異常的型別和 except 之後的名稱相符,那麼對應的except子句將被執行。最後執行 try 語句之後的程式碼。

如果一個異常沒有與任何的except匹配,那麼這個異常將會傳遞給上層的try中。

一個 try 語句可能包含多個except子句,分別來處理不同的特定的異常。最多隻有一個分支會被執行。

處理程式將只針對對應的try子句中的異常進行處理,而不是其他的 try 的處理程式中的異常。

最後一個except子句可以忽略異常的名稱,它將被當作萬用字元使用。你可以使用這種方法列印一個錯誤資訊,然後再次把異常丟擲。

try except 語句還有一個可選的else子句,如果使用這個子句,那麼必須放在所有的except子句之後。這個子句將在try子句沒有發生任何異常的時候執行。

Python 使用 raise 語句丟擲一個指定的異常。

raise NameError('HiThere')

不管 try 子句裡面有沒有發生異常,finally 子句都會執行。

關鍵詞 with 語句就可以保證諸如檔案之類的物件在使用完之後一定會正確的執行他的清理方法