码迷,mamicode.com
首页 > 编程语言 > 详细

Python函数基础

时间:2018-01-04 18:14:13      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:变量   结果   自己的   pos   python函数   定义函数   china   dev   将不   

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函数基础

标签:变量   结果   自己的   pos   python函数   定义函数   china   dev   将不   

原文地址:https://www.cnblogs.com/Devilf/p/8194056.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!