Python函数参数类型汇总

在写python函数时,要注意区分参数类型,现总结如下:

1、无参数
# 1、无参数
def f1():
    print("无需传入参数。")

# 调用方法
f1()

执行结果:

无需传入参数。


2、位置参数

按函数原型参数所在位置传入数值

# 2、位置参数(按函数原型参数所在位置传入数值)
def f2(value):
    print("value = ", value)

# 调用方法
f2(5)

def f3(int_value, string_value):
    print("整型参数为:", int_value, "字符串参数为:", string_value)

# 调用方法
f3(6, "abcd")

执行结果:

value = 5
整型参数为: 6 字符串参数为: abcd


3、关键字参数

指定关键字传入数值,顺序可以颠倒

3、关键字参数(指定关键字传入数值,顺序可以颠倒)
def f4(int_value, string_value):
    print("整型参数为:", int_value, "字符串参数为:", string_value)

# 调用方法
f4(int_value=10, string_value="ABC")
f4(string_value="DEF", int_value=6)

执行结果:

整型参数为: 10 字符串参数为: ABC
整型参数为: 6 字符串参数为: DEF


4、默认值参数

如果不传入参数,就会自动赋默认值,参数个数由函数原型确定

# 4、默认值参数(如果不传入参数,就会自动赋默认值,参数个数由函数原型确定)
def f5(value=6):
    print("value = ", value)

# 调用方法
f5()  # 不传参
f5(4)  # 使用位置参数指定传参
f5(value=4)  # 使用关键字参数指定传参

def f6(value1=5, value2="abcd"):
    print("value1 = ", value1, "value2 = ", value2)

# 调用方法
f6()  # 不传参
f6(4)  # 使用位置参数传一个
f6(4, "ABC")  # 使用位置参数全部传参
f6(value2="fgh")  # 使用关键字参数指定传参一个
f6(value1=4, value2="hello")  # 使用关键字参数全部传参

执行结果:

value = 6
value = 4
value = 4
value1 = 5 value2 = abcd
value1 = 4 value2 = abcd
value1 = 4 value2 = ABC
value1 = 5 value2 = fgh
value1 = 4 value2 = hello


5、不定长参数

传参个数由调用方法确定

# 5、不定长参数(传参个数由调用方法确定)
# 以*开头的为元组形式,以**开头的为字典形式
def f7(value1, *value2):
    print("确定参数value1 = ", value1)
    print("不确定参数value2 = ", value2)

# 调用方法
# f7()  # 报错,至少传参一个
f7(5)  # 使用位置参数传一个
f7(5, 60, 70, 80)  # 使用位置参数传两个
f7(value1=10)  # 使用关键字参数传一个

def f8(value1, **value2):
    print("确定参数value1 = ", value1)
    print("不确定参数value2 = ", value2)

# 调用方法
# f8()  # 报错,至少传参一个
f8(5)  # 使用位置参数传一个
f8(5, name="ZML", age=19, sex="Male")  # 使用位置参数传两个
f8(value1=10, name="ZML", age=19, sex="Male")  # 使用关键字参数和位置参数传两个

执行结果:

确定参数value1 = 5
不确定参数value2 = ()
确定参数value1 = 5
不确定参数value2 = (60, 70, 80)
确定参数value1 = 10
不确定参数value2 = ()
确定参数value1 = 5
不确定参数value2 = {}
确定参数value1 = 5
不确定参数value2 = {‘name’: ‘ZML’, ‘age’: 19, ‘sex’: ‘Male’}
确定参数value1 = 10
不确定参数value2 = {‘name’: ‘ZML’, ‘age’: 19, ‘sex’: ‘Male’}


6、强制关键字传入

单独使用*号,*号后面的参数必须为关键字参数,之前的不受影响

# 6、强制关键字传入(单独使用*号,*号后面的参数必须为关键字参数,之前的不受影响)
def f9(value1, value2, *, value3):
    print("参数value1 = ", value1, ",参数value2 = ", value2, ",关键字参数value3 = ", value3)

# 调用方法
# f9(1, 2, 3)  # 报错
f9(3, 4, value3=9)
f9(0, value3=10, value2=7)
f9(value3=10, value2=6, value1=9)

执行结果:

参数value1 = 3 ,参数value2 = 4 ,关键字参数value3 = 9
参数value1 = 0 ,参数value2 = 7 ,关键字参数value3 = 10
参数value1 = 9 ,参数value2 = 6 ,关键字参数value3 = 10


7、强制位置传入

单独使用/号,/号前面的参数必须为位置参数,之后的不受影响

def f10(value1, value2, /, value3):
    print("位置参数value1 = ", value1, ",位置参数value2 = ", value2, ",参数value3 = ", value3)


# 调用方法
f10(1, 2, 3)
# f10(value1=3, value2=8, value3=7)  #报错
f10(4, 6, value3=9)

执行结果:

位置参数value1 = 1 ,位置参数value2 = 2 ,参数value3 = 3
位置参数value1 = 4 ,位置参数value2 = 6 ,参数value3 = 9


8、/和*的混合使用
# 8、/和*的混合使用
def f11(value1, value2, /, value3, value4, *, value5, value6):
    print("位置参数value1 = ", value1, ",位置参数value2 = ", value2, ",参数value3 = ", value3\
          , ",参数value4 = ", value4, ",关键字参数value5 = ", value5, ",关键字参数value6 = ", value6)

# 调用方法
f11(3, 4, 6, value4=10, value5=9, value6=14)
f11(3, 4, 6, 10, value5=9, value6=14)
f11(3, 4, value3=6, value4=10, value5=9, value6=14)

执行结果:

位置参数value1 = 3 ,位置参数value2 = 4 ,参数value3 = 6 ,参数value4 = 10 ,关键字参数value5 = 9 ,关键字参数value6 = 14
位置参数value1 = 3 ,位置参数value2 = 4 ,参数value3 = 6 ,参数value4 = 10 ,关键字参数value5 = 9 ,关键字参数value6 = 14
位置参数value1 = 3 ,位置参数value2 = 4 ,参数value3 = 6 ,参数value4 = 10 ,关键字参数value5 = 9 ,关键字参数value6 = 14

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋之颂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值