Python函数基础

Posted Devilf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python函数基础相关的知识,希望对你有一定的参考价值。

1、定义函数

使用def语句,后跟函数名、括号、冒号,括号中有时可以带有参数,然后换行缩进,编写函数体,返回值用return语句

例如:

def test(x):
    if x > 0:
        return x
    else:
        return abs(x)

print(test(4))
print(test(-5))

2、参数

1)位置参数

例如:

def func(x,y,z):
    print(x)
    print(y)
    print(z)

func(1,2,3)
func(5,6)

执行结果:

1
2
3
  File "F:/python3/函数.py", line 7, in <module>
    func(5,6)
TypeError: func() missing 1 required positional argument: \'z\'

可以看出这里输入的参数少了一个便会报错

2)默认参数

默认参数的用处还是挺多的,例如,我们填写信息时,有的信息是默认的,比如你所在的国家不填就默认是中国。

例如:

def func(name,sex,country=\'CHINA\'):
    print(name,sex,country)

func(\'Devilf\',\'boy\')
func(\'GY\',\'girl\',country=\'USA\')

执行结果:

C:\\Python36\\python3.exe F:/python3/函数.py
Devilf boy CHINA
GY girl USA

设置默认参数需要注意的地方:

一、默认参数必须在必选参数后面

二、当函数有多个参数时,可以将不经常变得参数设置成默认参数

3)可变参数

可变参数就是传入的参数的个数是不固定的,可变的,例如:

def func(*args):
    print(args)

func(1)
func(1,2,3,4,5)
func([1,2,3,\'a\',\'b\',\'c\'])
func(1,2,3,\'a\',\'a\',1)

执行结果:

C:\\Python36\\python3.exe F:/python3/函数.py
(1,)
(1, 2, 3, 4, 5)
([1, 2, 3, \'a\', \'b\', \'c\'],)
(1, 2, 3, \'a\', \'a\', 1)

可以看出可变参数输出的是一个元组,不管我们输入多少参数,都可以进行输出

4)关键字参数

关键字参数和可变参数很像,只不过一个输出的是元组,一个是字典,例如:

def func(name,sex,**kwargs):
    print(name,sex,kwargs)

func(\'Devilf\',\'boy\',country=\'china\',age=24)

执行结果:

C:\\Python36\\python3.exe F:/python3/函数.py
Devilf boy {\'country\': \'china\', \'age\': 24}

5)参数组合

参数组合是有顺序的,顺序为:

必选参数、默认参数、可变参数、关键字参数

例如:

def func(a,b,c=\'default\',*args,**kwargs):
    print(\'a=\',a)
    print(\'b=\',b)
    print(\'c=\',c)
    print(\'args=\',args)
    print(\'kwargs=\',kwargs)
print(\'------1---------\')
func(1,2)

print(\'-------2---------\')
func(1,2,c=3)

print(\'--------3----------\')
func(1,2,c=3,args=(\'python\',\'java\'),name=\'devilf\',sxe=\'boy\')

print(\'---------4------------\')
func(1,2,3,\'a\',\'b\',\'c\',n1=\'name\',n2=\'sex\',n3=\'age\')

执行结果:

C:\\Python36\\python3.exe F:/python3/函数.py
------1---------
a= 1
b= 2
c= default
args= ()
kwargs= {}
-------2---------
a= 1
b= 2
c= 3
args= ()
kwargs= {}
--------3----------
a= 1
b= 2
c= 3
args= ()
kwargs= {\'args\': (\'python\', \'java\'), \'name\': \'devilf\', \'sxe\': \'boy\'}
---------4------------
a= 1
b= 2
c= 3
args= (\'a\', \'b\', \'c\')
kwargs= {\'n1\': \'name\', \'n2\': \'sex\', \'n3\': \'age\'}

可以看出,参数组合时,每个参数都需要对应,位置参数、默认参数这两个参数特别需要注意

3、递归函数

递归函数就是自己调用自己。

例如:

def func(x):
    if x == 1:
        return 1
    else:
        return x * func(x - 1)
a = func(3)
print(a)

这里便是在函数里自己调用自己,执行过程大概是这样的:

大概就是这么一个形式,画一个流程图来理解下:

 

4、高阶函数

变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数称之为高阶函数

例如:

def func(x,y,f):
    return f(x) + f(y)
a = func(2,-3,abs)
print(a)

这里abs属于一个内置函数,func是自定义函数,也就是说func这个函数接收了abs这个内置函数作为自己的一个参数。

以上是关于Python函数基础的主要内容,如果未能解决你的问题,请参考以下文章

201555332盛照宗—网络对抗实验1—逆向与bof基础

13 个非常有用的 Python 代码片段

[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础

逆向及Bof基础实践

20155201 李卓雯 《网络对抗技术》实验一 逆向及Bof基础

在 Python 多处理进程中运行较慢的 OpenCV 代码片段