Python入门教程之函数和函数参数


Python函数

计算机程序中,函数是一种基本的代码抽象方式。代码执行过程中通过调用函数名和参数可以调用特定函数而得到我们想要的结果。通过调用函数,程序开发人员可以忽略函数执行的过程,而可将更多的心思放在思考问题上。在python中我们可以调用一些内置函数或调用自定义函数。

调用内置函数 abs

print(abs(-100))

返回结果

100

abs 是python中的一个内置函数,通过abs函数名和参数 返回该参数的绝对值,若输入一个字符串则将报错。因此,在定义函数的时候,可以选择性的定义是否接受参数,也可以规定参数的接受类型。 函数名abs可以理解为通过abs引用执行且返回对象绝对值。因此我们也可以将函数名赋值给一个变量,通过该变量调用执行该函数。

a=abs
2 print(a(-1))

返回结果

100

自定义函数

Python中可以通过def 函数名、括号、括号中的参数和冒号:之后再缩进的代码块中编写函数体,函数的执行结果用return返回

1 def my_abs(x):
2    if x>=0:
3        return x
4    else:
5        return x
6   
7 a=my_abs(-100)
8 print(a)

返回结果

100

Python函数参数

上面,我们学习了Python中是如何定义和调用函数且如何得到返回值的。在调用函数时,有的函数需要参数来启动函数,有的则无需参数。这一节我们来介绍Python中有哪些参数类型。

位置参数 在调用函数时,必须按照参数定义的顺序依次赋给参数
默认参数 只需赋给常变参数,不常变参数将作为默认值传递给函数。如果需要替换不常变参数的默认值,只需在调用函数时向该参数传入想要的值即可。定义默认值参数时,要将常变参数定义在前,默认值参数定义在后。
可变参数  由于有些函数的参数个数是不确定的,Python提供可变参数*args,将args作为一个元祖传递0个或者多个参数给函数
关键字参数  可变参数在调用时将自动组装成一个元祖,而关键字参数允许传入0个或者多个含有参数名的参数,这些关键字参数在函数调用时会自动封装成一个字典
命名关键字参数  关键字参数可以接受0个或者多个任意不受限制的关键字参数,而命名关键字参数通过*,kw1,kw2 规定只允许接受哪些关键字参数
组合参数

 python中定义函数时,可以使用必选参数、默认参数、可变参数、关键字参数、命名关键字参数五种参数规则的组合一起使用。顺序是 必选参数>默认参数>可变参数>命名关键字参数>关键字参数

位置参数:

1 def my_def(name,age):
2  print( name,age)
3 a=my_def('zhangsan',18)

执行结果:

zhangsan 18

若调用参数位置

1 def my_def(name,age):
2  print( name,age)
3 a=my_def(18,'zhangsan')

执行结果

18 zhangsan

默认值参数

1 def my_def(name,age,city='beijing',job='python'):
2  print( name,age,city,job)
3 a=my_def('zhangsan',18)

执行结果:

zhangsan 18 beijing python

若参数的默认值与实际的不符,在调用函数时,将对应的参数传入新值即可:

1 def my_def(name,age,city='beijing',job='python'):
2  print( name,age,city,job)
3 a=my_def('zhangsan',18,city='henan')

执行结果:

zhangsan 18 henan python

可变参数:

1 def my_def(*args):
2    sums=0
3    for n in args:
4        sums+=n*n
5    print(sums)
6 a=my_def(1,2,3)

执行结果:

14

关键字参数:

1 def my_def(name,age,**kwargs):
2    print(name,age,kwargs['city'],kwargs['job'])
3 a=my_def('zhangsan',18,city='beijing',job='python')

执行结果:

zhangsan 18 beijing python

命名关键字参数:

1 def my_def(name,age,*,city,job):
2  print( name,age,city,job)
3 a=my_def('zhangsan',18,city= 'beijing',job='python')

执行结果

zhangsan 18 beijing python

组合参数:

1 def my_def(shool,classes,*args,**kwargs):
2    print(shool,classes,args,kwargs)
3 a=my_def('old boy',23,'zhangsan',18,city='beijing',job='python')

执行结果:

old boy 23 ('zhangsan', 18) {'city': 'beijing', 'job': 'python'}

linuxboy的RSS地址:https://www.linuxboy.net/rssFeed.aspx

本文永久更新链接地址:https://www.linuxboy.net/Linux/2018-10/154611.htm

相关内容