Python初识函数
函数理论篇什么是函数在编程语言中的函数不同于数学中的函数。不管是数学上的函数还是编程语言中的函数都是为了完成特定的某一功能而诞生的,他们的区别在于:
在Python中,函数主要有两类。一类是我们已经接触过的内置函数(如: 内置函数又被称为工厂函数,工厂函数是Python内部原本就定义好的函数只需要人们去调用即可,它的创建初衷是是对于大多数人来说都会使用上且重复使用频率较高的一些,并不需要人们再去重复的实现一次具体功能,而是直接调用Python写好的方法即可。 而自定义函数则是在内置函数无法完成需求的情况下,由开发人员去自己创作的为了满足特定的某一项功能的可重复使用的具体代码集合。 为什么要有函数函数主要解决流式代码的两大问题:
没有学习函数之前我们的所有代码都是以流式的方式写的。比如,我要在程序的一百处不同地方打印 hello,world 。那么按照流式的处理是没有较好的解决方案的只能一次一次的 怎么使用函数函数使用和变量的使用都是一样的。即:先定义,后调用。但是内置函数除外,内置函数是Python内部帮你定义好的函数,直接使用即可。下面用一个简短的例子来看一下函数到底该怎么用。 # ==== 自定义函数 ==== """ ^ 代表可选 def 函数名(参数1^,参数2^..): '''功能描述'''^ 逻辑体 ^ return 返回值 ^ 函数名() """ def func(): print("hello,world") 函数体 print(func) 函数名就相当于变量名。存储了函数体代码的内存地址 func() 函数调用 func() func() func() ==== 执行结果 ==== <function func at 0x0000025AB9905040> hello,world hello,world """
函数的定义无参函数无参函数大多数情况下只是希望该函数单纯的做一点什么事情而并不需要该函数给返回一个结果。(函数可以理解为工厂,参数可以理解为原材料): ==== 无参函数的使用 ==== def printf(): 函数名的命名与变量名相同。采用小写字母加下划线的形式 该函数只是单纯的做一段话的打印操作而已""" 您做的操作具有危险性!!!") 噼里啪啦逻辑1...) printf() 需要单纯的打印这句话 噼里啪啦逻辑2...噼里啪啦逻辑3... 需要单纯的打印这句话 噼里啪啦逻辑1... 您做的操作具有危险性!!! 噼里啪啦逻辑2... 您做的操作具有危险性!!! 噼里啪啦逻辑3... 您做的操作具有危险性!!! """ 有参函数有参函数是我们今后用到最多的函数,参数相当于原材料。函数体内部相当于一个工厂,通过逻辑我们可以将原材料加工成我们想要的数据。 ==== 有参函数的使用 ==== def sub(x,y): 接收原材料 该函数是执行一次减法操作 加工过程... return x - y 返回结果 res = sub(3,2) 原材料 res为接收结果 print(res) 1 """ 空函数空函数的应用场景也比较广泛。主要是在做代码逻辑构思时用的,如下: ==== 空函数的使用 ==== download(url): 输入url进行下载pass upload(file_path,url): 输入文件路径及url进行上传 preview(res): 当上传完成后自动执行该函数执行预览功能pass 注意:也可以使用 ... 来代替pass 函数的调用语句形式语句形式即为只加括号调用函数。具体这里不再举例。 表达式形式表达式形式这里还是再举一下例子: ==== 表达式形式的函数调用 ==== 返回结果 赋值表达式 res = sub(3,1)"> 数学表达式 res = sub(10,5) * 10 sub函数返回结果是5,再 * 10 得出的变量值的内存地址交给变量名res 1 50 """ 参数调用形式函数可以作为参数传递给其他函数: ==== 参数调用形式的调用函数 ==== 第一次,10,5 第二次,5,3 返回结果 第一次:5 第二次:2 res = sub(sub(10,5),3) 再次传入 5 和 3 2 """ 函数的返回值默认返回值 Python中的函数一定有返回值,如果不指定 ==== 函数的默认返回值 ==== retrunTest(): 没有指定返回值...) res = retrunTest() res用来接收返回值。注意Python的函数每一个都有返回值,默认返回为None 返回值是-->{}.format(res)) 没有指定返回值... 返回值是-->None """ return 返回一个值如果指定返回值,则将返回值返回出去。(参数代表吃的东西,返回值代表拉的屎)。 ==== 使用 return 返回一个值 ==== return指定一个返回值...) return 屎 res = retrunTest() res用来接收返回值。 没有指定返回值... 返回值是-->屎 """ return 返回多个值如果返回多个值,接收方将会以元组形式进行接收。 ==== 使用 return 返回多个值 ==== return指定多个返回值...",尿恐怖的东西.. res = retrunTest() .format(res)) 返回值的类型是-->{}.format(type(res))) x,y,z = retrunTest() 也可直接用解压赋值 x ---> {value}".format(value=x)) y ---> {value}y)) z ---> {value}z)) return指定多个返回值... 返回值是-->('屎','尿','恐怖的东西..') 返回值的类型是--><class 'tuple'> return指定多个返回值... x ---> 屎 y ---> 尿 z ---> 恐怖的东西.. """ 其他知识补充函数的执行函数的使用方法是先定义后执行。在Python中函数的声明必须放在函数的调用前(JavaScript不一样),否则会抛出异常。 func() 执行不了 执行") 函数的嵌套函数可以嵌套使用。看一下下面这个操作: 请记住,Python是解释性语言。解释一行执行一行,当碰见def关键字开头的语句 # 内部会检测一下该代码块的语法,如果没有出现问题则代表该函数定义好了。 只有碰到函数名加括号的情况下才会去执行该函数,在运行阶段没抛出异常,# 代表func2是被检测过语法的。 也就是说func2是被定义好了的,只需要等待调用即可。如果还不理解可以打断点进行debug def func1(): 1 执行func1 4 func2() 看起来func2是在定义之前调用。实际上在执行func2的时候func2早已定义好了。 # 5 def func2(): 2 执行func2 6 func1() 3 #7 执行func1 执行func2 """ ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |