Python快速编程入门——第6章 Python函数

作者 : 郭然 本文共3292个字,预计阅读时间需要9分钟 发布时间: 2020-05-2 共379人阅读

第6章 Python函数

一、什么是函数
二、函数的定义和使用
三、函数的参数
四、函数的返回值
五、函数的四种类型
六、函数的嵌套使用
七、变量的作用域

一、什么是函数

函数是组织好的,可重复利用的,用来实现单一的或相关联功能的代码段,它能够提高应用的模块化和代码的重复利用率。
二、函数的定义和使用

在Python中定义函数的格式
def 函数名(参数列表):
“函数_文档字符串”
函数体
return 表达式
函数定义规则

函数代码块以def开头,后面紧跟的是函数名和圆括号()。
函数名的命名规则跟变量的命名规则是一样的,即只能是字母、数字和下划线的任何组合,但是不能以数字开头,并且不能跟关键字重名。
函数的参数必须放在圆括号总。
函数的第1行语句可以选择性地使用文档字符串来存放函数说明。
函数内容以冒号起始,并且缩进
return表达式结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None。

def print_into():
print('--------------------------------')
print('人生苦短,我用Python')
print('--------------------------------')
print_into()#调用函数
#不调用是不会打印出结果的

三、函数的参数

函数参数的船体
可以传递从其他地方接受的值。

def add(a,b):
c = a + b
print(c)
add(11,22)
#结果:
#33

函数参数的传递图片

默认参数
定义参数,可以给函数的参数的设置默认值,这个参数就被称为默认参数。当调用参数的时候,由于默认参数在定义时已经被赋值,所以可以直接忽略,而其他参数时必须传入值的。如果默认值没有传入值,则直接使用默认值;如果默认参数入了值,则使用传入的新值替代。

def print_info(name,age=30):
print("Name:",name)
print("Age:",age)
print_info(name="miki")
print_info(name='miki',age=9)

不定长参数
def 函数名([formal_args,] args, kwargs):
“函数_文档字符串”
函数体
return 表达式
在上述格式中,函数共有3个参数。其中formal_args为形参,*args和kwargs为不定长参数。当调用函数的时候,函数传入的参数个数会优先匹配formal_args参数的个数。如果传入的参数个数和formal_args参数个数相同,不定长参数会返回空的元组或字典;如果传入参数的个数比formal_args参数的个数多,不定长参数会返回:
(1)如果传入的参数没有指定名称,那么args会以元组的形式存放这些多余的余数;
(2)如果传入的参数指定了名称,如m=1,那么**kwargs会以字典的形式存放这些被命名的参数,

def test(a,b,*args):
print(a)
print(b)
print(args)
def test2(a,b,*args,**kwargs):
print(a)
print(b)
print(args)
print(kwargs)
test(11,22)
print("="*10)
test(11,22,33,44,55,66,77,88,99)
test2(11,22,33,44,55,66,77,m=88,n=99)
#11
#22
#()
#==========
#11
#22
#(33, 44, 55, 66, 77, 88, 99)
#11
#22
#(33, 44, 55, 66, 77)
#{'m': 88, 'n': 99}

四、函数的返回值

所谓“返回值”,就是程序完成一件事情后,最后给调用者的结果。比如,定义一个函数来获取室内的温度,一旦调用这个函数,函数就会把拿到的温度值返回给调用者,这个温度值就是函数的返回值。在Python中,函数的返回值时使用return语句来完成的。

def add(a,b):
return a+b
print(add(1,2))
#结果
#3

五、函数的四种类型

根据有没有参数和返回值,函数大概可以分为四种类型:
(1)函数无参数,无返回值
(2)函数无参数,有返回值
(3)函数有参数,无返回值
(4)函数有参数,有返回值

无参数、无返回值的函数

def print_menu():
print("-----------------------")
print(' **刷刷锅 点菜系统')
print('1. 羊肉刷刷锅')
print('2. 羊肉刷刷锅')
print('3. 羊肉刷刷锅')
print('-----------------------')
print_menu()
#结果
#-----------------------
# **刷刷锅 点菜系统
#1. 羊肉刷刷锅
#2. 羊肉刷刷锅
#3. 羊肉刷刷锅
#-----------------------

无参数、有返回值的函数
此类函数不能接收参数,但是可以返回某一个数据,一般情况下采集数据时会用此类函数。

def get_temperature():
return 24
temperature = get_temperature()
print("当前温度",temperature)
#当前温度 24

有参数、无返回值的函数
在实际开发中,有参数、无返回值的函数用的极少,这是因为函数作为功能模块,既然传入了参数,绝大多数情况时希望使用返回值的。

def test(number_one,number_two):
result=number_one+number_two
print('计算结果%d'%result)
test(1,2)
#结果
#计算结果3

有参数、有返回值的函数
此类函数不仅能接收返回值,还可以返回某一个数据。

def calculate(number):
result = 0
i = 1
while i<=number:
result = result +i
i +=1
return result
result = calculate(100)
print('1~100累计和',result)
#结果
#1~100累计和 5050

六、函数的嵌套使用

在一个函数中调用了另外一个函数,这就是所谓的函数的嵌套调用。

def func_one():
print('----func_one start----')
print('这里是func_one函数执行的代码')
print('----func_one end----')
def func_two():
print('----func_two start----')
func_one()
print('----func_two end----')
func_two()
#结果
#----func_two start----
#----func_one start----
#这里是func_one函数执行的代码
#----func_one end----
#----func_two end----

七、变量的作用域

LEGB原则
Python中,程序的变量并不是在那个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的。

a = 10
def test():
a = 20
print('a的值是%d'%a)
test()

变量的作用域决定了在那一部分可以访问那个特定的变量名称。Python变量的作用域一共有
4种,分别是:
L(Local):函数内的区域,包括局部变量和参数
E(EnClosing):外面嵌套函数区域,常见的是闭包函数的外层函数,
G(Global):全局作用域
B(Built-in):内建作用域
Python中变量是采用L->E->G->B的规则查找,即Python检索变量的时候,会优先在局部作用域查找,如果没有找到,便会去局部外的区域找(例如闭包),再找不到就会去全局作用域中找,最后再去内建作用域找。

————————————————
版权声明:本文为CSDN博主「菠萝大师」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xhb29/article/details/86241976

打赏
VIP部落之Python分站——Python部落格,Python编程爱好者的天堂。
Python部落格 » Python快速编程入门——第6章 Python函数

常见问题FAQ

发表评论

提供最优质的资源集合

立即查看 了解详情