python初学者(六)----函数

我们都知道,每一种语言,都会有函数这个玩意,因为有函数在,就可以简化代码了,不至于让代码太过于臃肿了

先了解一下几种函数的类型,面向对象型的和面向过程型的函数

#面向对象函数的类写法是前面写的是class,即表示的是类

#面向过程的函数和函数式编程,函数的前面写的是def

so,我们来说一下python的用法吧

def func1():
    print('in the func1')
    return 0

这个就是最简单的python的函数的用法,def声明一下,这就表明是函数,函数都要有返回值的,返回值表示返回的函数执行的结果

x = func1()
这就是返回了函数的返回值,不信,你打印看看?

最简单的函数实现了,下面看一个比较复杂一点的吧,先上代码

#!/user/bin/env python
# -*- coding:utf-8 -*-
# Author:yongzheng

import time  #倒入模块

def logger():
    time_format = '%Y-%M-%d %X'#x代表小时分钟秒
    time_current = time.strftime(time_format)#引用上面的时间格式
    with open('a.txt','a+') as f:###就是打开一个文件,准备往这个文件中写信息的一种格式

        f.write('%s end action\n'%time_current)


def test1():
    print('in the test1')

    logger()
def test2():
    print('in the test2')
    logger()

def test3():
    print('in the test3')
    logger()


test1()
test2()
test3()

这段代码有几点需要说明一下,第一,import,这就是导入包,导入时间包这里,第二,函数之间可以嵌套调用,第三,with。。。as。。。其实就是表示打开文件的意思,其他的,还有什么不明白的么?有的话留言啦,一定会解答的

下面说一下,函数可以没有返回值的,如果没有返回值,那返回的信息就是none,当然,返回值随便啦,就比如数字,字符串,列表啦。。。。等等都是可以的,比如:

def test3():
    return 0,'hello',['a','b','c'],{'name':'wyz'}
上面说的都是无参类型的函数,函数既然有无参的,那就肯定会有有参的函数,但凡有点代码基础的,我就不多说基础有参函数了,无非就是形参和实参两种类型需要注意一下,算了,我不放心,还是贴上一段代码吧,如下

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

# test(y=2,x=1) #与形参顺序无关
# test(1,2)  #与形参一一对应
#test(x=2,3)
test(3,z=2,y=6)
形参的几种形式,上面都一览无余了,参数不管顺序,但是有几点需要注意

#######关键参数不能写在位置参数前面的!!!!!

###默认参数的特点:调用参数时,默认参数可有可无

上面说的,都是有参无参的简单用法,下面说一下比较复杂一点的用法,我的代码中都有注释,你们看看

#!/user/bin/env python
# -*- coding:utf-8 -*-
# Author:yongzheng

def test(*dsa):
    print(dsa)

test(1,2,3,4,5,5,5)#整体输出所有的参数
test(*[1,2,3,4,5,6,7])#第二种形式而已


def test1(x,*args):
    print(x)
    print(args)

test1(1,2,3,4,5,6,7)#x取第一个,剩下的交给指针,接受剩下的参数


def test2(**kwargs):##   **kwargs 接受N个关键字参数,转换成字典的方式(键值对方式如{'name': 'wyz', 'age': 8, 'sex': 'f'})
    print(kwargs)
    print(kwargs['name'])#取键得value,如此处得到wyz
    print(kwargs['age'])#此处得到8





test2(name = 'wyz',age = 8,sex = 'f')#{'name': 'wyz', 'age': 8, 'sex': 'f'}

test2(**{'name':'wyz','age':9})##第二种写法


def test3(name ,**kwargs):
    print(name)
    print(kwargs)

test3('alex',age = 18,sex = 'f')

def test4(name,age = 18,**kwargs):
    print(name)
    print(age)
    print(kwargs)

test4('way',age=34,sex = 'm',hobby = 'tesss')

其实吧,你们把他们放到工具中泡一下就明白到底什么意思了,很简单啦!

好啦,写了一天博客了,就这么着吧,明天继续哈,不懂得,就给我留言,我会尽快回复的!








猜你喜欢

转载自blog.csdn.net/u011228868/article/details/79109433