详细说一下 什么是 Python 函数?

i小码哥

共 4042字,需浏览 9分钟

 ·

2020-11-19 18:18



本文内容是介绍什么是函数?


如何创建属于自己的函数,完成想要的功能。




01

什么是  函数?



函数是一个独立且封闭完成特定功能的代码块,可以在任何地方被调用。

比如 print()函数,无论你在程序中的任何地方调用,都是输出()中的内容。


这种独立的封闭代码块又称为封装


也可以把函数理解为一个盒子。盒子里面的代码就是封装好的,完成特定的功能,外面的代码不属于函数。


有了封装以后,我们就可以把代码块用一个个函数表示,然后通过一个个的调用就可以把复杂的功能拆解,简单化。


这个过程就是面向过程的程序设计,与之对应的是面向对象的程序设计在面向过程的程序设计里面,函数是基本单元。


在Python中,函数分为内建函数和用户自定义函数。内建函数是Python程序语言已经给我们创建好了,直接可以使用。这一类的函数很多,我们不需要每一个都记住名字,常用的记住即可。


官方文档https://docs.python.org/3/library/functions.html给出了很多内建函数,如下表所示。


表  Python内建函数

Built-in  Functions

abs()

delattr()

hash()

memoryview()

set()

all()

dict()

help()

min()

setattr()

any()

dir()

hex()

next()

slice()

ascii()

divmod()

id()

object()

sorted()

bin()

enumerate()

input()

oct()

staticmethod()

bool()

eval()

int()

open()

str()

breakpoint()

exec()

isinstance()

ord()

sum()

bytearray()

filter()

issubclass()

pow()

super()

bytes()

float()

iter()

print()

tuple()

callable()

format()

len()

property()

type()

chr()

frozenset()

list()

range()

vars()

classmethod()

getattr()

locals()

repr()

zip()

compile()

globals()

map()

reversed()

__import__()

complex()

hasattr()

max()

round()



用户自定义函数就是自己根据需要实现的功能设计代码块。





02

为什么需要用函数?



无论任何编程语言,函数的作用都是一样的,概括起来主要有以下几个作用:


01:解决代码重复问题


在实际项目中,我们经常会遇到代码功能一样,但是参数不同。也就是给定不同的参数,得出不同的结果,


比如print(‘你好’) 与print('吃饭了吗?'),功能都是打印信息。我们不需要为“你好”,“吃饭了吗”编写同样的打印功能代码,也就是实现print函数。只需要用同一个函数(print)就可以完成同样的任务。


在代码中多次执行同一项任务时,无需反复编写该任务的代码,只需要调用该任务名称的代码块,也就是函数即可完成任务。



2:代码结构与思维结构一致

实际生活中,解决问题的方法一般是分步骤:


比如考大学,先从小学开始读,然后初中、高中。但是每一个阶段学的内容不同。我们只需要把每一个阶段编写为一个函数,然后按照我们思考的步骤组织在一起。有人认为从高中开始,再到小学;也有认为从小学到高中,按照自然规律。


这个就是思维方式的不同。在编程中,这些都是正确的,没有对错之分,能组合在一起完成功能即可。


例子
'''
使用函数描述:考上大学之前,我们需要经历的阶段有
'''
# 小学
primary_school()
# 初中
junior_middle_school()
# 高中
senior_middle_school()


3:利于分工合作


在实际项目中,要实现的功能往往比较复杂。我们只需要按照功能拆解的方法思考问题。


把一个大问题,拆解为几个小问题,每一个小问题就是一个函数。然后再把所有函数按照思考的过程组织在一起即可。


拆解问题的事情一般是公司架构师做的事情,定义好每一个函数的功能以及函数的接口,然后分配给不同的程序员去完成。


这个就是多人协作完成一个大的功能。


4:代码清晰、易读、易修改


代码被函数组织起来以后,整个程序文件变得有调理、有章法


我们只需要按照函数的结构阅读代码即可,非常清晰明了。


每一个函数完成特定的功能。如果某一个函数出错了,我们只需要调整该函数即可,方便快捷。


尤其是在代码行数比较多的时候能快速定位到错误所在的位置。





03

如何定义函数?



在Python语言中,函数的定义语法是:

 

