Python3 函数基础1

定义函数

函数不会改变某一个功能的代码, 函数只是将这个功能的代码封装起来, 方便后续调用.

# 基本结构
def 函数名(参数):
    '''文档注释, 函数功能的描述'''
	代码块


# 需要注意的是函数定义阶段, 只检测语法, 不执行代码

def max_2():
    '''给定两个数, 打印较大的数''' 
    x = 10 
    y = 20
    if x > y:
        print(x)
    else:
        print(y)

# 函数名.__doc__方法可查看函数的文档注释      
print(max_2.__doc__)  # 给定两个数, 打印较大的数

定义函数的三种形式

空函数

def func():
    pass

有参函数

def max_2(x, y):
    '''打印较大的数''' 
    if x > y:
        print(x)
    else:
        print(y)

无参函数

def max_2():
    '''给定两个数, 打印较大的数''' 
    x = 10 
    y = 20
    if x > y:
        print(x)
    else:
        print(y)

函数的调用

def max_2(x, y):
    '''打印较大的数''' 
    if x > y:
        print(x)
    else:
        print(y)
        
# 使用函数名加括号即可调用函数
# 有参函数调用时必须传入相应数量的参数
max_2(20, 10)  # 20

函数的返回值

def max_2(x, y):
    '''打印较大的数''' 
    if x > y:
        print(x)
    else:
        print(y)
        
retur = max_2(20, 10) 
print(retur)  # None

# 注意, 原函数只进行了结果打印, 函数本身并未返回任何值, 因此我们打印retur结果为None


def max_2(x, y):
    '''打印和返回较大的数''' 
    if x > y:
        print(x)
        return x
    else:
        print(y)
        return y
    
retur = max_2(20, 10) 
print(retur)  # 20

# 我们将原函数进行简单的改造, 加入return, 现在我们打印retur会显示函数的返回值

# return有如下几个特性:
# 1. return可以返回一个个值, 没有返回值则返回None
# 2. 没有return则返回None
# 3. return会终止函数, 不会运行下面的代码
# 4. return可以返回多个值(通过逗号隔开), 返回值以元祖的形式接受


函数的参数

形参 (parameter)

函数定义阶段时括号内设置的参数, 相当于一个变量名, 可以接收被传入的值

实参(argument)

实参是在函数调用阶段传给函数(形参)的一个具体的值, 相当于变量值, 可以为所有数据类型

# 函数定义
def max_2(x, y):  # x, y 即为形参
    '''打印较大的数''' 
    if x > y:
        print(x)
    else:
        print(y)

# 函数调用
max_2(10, 20)  # 10, 20 即为实参

位置形参与位置实参

当函数定义阶段时设置了多个形参时, 则调用函数时也必须依次传入对应数量的实参, 我们把按照从左到右的排列, 一一对应的形参和实参称为位置形参和位置实参

# 函数定义
def max_2(x, y):  # x, y 即为位置形参
    '''打印较大的数''' 
    if x > y:
        print(x)
    else:
        print(y)

# 函数调用
max_2(10, 20)  # 10, 20 即为位置实参

默认形参

默认形参既在函数定义阶段就已经给形参设定了一个默认值

def max_2(x, y = 10):  # y 即为默认形参, 默认形参必须在位置形参的后面
    '''打印较大的数''' 
    if x > y:
        print(x)
    else:
        print(y)

# 函数调用阶段仍能给默认形参传值, 如果没有给默认形参传值,即为默认值
max_2(20)      # y = 10
max_2(20, 30)  # y = 30

关键字实参

关键字实参即为在函数调用阶段, 按照形参名(关键字)给形参传值

def max_2(x, y):
    '''打印较大的数''' 
    if x > y:
        print(x)
    else:
        print(y)

# 函数调用
max_2(y=10, x=20)  
max_2(10, y=20)  # 关键字实参必须在位置实参的后面, 否则会报错
max_2(10, x=20) # 报错,x被多次赋值

posted @ 2019-09-19 16:08  MrBigB  阅读(130)  评论(0编辑  收藏  举报