python学习DAY8(函数与函数式编程)

#函数与函数式编程
函数定义:
# -*- coding:utf-8 -*-
#函数
#这是一个功能实现函数,func1和func2分别调用这个功能
def fun(): 
    with open('a.txt','ab') as f:
        f.write('end action')
def func1():
    fun()
    """The function definitions"""
    print("in the func1")
    return 0

#过程(没有返回值的函数)
def func2():
    fun()
    """test1"""
    print("in the func2")
'''
x=func1()
y=func2()
print("from func1 return %s"%x) #输出0
print("from func2 return %s"%y) #输出NONE
'''
func1()
func2()
#①定义的功能函数优化了每个函数即将进行的代码量
 ②并且可以扩展功能
 当有代码复用时,可以尝试将它定义为一个函数并在相应位置调用即可!
 如增加系统时间def fun():
    time_format="%Y-%m-%d %X"                #定义日期格式
    time_current=time.strftime(time_format)  #按规定的日期格式传入当前系统日期
    with open('a.txt','a+') as f:
     f.write('%s end action\n' %time_current)
     
-------------------------------
有参函数
# Author:barry allen
# -*-coding:utf-8 -*-
def test(x,y):
    print(x)
    print(y)

test(1,2)       #若不显示调用,则与形参一一对应
test(y=2,x=1)   #形参的顺序可以在传入参数的时候自定义,即关键字和位置参数之间的关系(即关键字顺序可以自定义)
test(3,y=2)     #此方式也可以,但是还是按照前两种方式更好!注意,关键字参数不能放到位置参数前面!如有三个参数,如1,2,z=3可以,而1,z=3,6则不行

---默认参数
def test(x,y=2):
    print (x)
    print (y)
test(1)       #若不显示调用,则按默认参数的值传参,即默认参数非必传参数
test(1,3)
test(1,y=3)   #此时传入参数的值为3
#用途:1.默认安装值  2.数据库默认连接,如Mysql的端口3306

--------参数组
#参数组用于实参个数不固定,默认为列表传参,输出为元组
def test(*args):        #*为功能符号,为不固定个数的时候可以定义
    print(args)

test(1,2,3,4,5)
test(*[1,2,3,4,5])

def test1(x,*args):
    print(x)
    print(args)
test(1,2,3)               #此时可以传入多个参数
#注意!*args只能接收位置参数,转为元组,不能接受关键字参数传参,区别于**kwargs

---------字典
#**kwargs把关键字参数转换为字典的方式
def test2(**kwargs):      #字典传参的标准格式
    print(kwargs)
    print(kwargs['name'])  #输出指定的字典的key值
    print(kwargs['age'])

test2(name='lin',age=8,sex='f')   #等号左边为字典的key,等号右边为字典的values
test2(**{'name':'lin','age':8})
#注意!形参可以有位置参数,默认参数,字典
#注意!**kwargs接收关键字参数,转为字典形式,区别于*args


    
    
#函数返回值return
 1.若将函数语句放置return后,则此函数语句不起任何作用
 2.可以定义x=test(),此时x为return 的返回值
 ①无定义返回: 输出返回NONE
 ②return 0:   输出返回0
 ③return 1,'a',['1','2'],{'d':'d'}:输出返回相应的返回值
 即:
 一:无返回值,默认为NONE
 二:返回值数=1,返回相应的返回值
 三:返回值数>1,返回以元组的形式存放相应的返回值
 
 返回值的作用:根据该函数的返回值结果进行相应的操作

 

posted @ 2019-07-08 11:32  LBC不认输  阅读(209)  评论(0编辑  收藏  举报