Python自娛 11 函式

2022-09-20 06:48:15 字數 1908 閱讀 6828

函式是對動作或者功能的封裝;定義了之後可以在任何需要它的地方呼叫

函式返回值

1、沒有返回值

- 不寫return

- 只寫return,結束

- return none 不常用

2、返回1個值

- 可以返回任何資料型別

- 只要返回舊可以接收到

- 如果在乙個程式中有多個return,只執行乙個

3、返回多個值

- 多個返回值用多個變數接收,有多少就用多少

- 用乙個變數接收多個返回值,得到的是元組

引數
- 沒有引數:函式和呼叫函式是括號裡不寫內容

- 有乙個參:傳什麼是什麼

- 有多個參:位置引數

在實參的角度上

- 1.位置引數:按位置傳,在最前邊

- 2.關鍵字引數:按關鍵字傳,在位置引數後

- 3.混合引數:可以混用,但必須先按位置傳

在形參角度上

- 1.位置引數必須傳,有幾個傳幾個

- 2.預設引數,可以不傳.如果傳就用傳的.位置在前,預設在後

| def regist(name, age, ***="男")

| print(name, age,***)

| regist(xx, yy, zz)

- 3.動態引數:可以接收任意多個引數

| 引數前邊要加*號

| *args不能接收關鍵字引數,元組

| **kwargs可以接收關鍵字引數,字典

| 順序:位置引數,*args,預設引數,**kwargs

| 預設引數作為形參的時候,放在*args和**kwargs中間

| 預設引數作為實參的時候也一樣,並且只能用關鍵字引數形式傳遞

| 在形參位置*是聚合,實參位置是打散

函式的高階
內建命名空間--phthon直譯器;

內建的名字在啟動直譯器的時候被載入進記憶體中

全域性命名空間--寫的**但不是函式中的**。在程式從上倒下執行的過程中一次載入進記憶體的,放置了我們設定的所有變數名和函式名

區域性命名空間--函式;就是被內部定義的名字,當呼叫函式的時候,才會產生這個命名空間,隨著函式執行的結束這個命名空間就消失了

globls()可以檢視全域性作用域中的所有內容

locals()檢視當前作用域中的所有內容

對於不可變資料型別,在區域性可檢視全域性作用於中的變數,不能修改.修改要globls宣告

globals永遠列印全域性;locals輸出宣告根據所在位置

nonlocal引入區域性中離它最近的外層變數,修改只會影響離當前函式最近一層的區域性變數

函式名是第一類物件;函式名就是記憶體位址;函式名可以作為容器型別的元素;函式名可以賦值;函式名可以作為函式的引數

函式的巢狀使用
def max(a, b):

return a if a?b else b

def the max(x, y, z):

c = max(x, y)

return max(c, z)

定義;內部函式可以使用外部函式的變數

Python自娛 模組和包

1.什麼是模組 2.模組的匯入和使用 模組匯入流程 先從sys.modules裡檢視是否已經被匯入 如果沒有匯入,就依據sys.path路徑去尋找模組 找到了就匯入 建立這個模組的命名空間 執行檔案,把檔案中的名字都放到命名空間裡 模組匯入的方法 import datetime as dt from...

Python自娛 8 集合

集合是可變資料型別 它裡邊的元素必須是不可變資料型別 set就是不存value的字典,只存key set中的元素是不能重複的,無序的,可雜湊的 因為無序,所以沒有索引 雜湊的特點就是雜湊,所以set內部是無序的 建立集合的方式set set set set set set 增刪改查set.add 正...

Python自娛 9 元組

元組不可變資料型別 元組的元素可變 孫子 根據資料型別決定 元組是不可變的列表,唯讀列表,有索引,可查詢,可迴圈,可切片 元組只有乙個元素的時候要加逗號,否則type不是元組 空元組用tuple 表示 增刪改查tup tup1 tup2 元組不支援修改,可以連線組合方式增加 tup tup x de...