函式是對動作或者功能的封裝;定義了之後可以在任何需要它的地方呼叫函式返回值
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...