ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2021-04-07 14:52:21  阅读:138  来源: 互联网

标签:10 20 函数 Python 零到 print fun 实参


文章目录

    • 1. 函数的概念
    • 2. 函数调用的参数传递
    • 3. 函数的返回值
    • 4. 函数参数定义
    • 总结
    • 1)概念
    • 2) 为什么要用函数
    • 3) 函数的语法
    • 1) 案例1
    • a)可变的位置参数:
    • b)个数可变的关键字形参:


1. 函数的概念

1)概念

函数就是执行特定的任务已完成特定功能的一段代码

2) 为什么要用函数

为什么要用函数呢?

  • 复用代码
  • 隐藏实现细节
  • 提高可维护性
  • 提高可读性便于调试

3) 函数的语法

函数的创建:
def 函数名(输入参数):
函数体
return

def funtion_name([para1,para2...paraN]):
	statement1
    statement2      ....[return value1,value2...valueN]

函数名字是自己起的,输入参数的入口,就相当于水果机的入口。

我把水果放进水果机,最终出来了果汁

案例:

# 作者:互联网老辛# 开发时间:2021/4/4/0004 6sdef calc(a,b):
    c=a+breturn c
result=calc(10,20)print(result)

在这里插入图片描述

  • 定义函数需要使用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 6sdef calc(a,b):
    c=a+breturn c
result=calc(b=10,a=20) #这里的10,20 就是实参,实参的位置在函数的调用处print(result)

这里会根据等号左侧的变量名字 b=10 ,这个b就是关键字参数

当我们使用关键字参数,就会根据关键字名字就查找,这个时候位置实参就不用了。

1) 案例1

实参名称和形参名称可以不一样:

# 作者:互联网老辛# 开发时间:2021/4/4/0004 6sdef 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)

输出结果:
在这里插入图片描述

这里的n1和n2和原来的agr1,agr2不同,但是没关系,一样可以。

这里需要注意的点:

  • 如果是不可变对象,在函数体修改,不会影响实参的值,agr1修改为100,不会影响n1的值
  • 如果可变对象,在函数体修改会影响到实参的值,agr2的修改,会影响n2的值

3. 函数的返回值

  • 函数返回多个值时,结果为元组
# 作者:互联网老辛# 开发时间:2021/4/4/0004 6sdef 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))

在这里插入图片描述
可以看到,结果为一个元组,但元组里有两个列表。

函数的返回值:

  • 如何函数没有返回值(函数执行完之后,不需要给调用出提供数据),return可以省略不写
  • 函数的返回值,如果是1个,直接返回类型
  • 如果函数的返回值是多个,返回结果为元组

4. 函数参数定义

  1. 函数定义默认值参数: 给形参设置默认值,只有与默认值不符的时候才需要传递实参
# 作者:互联网老辛# 开发时间:2021/4/4/0004 6sdef fun(a,b=10):  #b就是默认值print(a,b)fun(100)

这样的结果就是a=100,b=10

如果ab都给值`

# 作者:互联网老辛# 开发时间:2021/4/4/0004 6sdef fun(a,b=10):  #b就是默认值print(a,b)fun(20,30)`

这样的结果就是a=20 ,b=30,这个时候b=30与默认值不符,会传递实参

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

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

a)可变的位置参数:

# 作者:互联网老辛# 开发时间:2021/4/4/0004 6sdef fun(*agrs): #不知道传几个参数,这个叫*a也可以print(agrs)fun(10)fun(10,20)fun(10,20,30)

在这里插入图片描述
最后的结果为元组

b)个数可变的关键字形参:

# 作者:互联网老辛# 开发时间:2021/4/4/0004 6sdef fun(**args): #两颗星print(args)fun(a=10)fun(a=10,b=20,c=30)

这种结果为字典

总结

函数用的还是比较多的,在每种编程语言中都有它的身影,所以这块一定要多练习。

标签:10,20,函数,Python,零到,print,fun,实参
来源: https://blog.51cto.com/xinsz08/2690257

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有