第9章 資料結構
函式是重用的程式段。類和模組、包也是。它們是python系統的層次構造工具。
沒有返回值的return語句等價於return none
,除非你提供你自己的return語句,每個函式都在結尾暗含有return none
語句。
docstrings
python有乙個很奇妙的特性,稱為文件字串
,它通常被簡稱為docstrings
。docstrings是乙個重要的工具,由於它幫助你的程式文件更加簡單易懂,你應該盡量使用它。你甚至可以在程式執行的時候,從函式恢復文件字串!
sys模組包含了與python直譯器和它的環境有關的函式。當python執行
import sys
語句的時候,它在sys.path變數中所列目錄中尋找sys.py模組。如果找到了這個檔案,這個模組的主塊中的語句將被執行,然後這個模組將能夠被你使用 。注意,初始化過程僅在我們
第一次
輸入模組的時候進行。sys.argv變數是乙個字串的列表,包含了命令列引數的列表,即我們使用命令列傳遞給程式的引數。記住,指令碼的名稱總是sys.argv列表的第乙個引數。
sys.path包含輸入模組的目錄名列表。sys.path的第乙個字串是空的,這個空的字串表示當前目錄也是sys.path的一部分,這與
pythonpath環境變數
是相同的。這意味著你可以直接輸入位於當前目錄的模組。否則,你得把你的模組放在sys.path所列的目錄之一。
# use_sys.py
import sys
print
"the command line arguments are:'
for i in sys.argv:
print i
print '\n\nthe pythonpath is', sys.path, '\n'
# use_name.py
if __name__ == "__main__":
print
'this program is being run by itself.'
else:
print
'i am being imported from another module.'
輸出:
$ python using_nam e.py
this program is being run by itself
$ python
>>>
import using_name
i am being im ported from another m odule
如果它是'__m ain__'
,這說明這個模組被使用者單獨執行,我們可以進行相應的恰當操作。
在python中有三種內建的資料結構——列表、元組和字典。
序列:
列表、元組和字串都是序列。
序列的兩個主要特點是索引操作符和切片操作符。索引操作符讓我們可以從序列中抓取乙個特定專案。切片操作符讓我們能夠獲取序列的乙個切片,即一部分序列。
引用:當我們建立乙個物件並給它賦乙個變數的時候,這個變數僅僅 引用 那個物件,而不是表示這個物件本身!
也就是說,變數名指向你計算機中儲存那個物件的記憶體,它等同於指標。而這被》稱作名稱到物件的繫結。
在python中,變數無型別,物件有型別,因為變數只是指向物件的引用。而python也因為對物件型別的強調,被認為是一種強型別語言。記住列表的賦值語句不建立拷貝,得使用切片操作符來建立序列的拷貝。
更多字串的內容
# str_method.py
name = 'swaroop'
# this is a string object
if name.startwith('swa'):
print
'yes, the string starts with "swa".'
if'a'
in name:
print
'yes, it contains the string "a".'
if name.find('war') != -1:
print
'yes, it contains the string "war".'
delimiter = '_*_'
mylist = ['brazil', 'russia', 'india', 'china']
print delimiter.join(mylist)
$ python str_m ethods.py
yes, the string starts with
"swa"
yes, it contains the string "a"
yes, it contains the string "war"
brazil_*_russia_*_india_*_china
Python 第二部分 函式
目錄前言 函式是工具,呼叫的過程即使用工具的過程,因此函式名為動詞為好。先定義再呼叫。一般格式為 def 函式名 引數 好的函式名能看出其功能 段 段可適當的注釋 段 return 返回值 函式名 呼叫函式 乙個函式無非三種情況 有引數的情況 def max2 x,y if x y print x ...
Web API 第二部分
web api 第二部分 元素偏移量 offset element.offsettop element.offsetleft element.offsetwidth 可以得到元素的大小 寬度和高度 是包含padding border width element.offsetheight elemen...
redux 第二部分
redux 的使用方法,為什麼使用 action.js 檔案,進行優化 將其分開,然後我們通過工廠函式的每次返回不同的物件,由於引數是固定的,每次返回的都是事件型別和事件資料,所以我們可以使用乙個函式,通過其返回值來返回乙個物件,讓後傳遞給 action 我們的 reducer 函式有兩個引數,引數...