python笔记 函数部分01

python笔记 函数01

好记性不如烂笔头,学习从摘抄开始!


函数:
将重复的代码,封装到一个模块,可以增强代码的模块化,提高代码的利用率。

(1)参数个数不可变:

def 函数名(参数1,参数2,,...,参数n):
	函数体(重复的代码)

注意:
1.必须使用关键字def
2.函数体注意缩进
3.形参与实参的个数要一致
4.实参:调用 函数时所用的实际的参数
5.形参:定义 函数时用于占位的参数

(2)参数个数可变:

<1> *参数

def 函数名(*参数):
	函数体(重复的代码)

注意:
1.调用时函数参数个数可变,
2.多个参数被放在一个元组中,但是不能使用关键字参数

代码:

def fun(*args):
	print(args)
	print(type(args))

fun(1,2,3)
fun('a','b',123)

输出结果:

(1, 2, 3)
<class 'tuple'>

('a', 'b', 123)
<class 'tuple'>	

<2> **参数

def 函数名(**参数):
	函数体(重复的代码)	

注意:
1.调用时函数参数个数可变,
2. **参数:多个参数被放在一个字典中 ,调用时必须用 key = value 关键字参数
例子:

def fun(**args):
	print(type(args))
    print(args)

fun(a=1, b=2, c=3)  #调用时 key=value 的关键字参数形式是必须的

输出结果:

<class 'dict'>
{'a': 1, 'b': 2, 'c': 3}

(3)参数个数不可变 + 参数个数可变:

def 函数名(参数1,参数2,...,参数n,,*参数n+1):
	函数体(重复的代码)

注意:
1.在函数中,前n个参数一一对应,剩余的多个参数被放在一个元组中,

例子:

def fun(arg1,arg2,*args3):
    print('arg1=', arg1)
    print('arg2=', arg2)
    print('arg3=', args3)
fun('a','b','c','d','e','f')

输出结果:

arg1= a
arg2= b
arg3= ('c', 'd', 'e', 'f')
	

(4)任意个数参数:

def 函数名(*args, **kwargs):
	函数体(重复的代码)

例子:

def fun(*args, **kwargs):
    print('args=', args)
    print('kwargs=', kwargs)

fun(1, 2, 3, name='jack', age='15', sex='boy')

结果:

args= (1, 2, 3)
kwargs= {'name': 'jack', 'age': '15', 'sex': 'boy'}

(5)关键字参数:

def 函数名(参数1,参数2,....):
	函数体(重复的代码)

注意:
1.调用函数时实参和形参名称对应起来
2.形参与实参的对应关系与位置无关

例子:

def fun(a, b, c):
   	print('a=', a, ' b=', b, ' c=', c)

fun(a=1, b=2, c=3)
fun(b=2, c=3, a=1)

输出结果:

a= 1  b= 2  c= 3
a= 1  b= 2  c= 3

(6)默认值参数:

def 函数名(参数1,参数2,参数3=value):
	函数体(重复的代码)

注意:
1.调用函数时具有缺省值得参数可以省略,其默认值为缺省值value
2.如果具有缺省值的参数,在调用时被赋值,则缺省值被覆盖

例子:

def fun(a, b, c=3):
    print('a:', a, ' b:', b, ' c:', c)

fun(a=1, b=2)
fun(a=1, b=2, c=33)

输出结果:

a: 1  b: 2  c: 3
a: 1  b: 2  c: 33

(7)函数返回值

注意:
1.关键字:return
2.return后面可以是一个参数或多个参数
3.如果是多个参数,则底层将会把多个参数先放在一个元组中,将元组作为整体返回
4.当返回值为多个值是可以,在接收返回值时也可以用多个变量接收

def fun():
	...
	return x1,x2,x3

a,b,c = fun()  #a=x1 b=x2 c=x3

(8)装包与拆包:*参数,**参数

注意:
1.一般用于调用函数 def 函数名(*参数): 或 def 函数名(**参数):
2.对于元组tuple, *tuple 相当于将元组中的内容拆成单个的元素,
3.对于字典dict, **dict 相当于将字典中的键值对拆分成单个键值对,key1=value1, key2=value2, …

代码1:字典装包

def fun(**kwargs):  //装包
    print(type(kwargs))
    print(kwargs)

fun(_001='python', _002='java', _003='c', _004='c++')

输出结果:

<class 'dict'>
{'_001': 'python', '_002': 'java', '_003': 'c', '_004': 'c++'}

代码2:字典拆包与装包

def fun(**kwargs): //装包
    print(type(kwargs))
    print(kwargs)

lans = {'001': 'python', '002': 'java', '003': 'c', '004': 'c++'}
fun(**lans)  //拆包

输出结果:

<class 'dict'>
{'001': 'python', '002': 'java', '003': 'c', '004': 'c++'}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值