【Python从零到壹】Python基础之函数的应用

举报
互联网老辛 发表于 2021/06/08 23:08:30 2021/06/08
【摘要】 文章目录 1. 函数的概念1)概念2) 为什么要用函数3) 函数的语法 2. 函数调用的参数传递1) 案例1 3. 函数的返回值4. 函数参数定义a)可变的位置参数:b)个数可变的关键字形参: 总结 1. 函数的概念 1)概念 函数就是执行特定的任务已完成特定功能的一段代码 2) 为什么要用函数 为什么要用函数呢? 复用代码隐藏实现细节...

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. 函数参数定义

  1. 函数定义默认值参数: 给形参设置默认值,只有与默认值不符的时候才需要传递实参
# 作者:互联网老辛
# 开发时间: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与默认值不符,会传递实参

  1. 函数的参数定位为个数可变的位置参数及个数可变的关键字参数

这个指的是定义的时候的参数个数。

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

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。