我们都知道,每一种语言,都会有函数这个玩意,因为有函数在,就可以简化代码了,不至于让代码太过于臃肿了
先了解一下几种函数的类型,面向对象型的和面向过程型的函数
#面向对象函数的类写法是前面写的是class,即表示的是类
#面向过程的函数和函数式编程,函数的前面写的是def
so,我们来说一下python的用法吧
def func1():
print('in the func1')
return 0
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()
下面说一下,函数可以没有返回值的,如果没有返回值,那返回的信息就是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')
好啦,写了一天博客了,就这么着吧,明天继续哈,不懂得,就给我留言,我会尽快回复的!