内容正文:
第7章 函数
函数的基本使用
函数的参数传递
可变对象作为参数
实战10:哥德巴赫猜想
变量的作用域
函数的递归调用
实战11:快速排序
掌握函数的基本使用方法
掌握函数的参数传递方式
理解变量的作用域
理解函数的递归调用
7.1
函数的基本使用
函数的定义
函数的返回值
函数的注释
7.1 函数的基本使用
自定义函数
7.1.1 函数的定义
def 函数名(参数列表):
函数体
return 返回值列表
def是关键字,表示定义一个函数;
函数名是一个标识符,注意不能与关键字重复;
参数列表可以有零个、一个或多个,没有参数时圆括号也需要保留;
函数体的起始位置可以选择以注释形式进行函数说明,此时的注释在Python中被称为文档字符串;
return语句可以省略,当需要返回值时,return是函数结束的标志,会将返回值列表返回给调用者。
7.1 函数的基本使用
定义计算矩形面积的函数
7.1.1 函数的定义
def cal_square(length,width):
return length * width
result = cal_square(4,3)
print(result)
12
在定义函数时的参数列表里面的参数是形式参数,简称为“形参”,指length和width;当调用函数时,要传给函数内部的参数是实际参数,简称为“实参”,指cal_square(4,3)中的4和3。
7.1 函数的基本使用
进行函数调用时,传递参数实现了从函数外部向函数内部进行数据传输,而return语句则实现了从函数内部向函数外部输出数据。函数的返回值可以是空值、一个值或者多个值。
如果定义函数时没有return语句或者只有return语句而没有返回数据时,则Python会认为此函数返回的是None,None表示空值。
7.1.2 函数的返回值
7.1 函数的基本使用
7.1.2 函数的返回值
def borrow_books(name,book,day):
print(f"{name}借阅了书籍《{book}》,预计借阅{day}天")
borrow_books("小千","红楼梦",14)
borrow_books("小锋","西游记",10)
小千借阅了书籍《红楼梦》,预计借阅14天
小锋借阅了书籍《西游记》,预计借阅10天
def borrow_books(name,book,day):
print(f"{name}借阅了书籍《{book}》,预计借阅{day}天")
borrow_books("小千","红楼梦",14)
result = borrow_books("小锋","西游记",10)
print(result)
小千借阅了书籍《红楼梦》,预计借阅14天
小锋借阅了书籍《西游记》,预计借阅10天
None
打印借阅书籍情况
打印函数的返回结果
7.1 函数的基本使用
7.1.2 函数的返回值
def cal_digit(number):
high = number // 100
mid = number // 10 % 10
low = number % 10
return high, mid, low
result = cal_digit(543)
print(result)
a,b,c = cal_digit(543)
print(a,b,c)
(5, 4, 3)
5 4 3
求一个三位数百、十、个位的值
当函数的返回值为多个时,返回的多个值是由逗号隔开的,此时有了构成元组的标志,函数的返回值构成了一个元组
7.1 函数的基本使用
7.1.3 函数的注释
def is_leap():
pass
当定义函数却没有写函数体时,代码会高亮显示,表示语法有问题,程序无法顺利运行,此时pass可以充当未完成的代码,使得整个程序能够正常运行。在if、for、while等语句后的语句块,也可以用pass进行占位。
7.1 函数的基本使用
7.1.3 函数的注释
def is_leap(year):
"""
判单年份是不是闰年
:param year:年份
:return:返回值为布尔类型
"""
if (year%4 == 0 and year%100 != 0) or year%400 == 0:
return True
else:
return False
print(is_leap.__doc__)
判单年份是不是闰年
:param year:年份
:return:返回值为布尔类型
在函数体的起始位置键入三引号进行函数注释(