复杂的问题通常采用“分而治之”的思想解决,把大任务分解为多个小的任务,解决每个小的容易的子任务,从而解决较大的复杂任务。本单元介绍函数的声明和调用、返回值及函数的四种参数,以及两类特殊的函数等相关知识。
函数是可重复使用的,用来实现单一或相关联功能的代码段。函数能提高代码的重复利用率。Python提供了许多内建函数,如print()等。用户自己创建的函数称为用户自定义函数。
(一)函数的定义与调用
1. 函数定义的一般形式

def <函数名>([<形参列表>]):
[<函数体>]
说明:
. 函数使用关键字def(define的缩写)声明,函数名为有效的标识符和圆括号()。
. 任何传入参数和自变量必须放在圆括号中间,圆括号之间用于定义参数。
. 函数内容以冒号起始,并且缩进。
. 函数名下的每条语句前都要用Tab键缩进,没有缩进的第一行则被视为在函数体之外的语句,与函数同级的程序语句。
.return[表达式]结束函数,选择性地返回一个值给调用方。不带表达式的return 相当于返回None。
【例5-1】创建一个名为Hello的函数,其作用为输出“欢迎进入Python世界”的字符内容。
创建该函数的程序段如下:
def Hello():
print("欢迎进入Python世界")
Hello() #调用Hello()函数
在程序中调用Hello()函数,将显示“欢迎进入Python世界”的字符内容。
【例5-2】创建一个名为hsum()的函数,其作用为计算n 以内的整数之和(包含n)。
下面为实现计算n以内的整数之和的函数程序段:
def hsum(n):
s=0
for i in range(1, n+1):
s = s + i
return s
print(‘1+2+3+...+5=',hsum(5)) # 调用hsum()函数,求1+2+3+4+5之和
2. 函数的调用
在Python中,直接使用函数名调用函数。如果定义的函数包含有参数,则调用函数时也必须使用参数。
在Python中,函数调用的语法格式为:
函数名([实际参数])
函数调用时传递的参数是实参,实参可以是变量、常量或表达式。当实参个数超过一个函数时,用逗号分隔,实参和形参应在个数、类型和顺序上一一对应。对于无参函数,调用时实参为空,但( )不能省略。
【例5-3】创建显示如下排列字符的函数,并编写程序调用该函数。
**********************************
* 欢迎进入学生成绩管理系统 *
**********************************
程序代码如下:
def star():
str = "*****************************"
return str
def prn():
print("* 欢迎进入学生成绩管理系统 *")
print(star())
prn()
print(star())
【例5-5】应用函数,计算1~100的和。

程序的运行结果如下:
5050
#应用示例 求1=2+3+...+n
def hsum(n):
s=0
for i in range(1, n+1):
s = s + i
return s
n=int(input('n= '))
print('1+2+3+...+',n,' = ',hsum(n)) # 调用hsum()函数,求1+2+3+4+...n之和
【例】 利用海伦公式,求三角形面积。
程序代码如下。
import math
def triarea(x,y,z):
s =(x +y +z)/ 2
print(math.sqrt((s -x) * (s -y) * (s -z) * s) )
triarea(3,4,5)
程序运行结果如下。
6.0

