05---python面向过程的编程---函数

💡大纲

⭕在解决一个复杂问题的时候,顺序式编程在可读性和代码复用性方面的体验感很差,可以采用面向过程的编程。

👉掌握函数的定义和调用

👉掌握位置参数、关键字参数和参数默认值的使用

👉掌握参数返回值的定义和使用

一、函数的定义及调用

(一)为什么要用函数

  • 提高代码复用性,简化代码框架,把需要重复利用的代码抽象出来,封装为函数

  • 采用模块化设计的思想,将复杂的大问题分解成一系列小问题来解决

  • 利于代码的维护和管理,对于某个函数的修改相对于顺序式程序的修改更简单方便

(二)创建和调用函数

💡整体结构:输入---处理---输出

1、函数的定义

def  函数名(参数):

  函数体

  return 返回值

2、三要素:参数、函数体、返回值

3、函数的调用

# 求正方形的面积
def fun(side):
    area = pow(side, 2)
    return area    

area = fun(5)
area    # 25

(三)参数

1、形参与实参

👉形参(缺省参数、不定长参数):函数定义时的参数---变量名

👉实参(位置参数、关键字参数):函数调用时的参数---变量的值

2、位置参数

👉严格按照位置顺序,用实参对形参进行赋值(关联)

👉实参与形参个数必须一一对应,一个不能多,一个不能少

👉一般用在参数比较少的时候

def fun(x, y, z):
    print(x, y, z)
    
fun(1, 2, 3)    # x = 1; y = 2; z = 3

在/左边必须是位置参数 

3、关键字参数

👉打破位置限制,以形参 = 实参的形式进行值的传递

👉实参与形参数量上一一对应

👉多用在参数比较多的场合

def fun(x, y, z):
    print(x, y, z)
    
fun(y=1, z=2, x=3)    # x = 3; y = 1; z = 2

👉位置参数可以与关键字参数混合使用位置参数必须放在关键字参数前面

👉不能为同一个形参重复传值

fun(1, z=2, y=3)    # 1 3 2
fun(1, z=2, x=3)    # 报错,重复给x赋值

*左边可以是任意类型的参数,右边必须是关键字参数(不然会被打包)

4、默认参数

👉定义阶段就给形参赋值

👉默认参数必须放在非默认参数后面

👉调用函数时,可以不对该形参传值;也可以按正常的形参进行传值,会覆盖默认值

👉默认参数赋值等号两侧不需加空格

def stu(name, age, sex="male"):
    print(name, age, sex)

stu("努力君", 24)              # 努力君 24 male
stu("幽默君", 25, "female")    # 幽默君 25 female

⚠️默认参数应该设置为不可变类型(数字、字符串、元组)

💡让参数变成可选的

def name(first, last, middle=None):
    if middle:
        return first+middle+last
    else:
        return first+last

print(name("马", "梅"))          # 马梅
print(name("马", "梅", "冬"))    # 马冬梅

5、元组型不定长参数 *args(元组的打包与解包)

💡不知道会传过来多少参数,已知数量的形参正常赋值,多余的传给*args  

💡不知道会传过来多少参数,*args在前,后面的参数得用关键字参数,这里可以解释为什么*左边可以是任意类型的参数,右边必须是关键字参数

def fun(x, y, z, *args):
    print(x, y ,z)
    print(args)
    
fun(1, 2, 3, 4, 5, 6)    # 多余的参数,打包传递给args
'''
1 2 3
(4, 5, 6)
'''

💡以将实参打散,使用*对其进行解包

args = (1, 2,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盾山狂热粉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值