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= 打篮球
相关文章
|
1月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
168 1
|
2月前
|
缓存 供应链 监控
1688item_search_factory - 按关键字搜索工厂数据接口深度分析及 Python 实现
item_search_factory接口专为B2B电商供应链优化设计,支持通过关键词精准检索工厂信息,涵盖资质、产能、地理位置等核心数据,助力企业高效开发货源、分析产业集群与评估供应商。
|
2月前
|
JSON 监控 数据格式
1688 item_search_app 关键字搜索商品接口深度分析及 Python 实现
1688开放平台item_search_app接口专为移动端优化,支持关键词搜索、多维度筛选与排序,可获取商品详情及供应商信息,适用于货源采集、价格监控与竞品分析,助力采购决策。
|
2月前
|
缓存 监控 算法
唯品会item_search - 按关键字搜索 VIP 商品接口深度分析及 Python 实现
唯品会item_search接口支持通过关键词、分类、价格等条件检索商品,广泛应用于电商数据分析、竞品监控与市场调研。结合Python可实现搜索、分析、可视化及数据导出,助力精准决策。
|
1月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
104 4
|
2月前
|
JSON 缓存 供应链
电子元件 item_search - 按关键字搜索商品接口深度分析及 Python 实现
本文深入解析电子元件item_search接口的设计逻辑与Python实现,涵盖参数化筛选、技术指标匹配、供应链属性过滤及替代型号推荐等核心功能,助力高效精准的电子元器件搜索与采购决策。
|
2月前
|
JSON 缓存 开发者
淘宝商品详情接口(item_get)企业级全解析:参数配置、签名机制与 Python 代码实战
本文详解淘宝开放平台taobao.item_get接口对接全流程,涵盖参数配置、MD5签名生成、Python企业级代码实现及高频问题排查,提供可落地的实战方案,助你高效稳定获取商品数据。
|
2月前
|
缓存 自然语言处理 算法
item_search - Lazada 按关键字搜索商品接口深度分析及 Python 实现
Lazada的item_search接口是关键词搜索商品的核心工具,支持多语言、多站点,可获取商品价格、销量、评分等数据,适用于市场调研与竞品分析。
|
4月前
|
算法 数据可视化 数据挖掘
基于EM期望最大化算法的GMM参数估计与三维数据分类系统python源码
本内容展示了基于EM算法的高斯混合模型(GMM)聚类实现,包含完整Python代码、运行效果图及理论解析。程序使用三维数据进行演示,涵盖误差计算、模型参数更新、结果可视化等关键步骤,并附有详细注释与操作视频,适合学习EM算法与GMM模型的原理及应用。

推荐镜像

更多