第3課 模組
1、模組(module)
python中乙個.py檔案就是乙個模組,可以呼叫其它檔案中的程式。
例:first.py
def laugh():print '哈哈哈哈哈'
second.py
1import
first
2for i in range(5):
3 first.laugh()
2、搜尋路徑
python會按照如下順序搜尋它需要的模組
1)程式所在資料夾;2)pythonpath中包括的路徑;3)標準庫安裝路徑
3、模組包
將功能類似的模組放在乙個資料夾中,如this_dir,構成1個模組包,可以通過
import this_dir.module
引入想要的模組
4、python中還有其它引入方式:
import a as b #引入模組a,並重命名為b
from a import function #引入模組a中的物件function,使用物件時不用再說明模組,直接用function即可
from a import * #引入模組a中所有的物件,使用物件時不用再說明模組,直接使用物件即可,不用再a.物件
這樣方便以後程式的書寫
模組包之間的模組相互引用,與上述相同
from packagea import a或者
import packagea.a
第4課 函式的引數
1、關鍵字傳遞:根據引數的名字傳遞引數,關鍵字傳遞不遵守位置對應關係,如:
def test(a,b,c):return a+b+c
print test(a=1,b=2,c=3)
關鍵字傳遞和值傳遞可以混用,但值傳遞引數要放在關鍵字傳遞的前面,且混合時是按照順序的,如下面的1指定傳給a:
print test(1,b=1,c=2)
這樣寫會報錯
def test(a,b,c):print a,b,c
return a+b+c
print test(1,a=2,b=3)
2、引數的預設值
定義函式時,使用形如a=19的方式,可以給引數賦予預設值(default)。如果該引數沒傳值,將使用該預設值。
def f(a,b,c=10):returna+b+c
print(f(3,2))
print(f(3,2,1))
輸出:15
6
在第一次呼叫函式f時, c沒有被賦值,c將使用預設值10.
第二次呼叫函式的時候,c被賦值為1,不再使用預設值。
有預設值的函式引數只能放在引數的最後:如 def(x,y=1)有效,def(y=1,x)無效
3、包裹(package)值傳遞
建立函式時,有時候不確定有多少個引數,此時包裹值傳遞會有很大用處
例1:包裹位置傳遞1def func(*name):
2print
name
3 func(1)
4 func(2,3,4,5)
在func的引數列表中,所有的引數被name收集,根據位置集成為元組,為了提醒python,name是包裹值傳遞的元組名,要在前面加*
例2:包裹關鍵字傳遞def func1(**dict):
type(dict)
dict
func1(a=1,b=2)
func1(a=1,b=2,c=3)
輸出:
在func1中,所有的引數被dict收集,集成為乙個字典,為了提醒python,dict是包裹值傳遞的字典名,要在前面加**
4、解包裹
deffunc(a,b,c):
a,b,c
args = (1,3,4)
dict =
func(*args)
func(**dict)
輸出:1 3 4
1 2 3
傳遞元組時,讓元組的每個引數對應乙個位置引數,呼叫func時,引數前面加* ,是為了提醒python,把args分割為三個資料,分別傳給a,b,c
傳遞字典,把字典的值作為關鍵字傳給函式引數
5、定義或者呼叫引數時,引數的幾種傳遞方式可以混合,基本原則是,先位置(值傳遞),再關鍵字,再包裹位置,再包裹關鍵字
python基礎 第5天
推導式建立序列 推導式是從乙個或者多個迭代器快速建立序列的一種方法。它可以將迴圈和條件判斷結合,從而避免冗長的 推導式是典型的python風格,會使用它代表你已經超過python初學者的水平。列表推導式 列表推導式生我列表物件,語法如下 表示式 for item in 可迭代物件 或者 字典推導式 ...
python第5天學習
函式以def開頭,後面接函式名和圓括號 函式執行的 以冒號為起始,並且縮排。return結束函式選擇返回乙個值給呼叫方不用表示式return相當於返回none。可以沒有返回值。def function d ddd return c 函式的呼叫 temp function s wemp是s print...
學習Python第5天
字串的定義 轉義字元 描述 反斜槓符號 單引號 雙引號 n 換行 t 橫向製表符 tab r 回車print let s go let s go print let s go let s go print c now c now print c program files intel wifi he...