python之有关关键字参数,默认参数,不定长参数,位置参数的定义,区别,以及使用方法。

简介: python之有关关键字参数,默认参数,不定长参数,位置参数的定义,区别,以及使用方法。
传递任意数量的实参:

当我们无法确定函数需要接受多少个实参时,我们可以通过在形参名前加,让python创建一个名为该形参名的空元组,在函数调用时,就可以将收到的所有值放入该元组。*

举例:

def make_pizza(*toppings):
    print(toppings)
make_pizza("beef")
make_pizza("pepperoni","cucumber")
make_pizza("tomato","lettuce","ketchup")
('beef',)
('pepperoni', 'cucumber')
('tomato', 'lettuce', 'ketchup')
结合使用位置实参和任意数量的实参:

如果要使函数接收不同类型的实参,则必须将在函数中定义的可接受任意数量实参的形参放在最后,函数在调用时,先将位置实参和关键字实参进行匹配,再将剩下的未匹配的实参放在最后一个形参中。


举例:

def make_pizza(numbers,*toppings):
    print(f"they  need {numbers} pizza,it's toppings are {toppings}")
make_pizza(2,"lisa's","beef")
print("\n")
make_pizza(5,"pepperoni","cucumber")
print("\n")
make_pizza(3,"tomato","lettuce","ketchup")
they  need 2 pizza,it's toppings are ("lisa's", 'beef')
they  need 5 pizza,it's toppings are ('pepperoni', 'cucumber')
they  need 3 pizza,it's toppings are ('tomato', 'lettuce', 'ketchup')
*args和**args的区别:

*1:args:保存多余变量,保存方式为元组

举例:

def fun(x,y,*args):
    print("x=",x)
    print("y=",y)
    print("args=",args)#将其他的位置实参收集
fun(1,2,3,4,5,6,7)
x= 1
y= 2
args= (3, 4, 5, 6, 7)

**2:args保存带有变量名的多余变量,保存方式为字典

举例:

def fun(x,y,**args):
    print("x=",x)
    print("y=",y)
    print("args=",args)#将其他的关键字实参收集
fun(1,2,c=3,d=4,e=5,f=6,g=7)
x= 1
y= 2
args= {'c': 3, 'd': 4, 'e': 5, 'f': 6, 'g': 7}

*args和**args结合使用:

def fun(x,y,*args,**arg_s):
    print("x=",x)
    print("y=",y)
    print("args=",args)
    print("args_s=",arg_s)
fun(1,2,3,4,e=5,f=6,g=7)
x= 1
y= 2
args= (3, 4)
args_s= {'e': 5, 'f': 6, 'g': 7}
默认参数:

一般我们讲默认参数放到参数列表后面,形参后期值变化很小或者没有变化时,设置默认值。如果对默认值参数重新赋值,使用最新传递实参的值。

举例:

def pow(x,n=2):
    r = 1
    while n > 0:
        r *= x  #r = r * x  = 1*2  r = r*x = 2*2 = 4直到n等于0
        n -= 1
    return r
#调用函数
print(pow(2,5))  
32
不定长参数:

位置实参,关键字实参的数量都是不确定的。

def fun(a,b,c,*x,**y):
    print('a=',a)
    print('b=',b)
    print('c=',c)
    print('args=',x)
    print('kwargs=',y)
    for key,value in y.items():
        print('key=',key,'value=',value)
fun(1,3,5,6,7,name='蔡徐坤',age=20,hobby='打篮球')
a= 1
b= 3
c= 5
args= (6, 7)
kwargs= {'name': '蔡徐坤', 'age': 20, 'hobby': '打篮球'}
key= name value= 蔡徐坤
key= age value= 20
key= hobby value= 打篮球
相关文章
|
6天前
|
数据采集 存储 XML
Python爬虫定义入门知识
Python爬虫是用于自动化抓取互联网数据的程序。其基本概念包括爬虫、请求、响应和解析。常用库有Requests、BeautifulSoup、Scrapy和Selenium。工作流程包括发送请求、接收响应、解析数据和存储数据。注意事项包括遵守Robots协议、避免过度请求、处理异常和确保数据合法性。Python爬虫强大而灵活,但使用时需遵守法律法规。
|
1月前
|
存储 人工智能 开发工具
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
只需要通过向AI助理提问的方式输入您的需求,即可瞬间获得核心流程代码及参数,缩短学习路径、提升开发效率。
1432 4
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
|
10天前
|
传感器 物联网 机器人
定义微Python
MicroPython 是一种精简高效的 Python 解释器,专为微控制器和嵌入式系统设计,支持通过 Python 代码进行快速开发和调试。它具有低资源消耗的特点,适用于物联网设备。
91 62
|
1月前
|
存储 大数据 数据处理
Python 中的列表推导式与生成器:特性、用途与区别
Python 中的列表推导式与生成器:特性、用途与区别
23 2
|
1月前
|
Java 程序员 C++
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
23 0
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
|
1月前
|
存储 C++ Python
[oeasy]python037_ print函数参数_sep分隔符_separator
本文介绍了Python中`print`函数的`sep`参数,即分隔符。通过回顾上文内容,解释了类型与`type`的概念,并强调了参数类型的重要性。文章详细探讨了`print`函数如何使用`sep`参数来分隔输出值,默认分隔符为空格(序号32)。还讨论了如何修改分隔符为其他字符,如冒号,并解释了为何反斜杠需要使用双反斜杠表示。最后,文章追溯了`sep`名称的由来,以及相关词汇的历史背景,如盎格鲁-萨克逊人的武器和语言。
26 0
|
1月前
|
机器学习/深度学习 缓存 Linux
python环境学习:pip介绍,pip 和 conda的区别和联系。哪个更好使用?pip创建虚拟环境并解释venv模块,pip的常用命令,conda的常用命令。
本文介绍了Python的包管理工具pip和环境管理器conda的区别与联系。pip主要用于安装和管理Python包,而conda不仅管理Python包,还能管理其他语言的包,并提供强大的环境管理功能。文章还讨论了pip创建虚拟环境的方法,以及pip和conda的常用命令。作者推荐使用conda安装科学计算和数据分析包,而pip则用于安装无法通过conda获取的包。
63 0
|
1月前
|
存储 算法 API
Python学习五:函数、参数(必选、可选、可变)、变量、lambda表达式、内置函数总结、案例
这篇文章是关于Python函数、参数、变量、lambda表达式、内置函数的详细总结,包含了基础知识点和相关作业练习。
26 0
|
1月前
|
Java Go C++
【Python】函数的定义和调用、形参和实参、函数的返回值、多元赋值、全局和局部变量
【Python】函数的定义和调用、形参和实参、函数的返回值、多元赋值、全局和局部变量
23 0
|
6月前
|
存储 Python
Python函数参数传递
Python函数参数传递
61 1