Python 【函数】 学习笔记
2018-03-02 15:14
344 查看
函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。----------------------------------------------------------------------------------------------------------------------------------------------------定义一个函数
你可以定义一个由自己想要功能的函数,以下是简单的规则:函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
----------------------------------------------------------------------------------------------------------------------------------------------------
语法
def 函数名(参数):函数体----------------------------------------------------------------------------------------------------------------------------------------------------
调用
函数名(参数) #也可通过另一个函数调用
----------------------------------------------------------------------------------------------------------------------------------------------------
形参(parameter)实参(argument)
def x(a): #创建函数时,a为形参,表示占据的位置
x(b) #调用函数时,b为实参,表示实际的对象
-------------------------------------------------------
4000
---------------------------------------------------------------------------------------------
默认参数,关键字参数
def x(a=“Nike”, b=“Just do it!”): #Nike,Just do it!为默认参数
print(a +“->”+ b)
x(a="鸿星尔克",b="to be number one ! ") #调用函数时,a=,b=为关键字参数
----------------------------------------------------------------------------------------------------------------------------------------------------
不定长参数(收集参数)def printinfo( arg1, *vartuple ): #不确定vartuple有多少参数时可在前加*
"打印任何传入的参数"
print ("输出: ")
print (arg1)
for var in vartuple:
print (var)
return;
----------------------------------------------------------------------------------------------------------------------------------------------------
函数文档
def x():"这里是函数说明位置"
可通过x.__doc__查看x的文档
----------------------------------------------------------------------------------------------------------------------------------------------------
全局变量(local variable)和局部变量(global variable)
global 和 nonlocal关键字
定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中. z = 10 #z为全局变量def x(a,b): #a,b为局部变量,只在x中可调用
y = a + b
global z #将z转换为全局变量
z = 15 #如没有添加上方global转换时,z为x函数的局部变量,不影响x函数外z的值。
return
----------------------------------------------------------------------------------------------------------------------------------------------------
内嵌函数
def fun1( ):
print("fun1 is running!")
def fun2( ): #fun2建立于fun1之内,故只能在fun1中被调用,属于内嵌函数。
print("fun2 is running")
fun2( ) #调用fun2需要在fun1内,注意缩进。
----------------------------------------------------------------------------------------------------------------------------------------------------
闭包
闭包就是内嵌函数的一种变形,闭包的书面定义是闭包是由函数及其相关的引用环境组合而成的实体(即:闭包=函数+引用环境),反正我是看不太懂,看一个例子就知道了。
def outer(x): def inner(y): print(x * y) return inner # 注意,inner没有加(),即不是: return inner() print(outer(5)) # 我们可以看到outer(5)返回的是一个function类型 outer(5)(6)输出结果:
<function outer.<locals>.inner at 0x000001CBBE3F5048> 30
----------------------------------------------------------------------------------------------------------------------------------------------------
nonlocal 非局部
def fun1( ): x = 5 defun2( ): nonlocal x 将x转为非局部变量x += x # 如不将x转为非局部变量,fun1内的x被屏蔽,fun2的x未被定义不能修改。 return x return fun2( )
----------------------------------------------------------------------------------------------------------------------------------------------------
lambda 匿名函数
lambda [arg1[,arg2...argn]]:expressiona = lambda x : x * 2 + 1 # :前是原函数的参数,:后面是原函数返回值
a(5) #调用后lambda会被内存清除
----------------------------------------------------------------------------------------------------------------------------------------------------
recursion 递归
有返回值,且依靠返回自身的原理计算设置递归层数 import sys
sys.setrecursionlimit(n) #默认值100
斐波那契数列:
>>> def fn(n):
if n<=2:
return 1
else:
return fn(n-1)+fn(n-2)
----------------------------------------------------------------------------------------------------------------------------------------------------
相关文章推荐
- python学习笔记-函数篇
- python学习笔记(四):函数
- Python学习笔记7-把函数当参数传递、指定可变参数
- python学习笔记——函数可变参数处理
- Python学习笔记之疑问 2:python的函数定义为什么没有开始和结束符
- Python3学习笔记4-函数,全局变量&局部变量,内置函数
- IPython下目录的操作-魔力函数(cd pwd bookmark dhist )- 千月的python linux 系统管理指南学习笔记(7)
- 【Python】学习笔记——-3.3、函数的参数
- python 学习笔记 -- 函数
- python学习笔记12--函数
- Python学习笔记(1) -- Python内建函数文档
- 学习笔记-小甲鱼Python3学习第二十讲:函数:内嵌函数和闭包
- python学习笔记(六)——函数
- 学习笔记-小甲鱼Python3学习第二十二讲:函数:递归是神马
- Python 2.7 学习笔记 基本语法和函数定义
- Python.Numpy学习零碎笔记之便捷函数
- Python学习笔记(三)数学函数
- Python学习笔记之一: 函数参数
- Python 2.7 学习笔记 内置语句、函数、标准库
- python学习笔记3.1-函数