Python函數補充

Python函數補充

函數的嵌套調用

實例:

在這裏插入圖片描述
作用域

作用域指的是變量生效的區域,在Python中一共有兩種作用域:
1、全局作用域:

  • 全局作用域在程序執行時創建,在程序執行結束時銷燬
  • 所有函數以外的區域都是全局作用域
  • 在全局作用域中定義的變量,都屬於全局變量,全局變量可以在程序的任意位置被訪問

2.函數作用域

函數作用域在函數調用時創建,在調用結束時銷燬

  • 函數每調用一次就會產生一個新的函數作用域
  • 在函數作用域中定義的變量,都是局部變量,它只能在函數內部被訪問

在這裏插入圖片描述
在這裏插入圖片描述
變量的查找

  • 當我們使用變量時,會優先在當前作用域中尋找該變量,如果有則使用,
  • 如果沒有則繼續去上一級作用域中尋找,如果有則使用,
  • 如果依然沒有則繼續去上一級作用域中尋找,以此類推
    直到找到全局作用域,依然沒有找到,則會拋出異常
    NameError: name ‘a’ is not defined

實例:

在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
遞歸函數:
一個函數的內部可以調用其他函數。但是,如果一個函數在內部不調用其它的函數,而是自己本身的話,這個函數就是遞歸函數。

在這裏插入圖片描述
在這裏插入圖片描述
練習
1、創建一個函數 power 來爲任意數字做冪運算 n ** i

在這裏插入圖片描述
2.創建一個函數,用來檢查一個任意的字符串是否是迴文字符串,如果是返回True,否則返回False。
(迴文字符串,字符串從前往後念和從後往前念是一樣的)

在這裏插入圖片描述
匿名函數:

匿名函數就是沒有名稱的函數,也就是不再使用def語句定義的函數。如果要聲明匿名函數,則需要使用lambda關鍵字,匿名函數的聲明格式如下所示:

lambda [arg1 [,arg2,…argn]]:expression

在這裏插入圖片描述

注意:
使用Lambda聲明的匿名函數能接收任何數量的參數,但只能返回一個表達式的值。匿名函數不能直接調用print,因爲lambda需要一個表達式。

隨機數函數:

random.random()用於生成一個0到1的隨機浮點數,0<=n<=1.0

在這裏插入圖片描述
random.uniform(a,b)
返回a,b之間的隨機浮點數,範圍[a,b]或[a,b]取決於四捨五入,a不一定要比b小。

在這裏插入圖片描述

random.randint(a,b)
返回a,b之間的整數,範圍[a,b],注意:傳入參數必須是整數,a一定要比b小。

在這裏插入圖片描述
random.randrang([start], stop[, step])
返回有個區間內的整數,可以設置step。只能傳入整數, random.randrange(10,100,2) ,結果相當於從[10, 12, 14, 16, … 96, 98]序列中獲取一個隨機數。

random.shuffle(x)
shuffle() 方法將序列的所有元素隨機排序。俗稱爲洗牌。

在這裏插入圖片描述
random.sample(sequence,k)
從指定序列中隨機獲取k個元素作爲一個片段返回,sample函數不會修改原有序列

在這裏插入圖片描述

在這裏插入圖片描述

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