使用def :來定義函式,通過return返回函式值
在python中,函式的引數可以有預設值,也支援使用可變引數,所以python並不需要像其他語言一樣支援函式的過載,因為我們在定義乙個函式的時候可以讓它有多種不同的使用方式。
同時,由於python沒有函式過載的概念,如果同一.py檔案出現了兩個同名的函式,那麼後面定義的函式將會覆蓋前面的,這個時候就需要用模組來管理函式。
python中每乙個檔案(.py)代表了乙個模組,類似多人開發時,每個人都有屬於自己的資料夾。在使用不同模組的函式時,我們通過import匯入指定模組中的函式,即可區分。
可以通過如下**來在同一檔案中區分不同模組的相同函式名的函式:
import module1 as m1
import module2 as m2
m1.foo(
)ma.foo(
)
在呼叫模組中的函式時,如果模組中除了定義函式之外,還有可執行的**,如print()等,python直譯器也會執行,所以為了避免這種情況的發生,將除了定義函式的其他**放入如下條件:
if __name__ =
'__main__'
#__name__是python中的隱藏變數,代表了模組的名字
只有當直接執行該模組時,它的名字才是__main__,所以在呼叫時,if語句下的**不會被執行。
python查詢變數是,按照下圖從左到右的順序查詢:
**示例:
def
foo():
b ='hello'
#變數b是區域性變數,區域性作用域是函式foo()
#python中可以在函式內部再定義函式(函式的巢狀關係)
defbar()
: c =
true
#c是區域性變數,只能在bar()被訪問,foo()函式不能訪問
print
(a)print
(b)#bar()函式屬於變數b的巢狀作用域,可以被訪問到
print
(c) bar(
)if __name__ ==
'__main__'
: a =
100#a是全域性變數
foo(
)
如果想要通過函式修改全域性變數的值,必須使用global關鍵字來指示。
def
foo():
global a
a =200print
(a)if __name__ ==
'__main__'
: a =
100 foo(
)print
(a)#結果仍為200
同樣,如果希望函式內部可以修改巢狀作用域中的變數,可以使用nonlocal關鍵字。
在實際開發中,應儘量減少全域性變數的使用。
從現在開始,python**可以用如下格式進行書寫了:
def
main()
#在這裡輸入**
pass
#空命令,沒有任何意義,為了保持結構完整
if __name__ ==
'__main__'
: main(
)
自學python100天 D2 語言元素
對於每個變數我們需要給它取乙個名字,就如同我們每個人都有屬於自己的響亮的名字一樣。在python中,變數命名需要遵循以下這些必須遵守硬性規則和強烈建議遵守的非硬性規則。pep 8要求 a int input a b int input b print d d d a,b,a b print d d ...
python100天 1 7天內容輸出
一 python的基礎了解 python特點上手快和開源。然後因為直譯器原因天生就好移植。缺點就是 執行效率底了,而且 無法加密。python應用場景很多,我學習的目的是用於自動化測試。二 語言特性 變數型別 整型 浮點 字串 布林 複數 命名規則 python大小寫敏感,不能以數字開頭。pep 8...
菜鳥教程Python100例 筆記
練習例項74 元組強制轉為list列表 練習例項76 函式名做引數傳遞 usr bin python print hello,world a 123 b 456 stra abc strb def strc a,b,c strd d e f stre abc def ghi strf gkl mno...