Python函数

简介

函数是一个对象,存储着执行一些特定功能的代码块,需要的时候可以多次调用
python内置函数
https://docs.python.org/3/library/functions.html
安装好python自带,直接利用就可以
在这里插入图片描述

创建

格式如下,用def关键字定义,多个形参用逗号隔开,可以不带参数,也可以没有return结果,代码块统一缩进。
有调用函数,才会执行。

def 函数名称(形参1,形参2...):
	代码块
	return 结果  #一般都有return结果,也可以不用return

函数名称(实参1,实参2...)#调用函数

参数传递

位置传参

调用的时候按照参数的位置,依次对应

def move(n,a,b,c):
    if n == 1:
        print(a, '-->', c)
    else:
        move(n-1,a,c,b)
        print(a, '-->', c)
        move(n-1,b,a,c)
move(3, 'A', 'B', 'C')

关键词参数

利用关键词赋值的方式传递参数
如上述代码变为
move(n=3,a=‘A’,b=‘B’,c=‘C’)

默认参数值

默认参数为可选,指定了默认值之后:

  • 如果用户传递了实参,则默认值不会发挥任何作用;
  • 如果用户没有传递,则默认值会发挥作用
>>> def fn(a,b='Jim'):
	return(print('hello',a,b))

>>> fn('Dim')#没有填写第二个参数,默认参数发挥作用
hello Dim Jim
>>> fn('Dim','Marry')#填写了第二个参数,默认参数没发挥作用
hello Dim Marry
>>> 

混合传参

位置参数和关键字参数可以混合使用
混合使用的时候关键字和位置参数时,必须将位置参数写到关键字参数前面

def s(a,b,c):
	print(a+b+c)
s(1,2,3)
s(c=1,a=2,b=3)
s(1,2,c=3)
s(c=1,2,3)错误

不定长参数

  • *形参
    形参以元组的形式接受实参传递的值
    只能有一个,一般写在最后
def qiu_he(*a): #a为不定长参数
    s = 0
    for i in a:
        s += i
    return s
print(qiu_he(1,2,3,4))
#如果有序列l=[1,2,3,4],可以用*l表示传入其中的值,结果与上述一致
l = [1,2,3,4]
print(qiu_he(*l))
	

配合其他参数使用时,调用时其他参数要以关键词的形式传入
如果在形参的开头直接写一个*,则要求我们但是所有的参数要以关键字的形式来传递

def fn(*a,b,c):
	代码块
fn(1,2,3,b=4,c=5)  #调用时

def fn2(*,a,b,c):
	代码块
fn2(a=3,b=4,c=5)  #调用时
  • **形参
    可以接受其他的关键字参数,它会将这些参数统一保存到一个字典当中
    只能有一个,必须写在所有形参后面
def fn3(b,c,**a):  #**a写在后面
    print('a =', a)
    print('b =', b)
    print('c =', c)
fn3(b=1,d=2,c=3,e=5,f=20)
#结果
'''
a = {'d': 2, 'e': 5, 'f': 20}
b = 1
c = 3
'''
  • 概括
    *a处理位置参数,以元组接受实参
    **a处理的是关键字参数,以字典接受实参
def print(self, *args, sep=' ', end='\n', file=None):
print函数

def get(url, params=None, **kwargs):
requests库get方法

参数的解包

传递实参的时候,
用*传递序列类型,可以是列表,元组,字符串
用**传递字典类型,key对应的形参,value对应的实参

def fn4(a,b,c):
    print('a =', a)
    print('b =', b)
    print('c =', c)
# 这里面要求序列中的元素的个数必须和形参的个数一致
t = (5,6,7,8)
d = {'a':100,'b':200,'c':300}
fn4(**d)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值