4.6. 定义函数
创新互联是一家专注于成都做网站、网站制作与策划设计,奉节网站建设哪家好?创新互联做网站,专注于网站建设10余年,网设计领域的专业建站公司;建站业务涵盖:奉节等地区。奉节做网站价格咨询:13518219792
我们可以创建一个用来生成指定边界的斐波那契数列的函数:
def fib(n): # write Fibonacci series up to n
... """Print a Fibonacci series up to n."""
... a, b = 0, 1
... while a n:
... print(a, end=' ')
... a, b = b, a+b
... print()
...
# Now call the function we just defined:
... fib(2000)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
关键字 def 引入了一个函数 定义。在其后必须跟有函数名和包括形式参数的圆括号。函数体语句从下一行开始,必须是缩进的。
函数体的第一行语句可以是可选的字符串文本,这个字符串是函数的文档字符串,或者称为 docstring。(更多关于 docstrings 的信息请参考 文档字符串) 有些工具通过 docstrings 自动生成在线的或可打印的文档,或者让用户通过代码交互浏览;在你的代码中包含 docstrings 是一个好的实践,让它成为习惯吧。
函数 调用 会为函数局部变量生成一个新的符号表。确切的说,所有函数中的变量赋值都是将值存储在局部符号表。变量引用首先在局部符号表中查找,然后是包含函数的局部符号表,然后是全局符号表,最后是内置名字表。因此,全局变量不能在函数中直接赋值(除非用 global 语句命名),尽管他们可以被引用。
函数引用的实际参数在函数调用时引入局部符号表,因此,实参总是 传值调用 (这里的 值 总是一个对象 引用 ,而不是该对象的值)。[1] 一个函数被另一个函数调用时,一个新的局部符号表在调用过程中被创建。
一个函数定义会在当前符号表内引入函数名。函数名指代的值(即函数体)有一个被 Python 解释器认定为 用户自定义函数 的类型。 这个值可以赋予其他的名字(即变量名),然后它也可以被当作函数使用。这可以作为通用的重命名机制:
fib
f = fib
f(100)
0 1 1 2 3 5 8 13 21 34 55 89
如果你使用过其他语言,你可能会反对说:fib 不是一个函数,而是一个方法,因为它并不返回任何值。事实上,没有 return 语句的函数确实会返回一个值,虽然是一个相当令人厌烦的值(指 None )。这个值被称为 None (这是一个内建名称)。如果 None 值是唯一被书写的值,那么在写的时候通常会被解释器忽略(即不输出任何内容)。如果你确实想看到这个值的输出内容,请使用 print() 函数:
print函数介绍:print函数被用来进行数据的输出,也就是将数据显示在你所能看到的界面上,比如我们print("Hello World"),运行它,就会在浏览器上显示Hello World。
return函数介绍:可以选择性地向调用方返回一个表达式,可带参数也可不带,不带参数的return函数会返回None。return单独运行时,需要print函数才能显示出来,但在交互模式下,return的结果会自动显示出来。
需要注意的一点是,return是返回值,它后面的代码块是不执行的,因此需要执行的代码不能放在return语句后,会失效。
看了上面的介绍,小伙伴大概清楚了一点,那究竟区别在哪呢?
return只能运用在函数中,有时候函数运行完会得出一个结果值,我们可以拿这个得出的值去进行另外的运算,所以我们需要用return将结果给返回出来;
如果我们用print的话,仅仅是将结果显示在我们能看到的界面上而已,而并没有办法得到这个值,更无法进行后续的操作了。
另外,在循环语句中使用,return可以跳出循环,而print则会一直循环,除非使用函数进行终止。
打开IDLE python GUI,点击开始-所有程序-python2.7-IDLE python GUI,或者直接进入dos环境,或者其他的IDLE。
请点击输入图片描述
首先,创建一个简单的自定义函数,定义为K函数。
请点击输入图片描述
假如x==Kill,那么,就可以代入刚才所创建的K函数,最后返回一个语句,x为任意字符,空白字符也可以。
请点击输入图片描述
要注意的是,用def创建函数的时候,k(x)括号里面是不用双引号的,而调用自定义函数的时候,在括号了就要加上双引号。
上面的定义函数比较简单,只用了一个print输出语句,现在,定义一个累加的函数,就要用到while函数和if函数了。
请点击输入图片描述
A函数是用来计算累加的,其中用到了一个while循环和if判断,x为自定义变量,假如现在X为100,也就是说此函数计算1+2+3+...+100的和。
请点击输入图片描述