【Python从零到壹】Python基础之函数的应用
1. 函数的概念
1)概念
函数就是执行特定的任务已完成特定功能的一段代码
2) 为什么要用函数
为什么要用函数呢?
- 复用代码
- 隐藏实现细节
- 提高可维护性
- 提高可读性便于调试
3) 函数的语法
函数的创建:
def 函数名(输入参数):
函数体
return
def funtion_name([para1,para2...paraN]):
statement1 statement2 .... [return value1,value2...valueN]
- 1
- 2
- 3
- 4
- 5
- 6
函数名字是自己起的,输入参数的入口,就相当于水果机的入口。
我把水果放进水果机,最终出来了果汁
案例:
# 作者:互联网老辛
# 开发时间:2021/4/4/0004 6s
def calc(a,b): c=a+b return c
result=calc(10,20)
print(result)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 定义函数需要使用def关键词
- function_name表示函数名,后面的冒号(:)不要忘记,并且缩进
- [para1,para2…paraN]表示参数,可以省略,也可以多个参数
- [return value1,value2…valueN]表示返回值,可以无返回值,也可以多个返回值
需要注意的是自定义函数有返回值,主调函数就需要接受返回的结果
2. 函数调用的参数传递
函数传递指的就是函数调用时候的传递
这里有三个概念:
-
形参: 比如上面例子中的a,b
形参的位置在函数的定义处 -
实参: 下面的例子就是实参
result=calc(10,20) #这里的10,20 就是实参,实参的位置在函数的调用处 -
位置传参: 就是我们的calc(10,20) 就传递给了
这里对应的就是a=10, b=20, 这种就是位置实参。 -
关键字传参:
# 作者:互联网老辛
# 开发时间:2021/4/4/0004 6s
def calc(a,b): c=a+b return c
result=calc(b=10,a=20) #这里的10,20 就是实参,实参的位置在函数的调用处
print(result)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
这里会根据等号左侧的变量名字 b=10 ,这个b就是关键字参数
当我们使用关键字参数,就会根据关键字名字就查找,这个时候位置实参就不用了。
1) 案例1
实参名称和形参名称可以不一样:
# 作者:互联网老辛
# 开发时间:2021/4/4/0004 6s
def fun(agr1,agr2): print('agr1',agr1) print('agr2',agr2) agr1=100 agr2.append(10) print('agr1',agr1) print('agr2',agr2)
n1=10
n2=[11,22,33,44]
fun(n1,n2)
print('n1',n1)
print('n2',n2)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
输出结果:
这里的n1和n2和原来的agr1,agr2不同,但是没关系,一样可以。
这里需要注意的点:
- 如果是不可变对象,在函数体修改,不会影响实参的值,agr1修改为100,不会影响n1的值
- 如果可变对象,在函数体修改会影响到实参的值,agr2的修改,会影响n2的值
3. 函数的返回值
- 函数返回多个值时,结果为元组
# 作者:互联网老辛
# 开发时间:2021/4/4/0004 6s
def fun(num): odd=[] # 存奇数 even=[] #c存偶数 for i in num: if i%2: odd.append(i) else: even.append(i) return odd,even
#a函数的调用
lst=[11,22,33,44,55,66,49.80]
print(fun(lst))
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
可以看到,结果为一个元组,但元组里有两个列表。
函数的返回值:
- 如何函数没有返回值(函数执行完之后,不需要给调用出提供数据),return可以省略不写
- 函数的返回值,如果是1个,直接返回类型
- 如果函数的返回值是多个,返回结果为元组
4. 函数参数定义
- 函数定义默认值参数: 给形参设置默认值,只有与默认值不符的时候才需要传递实参
# 作者:互联网老辛
# 开发时间:2021/4/4/0004 6s
def fun(a,b=10): #b就是默认值 print(a,b) fun(100)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
这样的结果就是a=100,b=10
如果ab都给值`
# 作者:互联网老辛
# 开发时间:2021/4/4/0004 6s
def fun(a,b=10): #b就是默认值 print(a,b) fun(20,30)`
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
这样的结果就是a=20 ,b=30,这个时候b=30与默认值不符,会传递实参
- 函数的参数定位为个数可变的位置参数及个数可变的关键字参数
这个指的是定义的时候的参数个数。
a)可变的位置参数:
# 作者:互联网老辛
# 开发时间:2021/4/4/0004 6s
def fun(*agrs): #不知道传几个参数,这个叫*a也可以 print(agrs)
fun(10)
fun(10,20)
fun(10,20,30)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
最后的结果为元组
b)个数可变的关键字形参:
# 作者:互联网老辛
# 开发时间:2021/4/4/0004 6s
def fun(**args): #两颗星 print(args)
fun(a=10)
fun(a=10,b=20,c=30)
- 1
- 2
- 3
- 4
- 5
- 6
这种结果为字典
总结
函数用的还是比较多的,在每种编程语言中都有它的身影,所以这块一定要多练习。
文章来源: zmedu.blog.csdn.net,作者:互联网老辛,版权归原作者所有,如需转载,请联系作者。
原文链接:zmedu.blog.csdn.net/article/details/115426584
- 点赞
- 收藏
- 关注作者
评论(0)