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 配置环境
- Python 变量
- Python 运算符
- Python 条件判断 if/else
- Python while 循环
- Python break
- Python continue
- Python for 循环
- Python 字符串
- Python 列表 list
- Python 元组 tuple
- Python 字典 dict
- Python 条件推导式
- Python 列表推导式
- Python 字典推导式
未经允许不得转载:猿说编程 » Python 不定长参数 *argc/**kargcs
Python 不定长参数 *argc/**kargcs - Python零基础入门教程相关推荐
- Python globals 函数 - Python零基础入门教程
目录 一.Python globals 函数语法 二.Python globals 函数使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Pytho ...
- Python locals 函数 - Python零基础入门教程
目录 一.locals 函数语法 二.locals 函数使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.locals ...
- Python reduce 函数 - Python零基础入门教程
目录 一.Python reduce 函数简介 1.reduce 函数语法 2.reduce 函数原理 二.Python reduce 函数使用 1.reduce 函数普通使用 2.reduce 函数 ...
- Python chr 函数 - Python零基础入门教程
目录 一.Python chr 函数简介 二.Python chr 函数使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一 ...
- Python bytes 函数 - Python零基础入门教程
目录 一.bytes 函数简介 二.bytes 函数使用 1.定义空的字节序列 bytes 2.定义指定个数的字节序列 bytes ,默认以 0 填充,不能是浮点数 3.定义指定内容的字节序列 byt ...
- Python range 函数 - Python零基础入门教程
目录 一.Python range 函数简介 二.Python range 函数使用 1.Python range 函数常规使用 2.Python range 函数在 for 循环中使用 三.猜你喜欢 ...
- Python callable 函数 - Python零基础入门教程
目录 一.Python callable 函数简介 二.Python callable 函数使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Pyt ...
- Python super 函数 - Python零基础入门教程
目录 一.Python super 函数简介 二.Python super 函数语法 三.Python super 函数使用 1.案例一 2.案例二: 四.猜你喜欢 零基础 Python 学习路线推荐 ...
- Python len函数 - Python零基础入门教程
目录 一.Python len 函数简介 二.Python len 函数使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 在 ...
最新文章
- 数据库分析函数 MySQL_MySql数据库索引分析explain函数的使用
- easyui的datagrid的使用记录
- python画折线图详解-python如何画折线图
- SpringBoot连接Mysql数据库遇到Unable to load authentication plugin ‘caching_sha2_password解决方案
- 一文梳理多任务学习(MMoE/PLE/DUPN/ESSM等)
- 变量在内存中的值[c][code]
- 论文阅读笔记(四)【ACL 2021】FEW-NERD: A Few-shot Named Entity Recognition Dataset
- 固态硬盘上安装centos_自己动手丰衣足食 手把手教你安装M.2固态硬盘
- 十大企业级Linux服务器安全防护要点
- Java设计模式学习总结
- 中国大学排行榜网站的爬取
- 软件需求与分析课堂讨论一
- STM32CubeMX+Proteus仿真DS18B20
- 毫米波雷达技术及应用大解析
- 未检测到扫描仪Win10解决 WIA服务1061
- 微信动态二维码管理引流源码/微信活码/自动换群/微信朋友圈加群二维码
- ISP_DPC坏点矫正
- 计算机音乐谱子 追光者,岑宁儿《追光者》简谱
- supervisord简介
- 从一个真实案例去思考团队的打造,以及战斗力和凝聚力的提升
热门文章
- 掌门1对1微服务体系Solar|阿里巴巴Sentinel落地实践
- 升级遗留代码的最佳实践
- 极验创始人吴渊:恶意流量威胁新趋势,揭秘网络黑产3大核心本质
- Kubernetes 上调试 distroless 容器
- 奇点云集聚数据中台优势,加速企业数智化升级
- 真正拿大厂offer的人,都赢在这一点
- 对不起,我把APP也给爬了
- 32岁被裁补偿N+2:“感谢裁我,让我翻倍!” 网友:求同款被裁!
- 支持OpenStack,红帽将开源进行到底
- 华为与美国公司就授权5G平台展开初期谈判;Linux 中存在严重漏洞;Microsoft 发布 Cosmos DB GA 版……...