函式關鍵字
python 定義函式使用 def 關鍵字,
函式的定義
python 定義函式的一般格式如下:
def 函式名(引數列表):
函式體
函式引數與作用域
以下是呼叫函式時可使用的正式引數型別:
1.必需引數
必需引數須以正確的順序傳入函式,呼叫時的數量必須和宣告時的一樣。
2.關鍵字引數
關鍵字引數和函式呼叫關係緊密,函式呼叫使用關鍵字引數來確定傳入的引數值。
使用關鍵字引數允許函式呼叫時引數的順序與宣告時不一致,因為 python 直譯器能夠用引數名匹配引數值。
3.預設引數
呼叫函式時,如果沒有傳遞引數,則會使用預設引數。
4.不定長引數
你可能需要乙個函式能處理比當初宣告時更多的引數。這些引數叫做不定長引數。
加了星號 * 的引數會以元組(tuple)的形式匯入,存放所有未命名的變數引數:
def
printinfo
( arg1,
*vartuple )
:"列印任何傳入的引數"
print
("輸出: "
)print
(arg1)
print
(vartuple)
# 呼叫printinfo 函式
printinfo(70,
60,50)
輸出為:
70(60
,50)
加了兩個星號 ** 的引數會以字典的形式匯入:
def
printinfo
( arg1,
**vardict )
:# "列印任何傳入的引數"
print
("輸出: "
)print
(arg1)
print
(vardict)
# 呼叫printinfo 函式
printinfo(
1, a=
2,b=
3)
輸出為:
1
宣告函式時,引數中星號 * 可以單獨出現,但星號 * 後的引數必須用關鍵字傳入:
>>
>
deff
(a,b,
*,c):.
..return a+b+c..
.>>
> f(1,
2,3)
# 報錯
traceback (most recent call last)
: file ""
, line 1,in
typeerror: f(
) takes 2 positional arguments but 3 were given
>>
> f(1,
2,c=3)
# 正常
6>>
>
python 中,程式的變數並不是在哪個位置都可以訪問的,訪問許可權決定於這個變數是在**賦值的。
變數的作用域決定了在哪一部分程式可以訪問哪個特定的變數名稱。python的作用域一共有4種,分別是:
l (local) 區域性作用域
e (enclosing) 閉包函式外的函式中
g (global) 全域性作用域
b (built-in) 內建作用域(內建函式所在模組的範圍)
4. 函式返回值
函式體中 return 語句的結果就是返回值。如果乙個函式沒有 reutrn 語句,其實它有乙個隱含的 return 語句,返回值是 none,型別也是 『nonetype』。
1.指定 return 返回值函式舉例:
def
showplus
(x):
print
(x)return x +
1
num = showplus(6)
add = num +
2print
(add)
輸出結果:
69
2.隱含 return none 舉例:
def
showplus
(x):
print
(x)
num = showplus(6)
print
(num)
print
(type
(num))
輸出結果:
6none
<
class
'nonetype'
>
無論定義的是返回什麼型別,return 只能返回單值,但值可以存在多個元素。
return [1,3,5] 是指返回乙個列表,是乙個列表物件,1,3,5 分別是這個列表的元素。return 1,3,5 看似返回多個值,隱式地被python封裝成了乙個元組返回。
deffn(
):return
3#單值時,返回的是什麼型別
print
(fn())
print
(type
(fn())
)輸出結果:
3<
class
'int'
>
#int 整數型別
def
showlist()
:return[1
,3,5
]#多元素,返回的是什麼型別
print
(type
(showlist())
)print
(showlist())
輸出結果:
<
class
'list'
>[1
,3,5
]#列表型別
def
showlist()
:return(2
,4,6
)#多元素,返回的是什麼型別
print
(type
(showlist())
)print
(showlist())
輸出結果:
<
class
'tuple'
>
#元組型別(2
,4,6
)
def
showlist()
:return2,
4,6#多值時,不指定型別
print
(type
(showlist())
)print
(showlist())
輸出結果:
<
class
'tuple'
>
#預設封裝成元組型別
參考:菜鳥教程, python基礎 任務4
1 關鍵字 是python內建的 具有特殊意義的表示符 2 使用時關鍵字後面不需要括號 3 及結果 help keywords 檢視python系統關鍵字 1 定義函式 def 函式名 引數值 函式體 定義函式 def my abs x if x 0 return x else return x p...
Python基礎任務一
1.任務摘要 環境搭建 a anaconda環境配置 b 直譯器 python初體驗 a print and input python基礎講解 a python變數特性 命名規則 b 注釋方法 c python中 作用 d 學會使用dir 及和help e import使用 f pep8介紹 pyt...
python基礎任務1
環境搭建 a anaconda環境配置 b 直譯器 在編寫 時會得到乙個.py結尾的檔案,要想執行執行此檔案就需要python直譯器。python有多種版本的直譯器 cpython 官方版本的直譯器。這個直譯器是用c語言開發的,所以叫cpython,是使用最廣的python直譯器。ipython 基...