python3的巢狀函式

2021-09-01 09:20:11 字數 1215 閱讀 5362

背景

最近在學python3

巢狀函式

顧名思義,即使在函式中還有函式,實現了函式的多級巢狀

def test1():

age = 10

print(age)

def test2():

te = 5

print(age)

def test3():

print(te)

test3()

test1()

輸出結果:

10
test2()方法沒有被執行,這是因為任意函式在定義完成之後,需要通過函式名來進行引用呼叫,如果沒有呼叫,那麼該函式永遠不會執行。

def test1():

age = 10

print(age)

def test2():

te = 5

print(age)

def test3():

print(te)

test3()

test2()

test1()

輸出結果:

10

105

還拿上面的例子進行學習。在巢狀函式內部,函式引用變數的時候是一層一層的向外找,同時需要注意**的上下順序,被呼叫的變數不能在呼叫函式的下方定義

age = 18

def func1():

# age = 20 放在上面

def func2():

print(age)

age = 20 #放在下面,其實都是放在func2的上面

func2()

func1()

輸出結果:

traceback (most recent call last):

file "巢狀函式.py", line 13, in func1()

file "巢狀函式.py", line 10, in func1

func2()

file "巢狀函式.py", line 8, in func2

print(age)

nameerror: free variable 'age' referenced before assignment in enclosing scope

利用Python3巢狀列印

巢狀列印小星星 完成5行內容的簡單輸出 分析每行內部的小星星如何處理 定義乙個行的計數器變數 row 1 迴圈while row 5 每一行列印的小星星和當前行數的行號是一致的 定義乙個列的計數器變數 col 1 增加乙個小迴圈,專門用來控制每一列的 星星 控制 while col row prin...

python3函式語法 Python3

python3 degrees 函式 描述degrees 將弧度轉換為角度。語法以下是 degrees 方法的語法 import math math.degrees x 注意 degrees 是不能直接訪問的,需要匯入 math 模組,然後通過 math 靜態物件呼叫該方法。引數x 乙個數值。返回值...

python3函式返回值 Python3

python3 sin 函式 描述sin 返回的x弧度的正弦值。語法以下是 sin 方法的語法 import math math.sin x 注意 sin 是不能直接訪問的,需要匯入 math 模組,然後通過 math 靜態物件呼叫該方法。引數x 乙個數值。返回值返回的x弧度的正弦值,數值在 1 到...