Python-函数的参数
一、参数规则
1.函数参数的使用
- 在函数名的小括号填写
参数 - 多个参数使用
,分隔
2.上家伙
#!/usr/bin/python
# -*- coding:utf-8 -*-
"""
@Time: 2021-09-20 13:02
@Target: 定义函数求和
@Author: dingkw
"""
# 定义函数
def sum_num(num1,num2):
count = num1 + num2
print(f"求和结果为:{count}")
# 用户在控制台输入数字
num_1 = int(input("请输入数字1:"))
num_2 = int(input("请输入数字2:"))
# 调用函数:传入参数num1和num2
sum_num(num_1,num_2)
3.参数的作用
增加函数的复用性,可以针对不同数据同一套处理逻辑
二、形参和实参
1.形参种类
形式参数:即形参,定义函数时,小括号里面的参数
- 默认值形参
- 位置形参
- 关键字形参
- 个数可变的位置形参
- 个数可变的关键字形参
2.实参种类
实际参数:即实参,调用函数时,小括号里面的参数
- 默认值实参
- 位置实参
- 关键字实参
- 可变的位置实参
- 可变的关键字实参
三、参数实例
形参和实参
# 形参为name
def say_hello(name):
print(f"{name}说你好")
# 实参为"dingkw"
say_hello("dingkw")
位置参数
# a,b,c为位置形参
def fun1(a, b, c):
print(a, b, c)
# 1,2,3为位置实参
fun1(1,2,3)
关键字参数
# b,c为关键字形参
def fun2(a, b=2, c=3):
print(a, b, c)
# 1为位置实参
fun2(1)
# 1为关键字实参
fun2(a=1)
# 1,6,8为关键字实参
fun2(a=1, b=6, c=8)·
混搭_位置参数与关键字参数
# 函数fun_fix即存在位置形参,也存在关键字形参
# 顺序必须:位置形参>关键字形参
def fun_fix_1(a, b=2, c=3):
print(a, b, c)
fun_fix_1(1)
强制位置参数
# 在位置参数后,加入/
def fun7(a, b, /):
print(a,b)
# 必须传入"位置实参",否则报错
fun7(1,2)
强制关键字参数
# 在位置参数前,加入*
def fun3(*, a, b, c):
print(a, b, c)
# 必须传入"关键字实参",否则报错
fun3(a=1, b=2, c=3)
默认参数
# b,c为默认参数
def fun4(a, b=2, c=3):
print(a, b, c)
# b,c存在默认参数,只需要输入a参数值
fun4(1)
# b,c存在默认参数,可改变默认值
fun4(1,6,8)
个数可变的位置参数
# 在参数前加入*
# 顺序必须:位置形参>个数可变的位置形参
def fun5(a, *other):
print(a, other)
# 调用函数,输出为 1 (2,)
# 说明传入到*other参数里的值为元组
fun5(1,2)
# 调用函数,输出为 1 (2, 3)
fun5(1,2,3)
个数可变的关键字参数
def fun6(a, **names):
print(a,names['student'])
print(a,names['teacher'])
# 会报错,缺少teacher
fun6(1, student="dingkw")
# 正常执行
# 1 dingkw
# 1 mi
fun6(1, student="dingkw", teacher="mi")
# 正常执行,gada忽略
# 1 dingkw
# 1 mi
fun6(1, student="dingkw", teacher="mi", gada='123')
四、解包
解包_列表
def fun8(msg, name1, name2, name3):
print(msg, name1, name2, name3)
# 定义一个列表
names = ["小明", "小红", "小黑"]
# 一般操作
fun8("信息", names[0], names[1], names[2])
# 解包操作
# 在列表前,加入*
fun8("信息", *names)
解包_元组
def fun9(msg, name1, name2, name3):
print(msg, name1, name2, name3)
# 定义一个元组
names = ("小明", "小红", "小黑")
# 一般操作
fun9("信息", names[0], names[1], names[2])
# 解包操作
# 在元组前,加入*
fun9("信息", *names)
解包_字典
def fun10(msg, name1, name2, name3):
print(msg, name1, name2, name3)
# 定义一个字典
names = {"name1":"小明", "name2":"小红", "name3":"小黑"}
# 一般操作
fun10("字典信息", names["name1"], names["name2"], names["name3"])
# 解包操作
fun10("字典信息",**names)

浙公网安备 33010602011771号