定义函数语法
# 定义函数语法
def funtion_name(parameter1, parameter2, xxxxx):
语句1
语句2
returnxxxx



def:为关键字,告诉python这是一个函数


funtion_name:是函数名字。函数是完成特定功能的代码块,给这个代码块取一个名字就是函数名,通常用具有描述性的单词表示,比如check_events(),检查事件。函数名命名规则与变量的一样。


parameter1、paramter2 、xxxx:等是函数的参数,也就是函数可以加工处理的数据。参数可以有0到多个,但是名字不能重名。所有的参数用括号括起来(),即使0个参数也需要。


冒号(:):函数定义需要冒号结尾,此为python语法要求


语句1、语句2、return:函数的代码块,说明函数具体需要做什么事情,也就是需要实现什么样的功能。


(1)函数代码块必须缩进,使用tab建即可,不是空格键。这是Python语法要求。具有同样缩进的代码块才是一个完整的代码块

(2)例子:没有合理缩进,引发的常见错误之一

 

例子:没有缩进引起的错误
# 定义函数语法def funtion_name(parameter1,parameter):
语句1 语句2
return xxxx


File"/Users/yoni.ma/PycharmProjects/seven_days_python/Sixth_day/define_fun.py",line 18
语句1
^
IndentationError: expected an indented block


(3)语句1、语句2为函数具体执行内容,可以有1到多个语句。但是不能没有任何语句。否则代码错误。


(4)return:函数返回值,可有可无。根据自己设计的函数功能而决定。


①函数运行完成以后,如果需要返回一个值给调用该函数的地方,则使用return。否则不需要。

②return还表示函数的结束。尤其当代码比较多,各种while、if、 for等都有的函数。





04

如何调用函数?



调用函数就是让Python执行函数的代码,也就是喊出函数的名字。


只有当函数被调用时,函数内部的代码段才会被执行


这点也是新手容易犯的错误之一:忘记调用函数就运行程序而得不到结果,调试此类错误需要耐心。


函数调用结束时,这个函数内部生成的所有数据都会被销毁。


根据程序设计要求,同一个函数可以被调用多次或1次。调用函数也可以用来测试函数功能是否正确,比如每次写完一个函数的功能,然后调用并运行以查看是否出错或期望的结果。


如果错误,则调试代码(查找哪里出错);否则进行下一个函数的编写。运用此方法虽然有一点繁琐,但是可以大大缩减代码调试,


因为我们把错误提前解决了。


调用函数语法为:
funtion_name()

注意:funtion_name()前面没有缩进,否则不能正确调用函数。




05

函数用定义和调用的例子


例子
"""

函数的例子:
知识点:
1。定义函数
2。函数调用

"""


# 定义函数
def welcome_python():
print('欢迎加入Python实战圈!')


# 调用函数。为了方便阅读代码,与定义函数最好空两行。
welcome_python()
welcome_python()

欢迎加入Python实战圈!
欢迎加入Python实战圈!

无论是定义还是调用函数,常见错误有以下几个情况:
1) 函数定义中缺少冒号或者是中文冒号
2) 函数体没有缩进
3) 调用函数的时候缩进了,提示函数错误
例子:如过welcome_python()缩进了,运行函数没有错误,但是运行结果是空。
def welcome_python():
print('欢迎加入Python实战圈!')

   welcome_python()
Process finished with exit code 0

 以上内容摘自《零基础轻松学 Python》


零基础学 Python,看下嘛
送109元的零基础视频课

 只需7天时间,跨进Python编程大门,已有3800+加入
【基础】0基础入门python,24小时有人快速解答问题;
【提高】40多个项目实战,老手可以从真实场景中学习python;
【直播】不定期直播项目案例讲解,手把手教你如何分析项目;
【分享】优质python学习资料分享,让你在最短时间获得有价值的学习资源;圈友优质资料或学习分享,会不时给予赞赏支持,希望每个优质圈友既能赚回加入费用,也能快速成长,并享受分享与帮助他人的乐趣。
【人脉】收获一群志同道合的朋友,并且都是python从业者
【价格】本着布道思想,只需 69元 加入一个能保证学习效果的良心圈子。
【赠予】价值109元 0基础入门在线课程,免费送给圈友们,供巩固
浏览 8
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报