天天看点

Pyhton函数

函数语法格式

def function_name( parameters ): 		# 关键字 函数名 (参数) 冒号结尾
    "function_docstring"		# 可选语句 ,docstring的文档字符串,生成有关程序中函数的文档;
    function_suite		# 代码行;
    return [expression]		# 返回值,可选语句,将表达式传递给调用者,不带参数的return语句与return none相同;

function_name( )	# 调用函数
           

形参:函数完成其工作所需的一项信息

实参:调用函数时传递给函数的信息

形参可以有多个

函数调用中每个实参都必须关联到函数定义中的一个形参。

传递实参

  • 位置实参

    按顺序将函数调用中的实参关联到函数定义中相应的形参(实参与形参的顺序要求一致)

def personnel_info(name,age):
    '''Display personnel information'''
    print('我的名字是' + name.title(), '年龄' + age)

# 函数的多次调用
personnel_info('xiaoming','18')		# 正确的顺序传递实参
personnel_info('xiaogang','20')
personnel_info('11','xiaohua')		# 错误的顺序传递实参,此为位置实参的缺陷。
           
  • 关键字实参

    传递给函数key-value,关键字实参无需考虑函数调用中的实参顺序,还清楚地指出了函数调用中各个值的用途。

def personnel_info(name,age):
    '''Display personnel information'''
    print('我的名字是' + name.title(), '年龄' + age)

personnel_info(name='xiaoming',age='18')
personnel_info(age='20',name='xiaohua')		# 无需考虑实参与形参的顺序
           
  • 形参的默认值

    给形参指定默认值,在函数调用时可以不指定相应的实参,也可以指定相应的实参来覆盖默认值;

    形参在没有指定实参时,形参将使用默认值;

    使用默认值可简化函数调用,执行过程是按照位置实参来的。

    使用默认值时, 在形参列表中必须先列出没有默认值的形参, 再列出有默认值的实参。 这让Python依然能够正确地解读位置实参。

def personnel_info(name,age = '20'):		# 设置age的形参默认值
    '''Display personnel information'''
    print('我的名字是' + name.title(), '年龄' + age)

personnel_info(name='xiaoming')		# 设置age的形参默认值,在函数调用时无需再设置age的实参。
personnel_info(name='xiaoming',age='10')		# 指定相应的实参来覆盖默认值
           
  • 等效的函数调用

    位置实参、 关键字实参和默认值可以混合使用

返回值

函数并非总是直接显示输出,相反,它可以处理一些数据, 并返回一个或一组值。在函数中,可使用 return 语句将值返回到调用函数的代码行。

返回值让你能够将程序的大部分繁重工作移到函数中去完成, 从而简化主程序。

def personnel_info(name,age):   # 1.读取形参;3.实参赋值形参
    '''Display personnel information'''
    table = '名字:' + name + '\t年龄:' + age    # 4.代码行,调用函数
    return table    # 5.返回调用函数的结果
human = personnel_info(name='xiaoming',age='18')    # 2.读取实参
print(human)    # 6.打印调用函数的结果
           

函数可返回任何类型的值, 包括列表和字典等较复杂的数据结构。