- 寫給程序員的Python教程
- (挪)羅伯特·斯莫爾希雷 (美)奧斯汀·賓厄姆
- 817字
- 2020-07-10 16:09:12
本書的排版約定
本書中的代碼示例以以下字體顯示:
>>> def square(x):
... return x * x
...
一些實例代碼保存在文件中,其他的例如上面的代碼來自于交互式Python會話。在這種交互的情況下,我們會包含Python會話中的提示,如三箭頭>>>和三點…提示。你不需要鍵入這些箭頭或點。同樣,對于操作系統的shell命令,在Linux、macOS、類UNIX系統以及一些對于手頭的任務不重要的特定操作系統上,我們將使用一個提示符$(字體原因,導致全書字形有異):
$ python3 words.py
在這種情況下,你無須輸入$字符。
對于特定的Windows命令,我們將在最前面使用一個大于號提示:
> python words.py
同樣,這里不需要輸入>字符。對于需要放置在文件中,而不是以交互方式輸入的代碼塊,我們將不加任何前置提示,直接顯示代碼:
def write_sequence(filename, num):
"""將Recaman序列寫入文本文件"""
with open(filename, mode='wt', encoding='utf-8') as f:
f.writelines("{0}\n".format(r)
for r in islice(sequence(), num + 1))
我們努力確保書中的代碼行足夠短,以便每個邏輯代碼行對應于書中的單一實體代碼行。然而,發布到不同設備上的電子書的格式可能變幻莫測,并且偶爾的長行代碼也是有必要的,這意味著我們不能保證代碼不換行。
>>> print("This is a single line of code which is very long. Too long, in fact, to fit on a single physical line of code in the book.")
如果在上面引用的字符串中的行末尾看到一個反斜杠,它不是代碼的一部分,不應該輸入。
偶爾,我們也會為代碼行編號,便于我們可以從下面的敘述中輕松地引用它們。這些行號不應作為代碼的一部分輸入。編號的代碼塊如下所示:
01. def write_grayscale(filename, pixels):
02. height = len(pixels)
03. width = len(pixels[0])
04.
05. with open(filename, 'wb') as bmp:
06. # BMP文件頭
07. bmp.write(b'BM')
08. # 接下來的4個字節將作為32位的小端整數保存文件大小
09. # 現在用零占位
10. size_bookmark = bmp.tell()
11. bmp.write(b'\x00\x00\x00\x00')
有時候,我們需要展示不完整的代碼段。向現有代碼塊添加代碼,或者說想讓代碼塊的結構更清晰而不重復代碼塊中的所有存在的內容時,可以展示不完整的代碼段。在這種情況下,我們使用#...的Python注釋來表示省略的代碼:
class Flight:
# ...
def make_boarding_cards(self, card_printer):
for passenger, seat in sorted(self._passenger_seats()):
card_printer(passenger, seat, self.number(),
self.aircraft_model())
這意味著在make_boarding_cards()
函數之前,Flight
類塊中已經存在一些其他的代碼了。
最后,在本書中,我們將使用帶有空括號的標識符來引用一個函數的標識符,就像前面段落中引用make_boarding_cards()
一樣。
推薦閱讀
- Mastering Selenium WebDriver
- 架構不再難(全5冊)
- Learning Data Mining with Python
- WordPress Plugin Development Cookbook(Second Edition)
- 碼上行動:用ChatGPT學會Python編程
- Java程序設計
- HTML5從入門到精通(第4版)
- Managing Microsoft Hybrid Clouds
- Android Sensor Programming By Example
- OpenCV Android Programming By Example
- Machine Learning for OpenCV
- 計算機組裝與維護(第二版)
- Swift High Performance
- Python Linux系統管理與自動化運維
- Flutter之旅