此系列文章的創作初衷是作為讀書過程中的筆記,而非教程類文章。
def
greet()
:print
("hello!"
)def
greetuser
(name)
:print
("hello, "
+ name.title()+
"!")
def
greet()
:"""顯示簡單的問候語"""
print
("hello!"
)
乙個良好的**編寫習慣是,在每個函式頭後都用文件字串的形式說明此函式的功能,就像上面的**一樣。
def
printbookinfo
(bookname, rate)
:print
("book "
+bookname+
" has a rate of "
+rate+
".")
printbookinfo(
"python crash course",4
)
printbookinfo(rate =
4, bookname =
"python crash course"
)
def
printbookinfo
(bookname, rate =4)
:print
("book "
+bookname+
" has a rate of "
+rate+
".")
printbookinfo(
"python crash course"
)
類似於c++,在形參表中必須先列出沒有預設值的形參,再列出有預設值的形參。
f(
list[:
])
deff(
*parameters)
:# do something
這種定義方式會將所有傳入的實參封裝到乙個名為parameters的元組中,即使只有乙個引數時也是如此。注意,不可以增加、刪除或是替換元組中的元素。
def
buildprofile
(first, last,
**otherinfo)
: profile =
profile[
"firstname"
]= first
profile[
"lastname"
]= last
for key, value in otherinfo.items():
profile[key]
= value
print
(profile)
buildprofile(
"albert"
,"einstein"
, field=
"physics"
)
這種方式將所有傳入的鍵-值對封裝到字典中。
存在多種匯入模組的方法:
import module_name
python在執行此行**時,將module_name.py中的所有函式複製到此檔案中。在呼叫函式時,採取 模組.函式名 的方式加以呼叫,具體為:
module_name.function_name(
)
import module_name as m
模組中的函式名並未改變,此時要呼叫module_name中的function_name函式,可以像下面這樣編寫:
m.function_name(
)
from module_name import function_0, function_1, function_2
呼叫模組中的函式時,無需再指定模組名:
function_name(
)
注意:由於無法再使用模組名區分具體函式,當匯入的模組與本檔案中存在同名函式時,本檔案中的函式將會覆蓋模組中的函式(這是因為匯入語句總是在乙個原始檔的開頭部分,這也意味著模組中的函式定義將會位於本檔案的函式定義之前),即便在形參表不同時也是如此。這也說明了python不支援過載函式。
from module_name import function_name as f
from module_name import
*
在使用別人編寫的庫時,不建議採用此做法。這樣做可能導致**長度過長,更重要的是,可能導致函式之間發生覆蓋。推薦的做法是只匯入需要的函式,或者匯入整個模組,然後用模組名指明需要呼叫的函式。 python入門 第8章 切片
1 對list進行切片 小結如下 切面最多可以有三個引數,引數之間使用 來分開,如果第乙個引數不寫,表示從第乙個元素開始,如果第二個引數不寫,表示到最後乙個元素 如果第乙個引數和第二個引數都寫了,那麼取值的時候從索引為第乙個引數開始,到第二個引數索引之間取值,不包含第二個索引對應的值 如果第三個引數...
python入門 第10章 列表生成式
1 生成列表 要生成list 1,2,3,4,5,6,7,8,9,10 我們可以用range 1,11 range 1,11 1,2,3,4,5,6,7,8,9,10 但如果要生成 1x1,2x2,3x3,10x10 怎麼做?方法一是迴圈 l for x in range 1,11 l 1,4,9,...
python入門 第10章 列表生成式
1 生成列表 要生成list 1,2,3,4,5,6,7,8,9,10 我們可以用range 1,11 range 1,11 1,2,3,4,5,6,7,8,9,10 但如果要生成 1x1,2x2,3x3,10x10 怎麼做?方法一是迴圈 l for x in range 1,11 l 1,4,9,...