Python 不定长参数 *argc/**kargcs - Python零基础入门教程
目錄
- 一.前言
- 二.Python 不定長參數 argc/*kargcs 簡介
- 1.函數不定長參數 *args 使用
- 2.函數不定長參數 **kwargs 使用
- 3.函數不定長參數*args 和**kwargs 只能放在形參的末尾,順序不能錯.
- 三.Python 不定長參數 argc/*kargcs 實戰
- 四.Python 不定長參數 argc/*kargcs 總結
- 五.猜你喜歡
零基礎 Python 學習路線推薦 : Python 學習目錄 >> Python 基礎入門
一.前言
在 Python 函數的聲明和調用 中我們簡單的了解了函數的相關使用,然而在函數傳遞參數的時候,我們埋下了一個坑,關于不定長參數的傳遞我們還沒有講,今天這篇文章主要就是講解這個問題。
Python 內置函數 print,這個函數想大家都會用,觀察如下代碼:
# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說編程 @Blog(個人博客地址): www.codersrc.com @File:Python 不定長參數 *argc/**kargcs.py @Time:2021/3/29 07:37 @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!"""a = 1.0 b = False c = "python教程 - 猿說編程" print("a = %g" % (a)) print("a = %g b = %d" % (a,b)) print("a = %g b = %d c = %s" % (a,b,c))''' 輸出結果: a = 1 a = 1 b = 0 a = 1 b = 0 c = python教程 - 猿說編程 '''問題來了,內置 Python 內置函數 print 到底需要傳遞幾個參數??
二.Python 不定長參數 argc/*kargcs 簡介
Python 函數的不定長參數包含 *args 和 **kwargs ,完整實例如下:
# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說編程 @Blog(個人博客地址): www.codersrc.com @File:Python 不定長參數 *argc/**kargcs.py @Time:2021/3/29 07:37 @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!"""def function_print(*args,**kwargs): # 傳遞不定長參數,即參數個數不固定print(args)print(kwargs)function_print()''' 輸出結果: () {} '''代碼分析:由輸出結果可以看出來,第一個形參 args 是元組 tuple 類型,第二個形參 *kwargs 是字典 dict 類型.
**1.函數不定長參數** ***args 使用**
a.形參 *args 類型是元組 tuple,外部調用函數時傳遞的參數不論是整數還是 BOOL 值或者是字符串 string ,實際上傳遞的都是元組數據;
b.如果函數形參是不定長參數,外部調用函數傳遞多個參數時,默認按順序實參匹配形參,剩余的參數全部作為(元組)不定長參數傳遞;
c.如果沒有為函數的不定長參數傳遞參數,默認為空元組();
示例代碼如下:
# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說編程 @Blog(個人博客地址): www.codersrc.com @File:Python 不定長參數 *argc/**kargcs.py @Time:2021/3/29 07:37 @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!"""#普通形參 def function_print1(arg):print("普通形參 : arg=",arg)#不定長形參 def function_print2(*args):print("不定長形參 : args=",args)#普通形參 + 不定長形參 def function_print3(arg,*args):print("普通形參 + 不定長形參 : arg=",arg)print("普通形參 + 不定長形參 : args=",args)function_print1(False) function_print1("hello world") print("***"*20)function_print2(False) function_print2("hello world") print("***"*20)function_print3(False) # 只為函數傳遞了一個形參,不定長參數的形參默認為空元組() function_print3("hello world") print("***"*20)# 如果函數的形參是不定長參數,當外部調用函數傳遞多個參數時,默認按順序匹配形參,剩余的參數全部作為不定長參數傳遞 function_print3(False,1,23,4,5) function_print3("hello world",False,0,True,"python教程")''' 輸出結果: 普通形參 : arg= False 普通形參 : arg= hello world ************************************************************ 不定長形參 : args= (False,) 不定長形參 : args= ('hello world',) ************************************************************ 普通形參 + 不定長形參 : arg= False 普通形參 + 不定長形參 : args= () 普通形參 + 不定長形參 : arg= hello world 普通形參 + 不定長形參 : args= () ************************************************************ 普通形參 + 不定長形參 : arg= False 普通形參 + 不定長形參 : args= (1, 23, 4, 5) 普通形參 + 不定長形參 : arg= hello world 普通形參 + 不定長形參 : args= (False, 0, True, 'python教程')'''**2.函數不定長參數** ****kwargs 使用**
**a.形參 **kwargs 類型是字典 dict,函數外部調用函數傳遞參數時需要使用關鍵字參數,實參寫法:a=1,b=2,c=False,d=”hello”;**
b.如果函數形參是不定長參數,外部調用函數傳遞多個參數時,默認按順序實參匹配形參,關鍵字參數全部作為(字典)不定長參數傳遞;
c.如果沒有為函數的不定長參數傳遞參數,默認為空字典 {} ;
示例代碼如下:
# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說編程 @Blog(個人博客地址): www.codersrc.com @File:Python 不定長參數 *argc/**kargcs.py @Time:2021/3/29 07:37 @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!"""#普通函數 def function_print1(arg):print("普通函數形參 : arg=",arg)#普通函數不定長形參 def function_print2(**kwargs):print("不定長形參 : args=",kwargs)#普通函數形參 + 不定長形參 def function_print3(arg,**kwargs):print("普通函數形參 + 不定長形參 : arg=",arg)print("普通函數形參 + 不定長形參 : args=",kwargs)function_print1(False) function_print1("hello world") print("***"*20)function_print2(a=False) function_print2(c="hello world") print("***"*20)function_print3(False) function_print3("hello world") print("***"*20)function_print3(False,a=1,b=23,h=4,v=5) function_print3("hello world",y=False,i=0,a=True,j="python教程")''' 輸出結果: 普通函數形參 : arg= False 普通函數形參 : arg= hello world ************************************************************ 不定長形參 : args= {'a': False} 不定長形參 : args= {'c': 'hello world'} ************************************************************ 普通函數形參 + 不定長形參 : arg= False 普通函數形參 + 不定長形參 : args= {} 普通函數形參 + 不定長形參 : arg= hello world 普通函數形參 + 不定長形參 : args= {} ************************************************************ 普通函數形參 + 不定長形參 : arg= False 普通函數形參 + 不定長形參 : args= {'a': 1, 'b': 23, 'h': 4, 'v': 5} 普通函數形參 + 不定長形參 : arg= hello world 普通函數形參 + 不定長形參 : args= {'y': False, 'i': 0, 'a': True, 'j': 'python教程'}'''3.函數不定長參數*args 和**kwargs 只能放在形參的末尾,順序不能錯.
def function_print(arg1,*args,**kwargs): # *args,**kwargs 必須在形參的末尾,順序不能亂pass三.Python 不定長參數 argc/*kargcs 實戰
# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說編程 @Blog(個人博客地址): www.codersrc.com @File:Python 不定長參數 *argc/**kargcs.py @Time:2021/3/29 07:37 @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!"""''' 普通函數形參 + 不定長形參:arg1:普通形參arg1:普通形參args:不定長參數-元組kwargs:不定長參數-字典 '''def function_print(arg1,arg2,*args,**kwargs):print(arg1,arg2,args,kwargs)function_print(False,1,b=23,h=4,v=5) function_print("hello world",False,0,True,j="python教程",a=True)''' 輸出結果: False 1 () {'b': 23, 'h': 4, 'v': 5} hello world False (0, True) {'j': 'python教程', 'a': True}'''注意:注意參數的順序匹配
四.Python 不定長參數 argc/*kargcs 總結
注意函數傳參的三種形式:
- 1.普通傳參;
- 2.缺省參數,如果外部沒有為缺省參數傳遞實參,形參等于默認值;
- 3.注意不定長參數的拆包,普通實參打包為元組 tuple 類型,關鍵字參數打包為字典 dict 類型;
五.猜你喜歡
未經允許不得轉載:猿說編程 ? Python 不定長參數 *argc/**kargcs
總結
以上是生活随笔為你收集整理的Python 不定长参数 *argc/**kargcs - Python零基础入门教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言 error C4996: Thi
- 下一篇: BugkuCTF-Crypto题一段Ba