【Python】函数入门

函数,对应C#中的方法,是在日常编程工作中最广泛使用的工具,如何巧妙地分割问题形成函数是一个程序员必不可少的素质,今天来学习Python的函数构成,了解其与C#等语言的差异,可为日后编程工作带来极大方便。

①内建函数

内建函数是Python中自带的函数,使用时需要引入(import)函数库。

当我们知道只函数名而不知其功能时,可以在交互式命令行使用help(函数名)查看帮助信息。

更多的情况下,当我们想要寻找满足需求的函数时,可以访问网站:

https://docs.python.org/2/library/

查阅相关功能。

这里小提一下类型转换函数(int()、str()等等),它们可以转换字符类型,如

>>> int('123')
123
>>> int(12.34)
12
>>> str(123)
'123'
>>> str(1.23)
'1.23'

与比较函数cmp(x,y),如果 x<y,返回 -1,如果 x==y,返回 0,如果 x>y,返回 1:

>>> cmp(1, 2)
-1
>>> cmp(2, 1)
1
>>> cmp(3, 3)
0

更多的函数还需要在后期开发中不断学习。

 

②自建函数

在Python中,定义一个函数要使用 def 语句,依次写出函数名、括号、括号中的参数冒号:,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回。

我们以自定义一个求绝对值的 my_abs 函数为例:

def my_abs(x):
    if x >= 0:
        return x
    else:
        return -x

如果没有return语句,函数执行完毕后也会返回结果,只是结果为 None。

return None可以简写为return。

返回多值

Python的函数支持返回多值,只需在return后将值用逗号隔开即可。这样函数将返回一个Tuple链表包含多值

import math
def move(x, y, step, angle):#定义函数
    nx = x + step * math.cos(angle)
    ny = y - step * math.sin(angle)
    return nx, ny
>>> x, y = move(100, 100, 60, math.pi / 6)#调用函数得到x,y</strong>
>>> print x, y  #打印函数返回的值</strong>
151.961524227 70.0
>>> r = move(100, 100, 60, math.pi / 6)#调用函数得到链表r
>>> print r  #打印函数返回的链表
(151.96152422706632, 70.0)

定义默认函数

python对默认函数的定义很像C#中函数的重构,即,一个函数传入值的多少可变

具体实现方法是给可不赋值的变量赋初始值,如

def power(x, n=2): #定义函数
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s
>>> power(5) </strong>#调用函数
25

定义可变函数

如果想让一个函数能接受任意个参数,我们就可以定义一个可变参数:

def fn(*args):
    print args

可变参数的名字前面有个 号,我们可以传入0个、1个或多个参数给可变参数:

>>> fn()
()
>>> fn('a')
('a',)
>>> fn('a', 'b')
('a', 'b')
>>> fn('a', 'b', 'c')
('a', 'b', 'c')

可变参数也不是很神秘,Python解释器会把传入的一组参数组装成一个tuple传递给可变参数,因此,在函数内部,直接把变量 args 看成一个 tuple 就好了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据