python中函数的使⽤
⼀ 函数的定义
所谓函数,就是把具有独⽴功能的代码块组织成为⼀个⼩模块,在需要的时候调⽤
函数的使⽤包含两个步骤
1.定义函数–封装独⽴的功能
2.调⽤函数–享受封装的成果
使⽤函数的好处:
在开发时,使⽤函数可以提⾼编写的效率以及代码的重⽤
函数是带名字的代码块,⽤于完成具体的⼯作
需要在程序中多次执⾏同⼀项任务时,你⽆需反复编写完成该任务的代码,⽽只需调⽤该任务的函数,让python运⾏其中的代码,你将发现,通过使⽤函数,程1)函数的定义规则
def函数名():
函数的代码write的返回值
# def是英⽂define的缩写
# 函数名称应该能够表达函数封装代码的功能,⽅便后续的调⽤
# 函数名称的命名应该符合标识符的命名规则
可由字母,下划线和数字组成
不能以数字开头
不能与关键字重名
⽰例:
#  如果不主动调⽤函数,函数是不会执⾏的
def say_hello():
print'hello1'
print'hello2'
print'hello3'
# 函数的调⽤
say_hello()
2)函数中的参数
参数的作⽤
函数,把具有独⽴功能的代码块组织成为⼀个⼩模块,在需要的时候调⽤
函数的参数,增加函数的通⽤性,针对相同的数据处理逻辑,能够适应更多的数据
1.在函数内部,把参数当作变量使⽤,进⾏需要的数据处理
2.函数调⽤时,按照函数定义的参数顺序,把希望在函数内部处理的数据,通过
参数传递
实参,形参
形参:定义函数时,⼩括号中的参数,是⽤来接收参数使⽤的,
在函数内部,是当作变量来使⽤的
实参:调⽤函数时使⽤,⼩括号中的参数,是⽤来把数据传地到函数内部的
⽰例:
"""
函数参数的使⽤
在函数名后⾯的⼩括号内填写参数
多个参数之间使⽤ , 分隔
"""
# 定义函数时的变量,叫形参形参可以任意起名字
def sum_2_sum(num1,num2):
"""                    #函数的解释,可通过 crtl + Q 来进⾏查看
:param num1:
:param num2:
:return:
"""
result = num1 + num2
print'%d + %d = %d' %(num1,num2,result)
# 在调⽤函数的时候
# 在调⽤函数时传递得参数称为实参(真实的数据信息)
sum_2_sum(5,20)
3)函数的作⽤域
全局变量是在函数外部定义的变量,(没有定义在某⼀个函数内),所有函数内部都可以使⽤这个变量 局部变量:在函数内部定义的普通变量,只在函数内部作⽤,函数执⾏结束
变量会⾃动删除(也就是说局部变量是有⽣命周期的,函数执⾏完后,就会被内存回收)
⽰例:全局变量和局部变量的使⽤
a = 1
print'outside:',id(a)    #使⽤id(a)来查看变量在内存中地址,具有惟⼀性
def fun():
global a # 声明a为全局变量
a = 5
print'inside:',id(a)
fun()
print a
print id(a)
>> 输出的结果
outside: 36670568
inside: 36670472
5
36670472
>> 分析:使⽤了全局变量,那么函数的值在经过函数的计算之后记录新值,也就是说a这个变量之前是记录1这个数的地址,在函数内部重新赋值之后
a = 1
print'outside:',id(a)
def fun():
#global a # 注释掉全局变量声明
a = 5
print'inside:',id(a)
fun()
print a
print id(a)
>>  输出的结果
outside: 33066088
inside: 33065992
1
33066088
>>分析:结合上⾯的⽰例,就会发现函数执⾏完后,局部变量的函数的⽣命周期也就结束,被系统回收。
4)函数的返回值
返回值:函数运算的结果,还需要进⼀步操作时,给⼀个返回值
return⽤来返回函数执⾏结果的,如果没有返回值,默认为None
python可以间接返回多个值(返回了⼀个元组)
⼀旦遇到return,函数执⾏结束,后⾯的代码不会执⾏
def mypow(x, y=2):
return x ** y, x + y
print'hello'#结合结果可以看出return之后的语句不会被执⾏
# 对元组进⾏解包
a, b = mypow(3)      #这个时候发现形参需要两个参数,实参只有⼀个,这个时候,y=2
为默认参数
print a, b
5)函数之四⼤参数
参数:形参 实参
形参:位置参数 默认参数 可变参数 关键字参数
#位置参数:形参和实参个数必须保持⼀致
def getInfo(name,age):
print name,age
getInfo(age=12,name='tom')
>>>####  输出结果
tom 12
>>>####  说明顺序没有关系,变量名和输⼊⼀⼀对应即可
# 默认参数:形参和实参的个数可以不⼀致
def mypow(x,y=2):
"""
求x的y次⽅,y的值默认为2
:
param x:
:param y:
:return:
"""
print x**y
mypow(4)
# 默认形参可以改变
mypow(4,3)
>>#
16#默认参数y=2
64#也可以给赋值y=3
>>#
# 可变参数
def mysum(*agrs):
"""
*args:是可变参数
args:是元组类型数据
args:名字可变(因为是形参名字可变)
:param agrs:
:return:
"""
print agrs
sum = 0
for item in agrs:
sum += item
print sum
print sum
#对list tuple set 解包时,只需要在变量前加 *
nums = [1,2,3,4,66,78]
nums1 =(1,2,3,4,5)
nums2 = {1,2,3}
# *nums:解包
mysum(*nums2)            #可以减少错误和⼯作量
mysum(1,2,3,4,5)          #也可以不使⽤中间变量,之间赋值
>>>#
(1, 2, 3)
6
(1, 2, 3, 4, 5)
15
>>>#
# 4.关键字参数
def getStuInfo(name,age,**kwargs):
"""
**kwargs:是⼀个字典;可以传递任意多的key-value对
:
param name:
:param age:
:param kwargs:
:return:
"""
print name,age
print kwargs
getStuInfo('tom',18,hobbies=['code','running'],gender ='female')
>>>>>##
tom 18
{'gender': 'female', 'hobbies': ['code', 'running']}
>>>>>## key-value对任意输出
6)函数的装饰器
装饰器:
“在不改变原函数的基础上,给函数增加功能”
把⼀个函数当作参数,返回⼀个替代版的函数
本质上:返回函数的函数

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论