Python基础——函数

Python基础——函数

函数的定义

def 函数名([参数列表])  #参数列表可选项,可以没有参数
	函数体
  1. 定义函数时,可以对形参设置默认值,当不传入实参实,返回默认形参
  2. “默认参数”必须放在“位置参数“之后,否则会报错
#定义一个函数
def printinfor(name,age = 18):#将age设置为默认参数
    print(f'{name},你的年龄是{age}')

函数定义的其他形式

  1. 形式一:* 号以后的 形参 只能用 关键字实参 传递
def fun_2(a,b,*,c):
    print(f'a = {a},b = {b},c = {c}')

fun_2(9,8,c=7)#传参形式
  1. 形式二:位置参数,关键字参数,不知传入个数的位置参数,不知传入个数的关键字参数
def fun_3(a,b=10,*args,**args2):
    pass
  1. 形式三:不知传入个数的位置参数,不知传入个数的关键字参数
def fun_4(*args,**args2):
    pass

函数的调用

位置参数必须传值,位置参数可以不传值,返回默认值

函数名(参数列表)
#调用上一个函数,传入参数
printinfor('kiki')#对默认参数不传值
printinfor('kiki',20)#传入所有实参

函数名的赋值

函数名其实是指向一个函数对象的引用,完全可以把函数名赋值给一个变量,相当于给函数起了“别名”

numbers =[2,3,4,5,6,7]
a = len#变量a指向len函数
numbers_len = len(numbers)
print('调用len函数,得到列表长度为:',numbers_len)
numbers_len1 = a(numbers)
print('通过变量a调用len函数,得到列表长度为:',numbers_len1)

函数调用时参数的传递

定义:

def fun_1(a,b,c):
    print(f'a = {a},b = {b},c = {c}')

位置传参

#位置传参
fun_1(10,20,30)

调用时将列表中的每个元素转换成 “位置实参”传入

lis = [3,4,5]
fun_1(*lis)

关键字传参

#关键字传参
fun_1(a=10,b=20,c=30)

调用时,将字典中的每个键值对都转换成 “关键字实参” 传入

dic = {'a':6,'b':7,'c':8}
fun_1(**dic)

函数参数总结(形参)

函数参数的分类(对形参而言)

  1. 默认参数
  2. 不定长参数

函数参数——默认值参数(形参)

  • 函数定义时设置的参数是:形参。
  • 在设置形参的时候可以给每个参数设置一个默认值
  • 当函数调用时,如果该形参位置没有传入实参,就使用形参的默认值
  • 定义函数设置形参时 ‘默认参数’ 必须放在 ’位置参数‘之后,否则会报错
#定义一个函数
def printinfor(name,age = 35):
    print('Name:',name)
    print('Age:',age)
    result = print('函数调用成功')
    return result
#传参——关键字实参
printinfor(age=50,name='Tom')
printinfor('Tom',50)
#传参——位置实参,要与形参一一对应
printinfor('kiki',20)

函数参数——不定长参数(形参)

  1. 个数可变的位置参数(一个函数只能定义一个)
    函数定义时,无法事先确定传递的 位置实参 的个数时,使用可变的位置参数使用*定义可变的 位置形参
    结果为一个元组
def fun(*args):
    print(args)
fun(1)
fun(2,3)
fun(4,5,7,9)

输出:
在这里插入图片描述

  1. 个数可变的关键字参数(一个函数只能定义一个)
    函数定义时,无法事先确定传递的 关键字实参 的个数时,使用可变的关键字形参使用**定义个数可变的关键字形参
    结果为一个字典’’’
def fun01(**args):
    print(args)
fun01(a=10)
fun01(a=20,b=30,c=40)

输出:
在这里插入图片描述

  1. 一个函数的定义过程中,既有个数可变的位置形参,又有个数可变的关键字形参
def 函数名([*args1,**args2]):
	pass
*args1:  个数可变位置形参
**args2: 个数可变的关键字形参

函数返回值

  1. 如果函数没有返回值【函数执行完毕之后,不需要给调用处提供数据】return 可以省略不写
  2. 函数的返回值,如果是1个,直接返回原类型。
  3. 函数的返回值,如果是多个,返回的结果为元组。
def fun03(num):
    odd = [] #存奇数
    even = []#存偶数
    for i in num:
        if i%2:
            odd.append(i)
        else:
            even.append(i)
    return odd,even
print(fun03([10,29,34,23,44,53,55]))#多个返回值返回的是元组

输出:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

企鹅家的北极熊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值