代码改变世界

模块化编程-函数

2021-11-04 11:22  何小六soso  阅读(174)  评论(0编辑  收藏  举报

模块化编程-函数


什么是模块化编程?

模块化编程是指把程序进行封装(函数封装、对象封装、文件封装等)

什么是函数?

function -> 函数、功能
函数就是一个具有特定功能的代码块

函数的作用?

函数就是把代码进行封装,以提高代码的重用性,提高开发效率,并且降低了后期的维护成本

函数的定义和使用

函数的定义格式:
    1.函数定以后不调用不执行
    2.不能再函数定义前调用函数
    3.函数的调用不受次数影响
    4.函数的命名要遵守命名规范
        字母数字下划线,不能以数字开头
        严格区分大小写,不能使用关键字
        命名最好有意义,且不要使用中文
        内置函数不冲突,冲突之后被覆盖

# 定义函数【基本结构】
def 函数名([参数列表]): # []代表非必传
    当前函数的具体代码
    。。。。
    def love():
        print('i')
        print('love')
        print('python')
# 函数封装完并不会执行,只是把函数定了而已
# 如果要使用定义的函数,那么需要用语法来调用函数
#函数的调用
函数名():
    love()
    love()
    love()
    。。。。#函数的调用不受次数限制
    
    # 带有阐述的函数如何定义

函数的参数:

  • 函数在定义时,可以在列表的位置定义形参
  • 如果函数有形参,那么在调用时必须传递参数(实参)
  • 实参将参数传递给形参的过程,本质上就是变量的赋值操作
def love(w):
    print(f'ilove{w}')

# 调用带有形参的函数时需要传递实参
love('python')

函数中的参数类型

普通参数、默认参数、收集参数、命名关键字参数、关键字参数收集

普通参数就是位置参数,也叫顺序参数,是必须传递的参数

def func(x,y):
    print(x,y)

func(1,2)

默认参数


#要求三个参数,至少传递两个,最后一个参数就是默认参数,默认参数需要在定义形参时指定默认值,默认参数必须排在普通参数后边

def func1(x,y,i=100):
    print(x,y,i)
#没有传递参数,调用时使用默认值100
func1(1,2)
#覆盖默认参数
func1(1,2,3)
def func2(x=100,y,i=100): #x作为默认参数必须在y后面赋值,此时函数会报错
    print(x,y,i)

收集参数 *args


#定义一个形参,专用手机多余的实参,可理解成实参未定,直接用一个形参(*args)接收,收集参数可以使用任意字符串命名

def func2(x=0,*args):
    if x==0:
        print('进行加法运算',args)
    else:
        print('减法运算',args)

func2(1,2,3,4) #agers是个元组,打印结果:减法运算 (2, 3, 4)
def func2(x=0,y=2*args):
    pass

命名关键字参数

# 关键字参数定义在收集参数后面,关键字必须通过形参的名字进行传参
def love(a,b,c=3,*args,name):
    print(a,b,c,*args)
    print(args)
    print(name)
    
#调用
love(1,2,4,2,2,2,name=5)

#在调用普通函数时需要按照顺序进行参数的传递
#也可以把普通函数的普通参数按照关键字参数进行传递
def love(name,age):
    print(name,age)
#调用
love(name=1010,age='aaa')

关键字参数收集**args

def love(a,b,c=3,*args,name,age,**kwargs):
    print(a,b,c)
# 普通手机参数,会把多余的参数收集成为元组
    print(args) 
 #关键字参数收集,会把多余的关键字残守收集为字典(key:value)    
    print(kwargs)
    
#调用
love(1,2,3,a,b,name='python',age=12,sex='man',id=1)

所有参数的摆放

  • 实参:普通实参在前,关键字参数在后
  • 形参:
    1. 关键字收集参数一定在最后出现
    2. 收集参数推荐在普通参数之后使用
  • 推荐顺序:普通形参,收集参数,关键字收集参数

函数返回值

函数除了可以满足功能之外,还可以返回所需的一些内容
函数使用return关键字指定返回数据,可以返回任意类型的数据
函数返回值可以将返回数据传递到调用方,调用方可以使用变量接收或用于判断等方式处理

没有返回值的函数

def love():
    print('aaaa')

函数中指定返回内容,使用return关键字

def love(a,b):
    res=f'{a} love {b}'
    return res
print(love('i','python')
#函数体中return之后的代码不会被执行,return也代表函数体的结束

def love(x,y):
    res=(x)
    retrun res
    print(y) #此行代码在return之后,不会被执行

函数的分类:

1.执行过程函数:函数体内完成一定的功能即可,没有返回值
2.返回值函数:函数体内完成一定的功能,并且返回一个结果到函数的调用出