Day14零基礎入門python第020講課後測試題及答案:內嵌函數和閉包

0.如果希望在函數中改變全局變量的值,應該使用什麼關鍵字?
   global
1.在嵌套的函數中,如果希望在內部函數修改外部函數的局部變量,應該使用什麼關鍵字?
   nonlocal
2.python的函數可以嵌套,但是要注意一下訪問的作用域問題哦,請問一下代碼存在什麼問題?
   def outside():
         print('I am outside!')
         def inside():
               print('I am inside!')

   inside()

訪問的作用域問題,outside可以調用inside,但是不能從外面或者別的函數體裏調用

3.請問爲什麼代碼A沒有報錯,但是代碼B卻報錯了?贏如何修改

代碼B改爲:

因爲代碼B中,變量var沒有被定義就拿來使用,所以報錯
outside()函數中有一個var,inside()函數中也有一個var,python爲了保護變量的作用域,故將outside()的var變量屏蔽起來,因此此時是無法訪問到外層的var變量的

4.請問如何訪問funIn()呢?
def funOut():
      def funIn():
            print('賓果!你成功訪問到我啦!')
      return funIn()


直接訪問funOut(),因爲返回的是funIn()函數

5.請問如何訪問funIn()呢?
def funOut():
      def funIn():
            print('賓果!你成功訪問到我啦!')
      return funIn
這裏需要用funOut()()訪問
也可以曲線救國,go = funOut() ,然後訪問go()

6.以下是閉包的一個例子,請你目測會打印什麼內容?

動動手:
0.統計下邊這個長字符串中各個字符出現的次數並找到小甲魚送給大家的一句話

1.請用已經學過的只是編寫程序,找出小甲魚藏在下邊這個長字符串中的密碼,密碼的埋藏點符合以下規律:
    a)每位密碼爲單個小寫字母
    b)每位密碼的左右兩邊均有且只有三個大寫字母

參考:

https://blog.csdn.net/qq_41556318/article/details/84138388

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章