Python基础-def函数

来源:互联网 发布:开淘宝店交保证金退吗 编辑:程序博客网 时间:2024/05/29 16:45

Python基础-def函数

基本使用

def function_name(parameters):    expressions

使用* def * 开始函数定义,紧接着是函数名,括号内部为函数的参数,内部为函数的 具体功能实现代码,如果想要函数有返回值, 在 expressions 中的逻辑代码中用 return 返回。

实例

def function():    print('This is a function')    a = 1+2    print(a)function() #调用函数

输出结果:

This is a function3

函数参数

实例

def func(a, b):    c = a+b    print('the c is ', c)func(1,2)func(b=2,a=1)   

输出:

('the c is ', 3)('the c is ', 3)

函数调用的过程中给指明特定的参数 func(a=1, b=2), 这样的话,参数的位置将不受影响,所以 func(b=2,a=1)是同样的 的效果。

函数默认参数

为了方便函数调用,我们可以将这些参数设置为默认参数,那么该参数在函数调用过程中可以不需要明确给出

基本使用

def function_name(para_1,...,para_n=defau_n,..., para_m=defau_m):    expressions

函数声明只需要在需要默认参数的地方用 = 号给定即可, 但是要注意所有的默认参数都不能出现在非默认参数的前面。

实例

def sale_car(price, color='red', brand='carmy', is_second_hand=True):    print('price', price,          'color', color,          'brand', brand,          'is_second_hand', is_second_hand,)sale_car(1)sale_car(1,2)sale_car(1,2,3,4)

输出结果

('price', 1, 'color', 'red', 'brand', 'carmy', 'is_second_hand', True)('price', 1, 'color', 2, 'brand', 'carmy', 'is_second_hand', True)('price', 1, 'color', 2, 'brand', 3, 'is_second_hand', 4)

进阶

自调用

如果想要在执行脚本的时候执行一些代码,比如单元测试,可以在脚本最后加上单元测试 代码,但是该脚本作为一个模块对外提供功能的时候单元测试代码也会执行,这些往往我们不想要的,我们可以把这些代码放入脚本最后:

if __name__ == '__main__':        #code_here

执行该脚本的时候,该 if 判断语句将会是 True,那么内部的代码将会执行。 如果外部调用该脚本,if 判断语句则为* False*,内部代码将不会执行

可变参数

函数的可变参数是传入的参数可以变化的,1个,2个到任意个。当然可以将这些 参数封装成一个 list 或者 tuple 传入,但不够 pythonic。使用边长参数可以很好解决该问题,注意可变参数在函数定义不能出现在特定参数默认参数前面,因为可变参数会吞噬掉这些参数。

def report(name, *grades):    total_grade = 0    for grade in grades:        total_grade += grade    print(name, 'total grade is ', total_grade)report('Mike', 8, 9)

输出:

('Mike', 'total grade is ', 17)

关键字参数

关键字参数可以传入0个或者任意个含参数名的参数,这些参数名在函数定义中并没有出现,这些参数在函数内部自动封装成一个字典(dict).

def portrait(name, **kw):    print('name is', name)    for k,v in kw.items():        print(k, v)portrait('Mike', age=24, country='China', education='bachelor')

输出结果:

('name is', 'Mike')('country', 'China')('age', 24)('education', 'bachelor')
原创粉丝点击