宿州新闻,乡宁信息网,云裳小丫鬟
【目录】
一、什么是函数
二、为何要有函数
三、如何使用函数
(一)定义函数
(二)调用函数
(三)函数返回值
为了方便重复使用某些需要的代码功能,因此创造了很多代码工具,给它们命名为‘函数’。
在程序中,具备某一功能的‘工具’——函数
‘事先准备工具’的过程——函数的定义
‘拿来就用’——函数的调用
1、组织结构不清晰,可读性差
2、代码冗余
3、可维护性、扩展性差
函数的使用分为定义阶段与调用阶段,
定义函数时只检测语法,不执行函数体代码,
函数名加括号即函数调用,只有调用函数时才会执行函数体代码
定义函数发生的事情
1、申请内存空间保存函数体代码
2、将上述内存地址绑定函数名
3、定义函数不会执行函数体代码,但是会检测函数体语法
调用函数发生的事情
1、通过函数名找到函数的内存地址——print(func)
2、然后加口号就是在触发函数体代码的执行 ——func()
def 函数名(参数1,参数2,...): """文档描述""" 函数体 return 值
- def: 定义函数的关键字;
- 函数名:函数名指向函数内存地址,是对函数体代码的引用。函数的命名应该反映出函数的功能;
- 括号:括号内定义参数,参数是可有可无的,且无需指定参数的类型;
- 冒号:括号后要加冒号,然后在下一行开始缩进编写函数体的代码;
- """文档描述""" 描述函数功能,参数介绍等信息的文档,非必要,但是建议加上,从而增强函数的可读性;
- 函数体:由语句和:达式组成;
- return 值:定义函数的返回值,return是可有可无的。
def bar(): #定义函数 bar(), bar=函数的内存地址 print('from bar') def foo(): # print(bar) # 输出的是函数的内存地址 <function bar at 0x0000021d5885a0d0> bar() #调用函数bar() print('from foo') foo() #调用函数foo()
def foo(): bar() #此处还未调用函数bar(),只是判断是否有语法错误 print('from foo') # 定义函数 bar() def bar(): # bar=函数的内存地址 print('from bar') foo() #调用函数bar()
def foo(): # print(bar) bar() print('from foo') foo() def bar(): # bar=函数的内存地址 print('from bar') nameerror: name 'bar' is not defined
def my_min(x,y): res=x if x < y else y return res
定义空函数通常是有用的,因为在程序设计的开始,往往是先想好程序都需要完成什么功能,
然后把所有功能都列举出来用pass充当函数体“占位符”,这将使得程序的体系结构立见,清晰且可读性强。
之后我们便可以统筹安排编程任务,有选择性的去实现函数体功能来替换掉pass,从而提高开发效率。
【栗子】:编写一个ftp程序,我们可能想到的功能有用户认证,下载,上传,浏览,切换目录等功能,可以先做出如下定义,再有选择性地实现函数体代码——
def auth_user(): """user authentication function""" pass def download_file(): """download file function""" pass def upload_file(): """upload file function""" pass def ls(): """list contents function""" pass def cd(): """change directory""" pass
def interactive(): name=input('username>>: ') age=input('age>>: ') gender=input('gender>>: ') msg='名字:{} 年龄:{} 性别'.format(name,age,gender) print(msg) interactive() interactive() interactive() interactive()
def add(x,y): # 参数-》原材料 # x=20 # y=30 res=x + y # print(res) return res # 返回值-》产品 # add(10,2) res=add(20,30) print(res)
参考上一小节内容中的【栗子】——编写一个ftp程序
interactive() add(1,2)
def add(x,y): # 参数-》原材料 res=x + y return res # 返回值-》产品 赋值表达式 res=add(1,2) print(res) 数学表达式 res=add(1,2)*10 print(res)
res=add(add(1,2),10) print(res)
#若需要将函数体代码执行的结果返回给调用者,则需要用到return。
#return的返回值无类型限制,且可以将多个返回值放到一个元组内。
# return是函数结束的标志,即函数体代码一旦运行到 return,会立刻终止函数的运行;
函数内可以有多个return,但只执行一次函数就结束了,并且会将 return后的值当做本次运行的结果返回。
#ps:
结束程序的执行的力度:
exit > return > break > 条件为假
return
return none
def func(): pass res=func() print(res) # 返回值none
def func(): return (10) res=func() print(res) # 返回值为10
def func(): return (10,'cc',[1,2]) res=func() print(res,type(res)) # 返回值为元祖(10, 'cc', [1, 2])
参考资料:
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
新手学习Python2和Python3中print不同的用法
Python基于os.environ从windows获取环境变量
网友评论