运维开发网
广告位招商联系QQ:123077622
 
广告位招商联系QQ:123077622

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

运维开发网 https://www.qedev.com 2021-04-08 08:50 出处:51CTO 作者:互联网老辛
文章目录1. 函数的概念2. 函数调用的参数传递3. 函数的返回值4. 函数参数定义总结1)概念2) 为什么要用函数3) 函数的语法1) 案例1a)可变的位置参数:b)个数可变的关键字形参:1. 函数的概念1)概念函数就是执行特定的任务已完成特定功能的一段代码2) 为什么要用函数为什么要用函数呢?复用代码隐藏实现细节提高可维护性提高可读性便于调试3) 函数的语法函数的创建: def 函数名(输入参

文章目录

    • 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)

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

  • 定义函数需要使用def关键词
  • function_name表示函数名,后面的冒号(:)不要忘记,并且缩进
  • [para1,para2…paraN]表示参数,可以省略,也可以多个参数
  • [return value1,value2…valueN]表示返回值,可以无返回值,也可以多个返回值

    需要注意的是自定义函数有返回值,主调函数就需要接受返回的结果

2. 函数调用的参数传递

函数传递指的就是函数调用时候的传递

这里有三个概念:

  • 形参: 比如上面例子中的a,b

    形参的位置在函数的定义处

  • 实参: 下面的例子就是实参

    result=calc(10,20) #这里的10,20 就是实参,实参的位置在函数的调用处

  • 位置传参: 就是我们的calc(10,20) 就传递给了

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

    这里对应的就是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)

输出结果:

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

这里的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))

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

可以看到,结果为一个元组,但元组里有两个列表。

函数的返回值:

  • 如何函数没有返回值(函数执行完之后,不需要给调用出提供数据),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)

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

最后的结果为元组

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

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

这种结果为字典

总结

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

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号