標籤:資料庫 多個 時間 div 字元 tin 介面 建立 初始化
包括如下目錄:
- 第十四章 檔案
- 第十五章 類和對象
- 第十六章 類和函數
- 第十七章 類和方法
- 第18章 繼承
第十四章 檔案
1. 讀和寫
一個檔案需要先開啟,然後再進行讀與寫, 最後把開啟的檔案關閉。
#讀檔案>>> f = open(‘words.txt‘)>>> print f<open file ‘words.txt‘, mode ‘r‘ at 0x7fd74378e4b0>>>> f.readline()‘aa\r\n‘>>> f.close()# 寫檔案>>> f = open(‘sb.txt‘, ‘w‘)>>> print f<open file ‘sb.txt‘, mode ‘w‘ at 0x7fd74378e540>>>> line = "hello, world!\n">>> f.write(line)>>> f.close()>>> exit()
注意:要寫入一個檔案,需要使用 ‘w’模式作為第二個實參開開啟它。如果檔案已經存在,則使用寫入模式開啟時會清除掉舊的資料並重新形如,所以特別注意啊。如果檔案不存在,則建立一個。另外, write的參數是必須是字串。
2,格式操作符
它與c語言中printf()裡面的格式化字串類似的,可以格式化輸出。 %d 用于格式化整數, %g 用于格式化小數,%s 用于格式化字串。
當字串中有一個格式序列時,
>>> print ‘I have %d pens‘ % 12I have 12 pens
當字串中有多個字元序列時, 第十個操作對象就必須是元組。 並且每個格式序列按對應元組中的一個元素。
>>> print ‘In %d years I have spotted %g %s.‘ % (3, 0.1, ‘camels‘)In 3 years I have spotted 0.1 camels.
3. 檔案名稱與路徑
os模組提供了用於操作檔案和目錄的函數, 具體可以查看一下這個模組的相關函數。
4. 捕獲異常
可以使用 try語句來捕獲一個異常,例子如下:
try: fin = open(‘1123.d‘) print ‘開啟成功‘ fin.close()except: print ‘沒有開啟成功,可能檔案不存在\n‘
5. 資料庫: 模組anydbm 提供了介面用於建立和更新資料庫的檔案。 anydbm模組的限制之一是鍵和值都是字串,即它只能儲存字串。 pickle模組可以把幾乎所有類型的對象轉換為適合儲存到資料庫的字串形式, 並可以將字串轉換成為對象。 python將上面這兩個模組封裝起來成為了一個模組,叫做 shelve.
6. 管道 ( os.popen()現在已經廢止了,但是還沒有完全廢止)
任何在字元介面能啟動的程式都可以在python 中通過一個管道來啟動。 它的傳回值和一個開啟的檔案差不多。
>>> cmd = ‘ls -l‘>>> fp = os.popen(cmd)>>> print fp.read()總用量 1156drwxrwxr-x 3 yinheyi yinheyi 4096 Sep 20 17:34 2048-rwxrwxr-x 1 yinheyi yinheyi 8519 Oct 27 20:29 a.out-rw-rw-r-- 1 yinheyi yinheyi 95 Oct 27 20:29 hello.c-rw-rw-r-- 1 yinheyi yinheyi 75 Oct 31 14:26 hello.py-rw-rw-r-- 1 yinheyi yinheyi 140 Oct 31 22:10 main.c-rw-rw-r-- 1 yinheyi yinheyi 218 Oct 31 22:11 Makefile-rw-rw-r-- 1 yinheyi yinheyi 14 Nov 1 09:52 sb.txt-rw-rw-r-- 1 yinheyi yinheyi 214 Nov 1 10:17 sum.pydrwxrwxr-x 4 yinheyi yinheyi 4096 Sep 20 17:18 Tinyhttpd-rw-rw-r-- 1 yinheyi yinheyi 423 Oct 31 20:13 turtle.py-rw-rw-r-- 1 yinheyi yinheyi 1130523 Oct 31 16:43 words.txt>>> print fp.close()
7. 編寫模組:
我們可以把任何包含 pyhon 的代碼的檔案都可以作為模組匯入。 裡面定義了函數的話, 我們就可以調用它。
說明一點:為了模組內的部分沒有必要的代碼被執行, 通常把這部分代碼寫入到如下模式中去:
if __name__ == ‘__main__‘: print ‘hello, world!‘ ……
__name__ 是一個內建變數,當程式啟動時就會被設定, 程式作為指令碼執行, __name__ 的值就是 __main__ ,此時, 下面代碼會被執行。當作為模組被匯入時, 這部分代碼就會被跳過。
第十五章 類和對象
這本書上,這一節講的實在太簡單表面了,,沒有什麼可以作為筆記的;
第十六章 類和函數
1. 什麼是純函數?一個函數它墜子返回一個值之外, 並不修改作為實參傳入的任何對象, 也沒有任何如顯示值或獲得使用者輸入之類的副作用。
2. 什麼是修改器? 有時候用函數修改傳入的參數對象是很有用的。在這種情況下, 修改對調用者是可見的, 這樣工作的函數稱為修改器。
第十七章 類和方法
1. 對於寫在類內部的函數,我們把它稱為方法。
當我們調用一個方法時,直接使用主體與方法名稱就可以了,比如(xiaoming 是一個主體,而h1為一個方法名稱):
class hello(object): def h1(): print ‘hello, world!‘xiaoming = hello()xiaoming.h1()
在方法中, 主體會被賦值到第一個形參上。 依慣來, 方法的互一個形參通常叫做 self。
2. 類的 init 方法
init 方法是一個特殊的方法,當對象初始化時會被調用。它的全名是 __init__。比如:
def __init__(self, hour = 0, minute = 0, second = 0): self.hour = hour self.minute = minute self.second = second
2. 類的 __str__方法
__init__也是一個特殊方法, 它用來返回對象的字串的表達形式。當我們列印對象的結果時, python 會調用__str__方法。定義例如:
def __str__(self): return ‘%d %d %d‘ % (self.hour, self.minute, self.second)
3. 操作符重載
通過定義其它特殊方法, 我們可以為使用者定義型別的各種操作符指定的行為, 比如:當我們定義一個名為 __add__ 方法時, 則可以在時間對象上使用 + 操作符。 其它的操作符都有相應的特殊名字的方法。
4. 多態問題
書中沒有詳細說明,等著再參考其它的學習資料吧。
第18章 繼承
讀《像電腦科學家一樣思考python》——筆記(2/2)