網站首頁 編程語言 正文
1. python函數
1.1 函數的作用
- 函數是組織好的,可重復使用的,用來實現單一或相關聯功能的代碼段
- 函數能提高應用的模塊性和代碼的重復利用率
- python 內置函數:https://docs.python.org/zh-cn/3.10/library/functions.html
1.2 函數定義
- def:函數定義關鍵詞
- function_name:函數名稱
- ():參數列表放置的位置,可以為空
- parameter_list:可選,指定向函數中傳遞的參數
- comments:可選,為函數指定注釋
- function_body:可選,指定函數體
def function_name([parameter_list]): [''' comments '''] [function_body]
定義函數的注意事項:
縮進:python 是通過嚴格的縮進來判斷代碼塊兒
- 函數體和注釋相對于 def 關鍵字必須保持一定的縮進,一般都是 4 個空格
- pycharm 自動格式化快捷鍵:
ctrl+alt+L
定義空函數
- 使用
pass
語句占位- 寫函數注釋 comments、
1.3 函數調用
- function_name:函數名稱
- parameter_value:可選,指定各個參數的值
function_name([parameter_value])
1.4 函數的參數
1.4.1 參數的傳遞
- 形式參數:定義函數時,函數名稱后面括號中的參數
- 實際參數:調用函數時,函數名稱后面括號中的參數
# a, b, c 為形式參數 def demo_func(a, b, c): print(a, b, c) # 1, 2, 3 為實際參數 demo_func(1, 2, 3)
1.4.2 參數類型
1.4.2.1 位置參數(必備參數)
- 數量必須與定義時一致
- 位置必須與定義時一致
def demo_func(a, b, c): print(a, b, c) # 1 賦值給 a, 2 賦值給 b, 3 賦值給 c demo_func(1, 2, 3)
1.4.2.2 關鍵字參數
- 使用形式參數的名字確定輸入的參數值
- 不需要與形式參數的位置完全一致
def demo_func(a, b, c): print(a, b, c) demo_func(a=1, b=2, c=3)
1.4.2.3可變參數
- 可變參數也稱為不定長參數
- 傳入函數中實際參數可以是任意多個
- 常見形式
*args
**kwargs
1.4.2.3.1 *args
- 接收任意多個實際參數,并將其放到一個元組中
- 使用已經存在的列表或元組作為函數的可變參數,可以在列表的名稱前加
*
def print_language(*args): print(args) print_language("python", "java", "php", "go") params = ["python", "java", "php", "go"] print_language(*params)
1.4.2.3.2 **kwargs
- 接收任意多個類似關鍵字參數一樣顯式賦值的實際參數,并將其放到一個字典中
-
使用已經存在字典作為函數的可變參數,可以在字典的名稱前加
**
def print_info(**kwargs): print(kwargs) print_info(Tom=18, Jim=20, Lily=12) params = {'Tom':18, 'Jim':20, 'Lily':12} print_language(**params)
1.4.5 為參數設置默認值
- 定義函數時可以指定形式參數的默認值
- 指定默認值的形式參數必須放在所有參數的最后,否則會產生語法錯誤
-
param=default_value
:可選,指定參數并且為該參數設置默認值為 default_value - 設置默認值必須要使用不可用對象,可變對象不可以用,如:列表,字典。
def function_name(..., [param=default_value]): [function_body]
1.5 函數返回值
value:可選,指定要返回的值
def function_name([parameter_list]): [''' comments '''] [function_body] return [value]
2. python lambda表達式
2.1 匿名函數
- 沒有名字的函數
- 用 lambda 表達式創建匿名函數
2.2 使用場景
- 需要一個函數,但是又不想費神去命名這個函數
- 通常在這個函數只使用一次的場景下
- 可以指定短小的回調函數
2.3 語法
- result:調用 lambda 表達式
- [arg1 [, arg2, …. , argn]]:可選,指定要傳遞的參數列表
- expression:必選,指定一個實現具體功能的表達式
result = lambda [arg1 [, arg2, .... , argn]]: expression
2.4 實例
L=[('b',2),('a',1),('c',3),('d',4)] # 2、利用參數 cmp 排序 sorted(L, cmp=lambda x,y:cmp(x[1],y[1])) # 結果: [('a', 1), ('b', 2), ('c', 3), ('d', 4)] # 3、利用參數 key 排序 sorted(L, key=lambda x:x[1]) # 結果: [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
原文鏈接:https://blog.csdn.net/gjj920318/article/details/126738409
相關推薦
- 2022-02-20 Hive-SQL查詢連續活躍登錄用戶思路詳解_MsSql
- 2022-02-17 使用Postman測試接口提示Error: connect ECONNREFUSED 127.0.0
- 2022-08-25 C++示例講解string容器_C 語言
- 2022-04-25 C#中使用DevExpress中的ChartControl實現極坐標圖的案例詳解_C#教程
- 2022-07-07 Python數據分析之?Matplotlib?3D圖詳情_python
- 2022-02-11 Android之Compose頁面切換動畫介紹_Android
- 2023-02-09 C++命名空間?缺省參數?const總結?引用總結?內聯函數?auto關鍵字詳解_C 語言
- 2023-03-22 tkinter動態顯示時間的兩種實現方法_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支