[2017-08-07] 继续整理笔记
函数
定义:函数就是组织好的固定功能的代码段,主要是为了复用和减少工作量.
咳咳…个人赶脚就是sql里存储过程之类的东东了吧….
自定义函数就是下面这么个东西了
def say() :
print("Hello!")
1.形参实参
def say(name) :
print("Hello {}!".format(name))
运行结果:
>>> a = '小李'
>>> say(a)
Hello 小李!
以上def函数语句中,name就是形参,
调用函数say时的变量a,就是实参
2.参数类型
常用参数类型为必需参数,关键字参数,默认参数,不定长参数
- 1.必须参数
- name和myname就是必须参数,必须参数以顺序传入
- 调用时参数数量必须一致,即函数定义几个参数,调用时必须传入几个参数,要求严格
def say(name,myname) :
print("Hello {},i am {}!".format(name,myname))
>>> say('小李','小王')
Hello 小李,i am 小王!
- 2.关键字参数
- 调用时使用关键字参数来确定传入的参数值
- 调用参数时可以不按声明顺序而是使用参数命名的形式来用
def say(name,myname) :
print("Hello {},i am {}!".format(name,myname))
>>> say(myname='小王',name = '小李') # 和必须参数不同,因为有参数名所以无所谓顺序
Hello 小李,i am 小王!
- 3.默认参数
- 声明时定义好默认参数
- 调用函数时,如果没有传递该参数,则会使用设定的默认参数值
def say(name,myname='小明') :
print("Hello {},i am {}!".format(name,myname))
>>> say('小王',name = '小李')
Hello 小李,i am 小王!
>>> say('小王')
Hello 小李,i am 小明!
- 4.不定长参数
- 声明时无命名
- 参数没有固定数量
*args参数,参数值为tuple元组形式
def say(*args) :
for var in args:
print(var)
>>> say('wang','li')
wang
li
>>> say('wang')
wang
**kwargs参数,参数值为字典键值对形式
def say(**kwargs) :
print(kwargs)
>>> say(a=1,b=2,c=3)
{'a': 1, 'c': 3, 'b': 2} #以参数命名形式传值,来使用键值对,**kwargs生成一个字典
参数类型顺序优先级为(从左至右): 必须参数、关键字参数 OR 默认参数 、不定长参数
- 必须参数,关键字参数
def say(name,age) :
print(name,age)
>>> say('wang',age=20) # 必须参数在前,关键字参数在后
wang 20
>>> say(age=20,'wang') # 错误顺序
File "<ipython-input-9-c23a998776d1>", line 1
say(age=20,'wang')
^
SyntaxError: positional argument follows keyword argument
- 必须参数,关键字参数和默认参数
def say(name,age,sex='male') : # 定义时顺序
print('name:{}'.format(name))
print('age:{}'.format(age))
print('sex:{}'.format(sex))
>>> say('li',age=20) #默认参数时
name:li
age:20
sex:male
>>> say('li',age=20,sex='female') # 顺序从左只有为:必须参数,关键字参数,默认参数
name:li
age:20
sex:female
>>> say('li',sex='female',age=20) # 默认参数指定值时,也是一个关键字参数
name:li
age:20
sex:female
- 必须参数,关键字参数和不定长参数
def say(name,sex='male',*args,**kwargs) : # 正确顺序
pass
def say(name,*args,**kwargs,sex='male'): # 错误顺序
pass
File "<ipython-input-26-6f31476f2f66>", line 1
def say(name,*args,**kwargs,sex='male'):
^
SyntaxError: invalid syntax
额,具体略过
本文介绍了Python中函数的概念,强调其用于代码复用和简化任务的重要性。讲解了形参与实参的区别,以及不同类型的参数:必需参数、关键字参数、默认参数和不定长参数。还特别提到了**kwargs参数,指出参数传递的顺序优先级。
3710

被折叠的 条评论
为什么被折叠?



