• 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
    ' %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,返回以元组的形式存放相应的返回值
     
     返回值的作用:根据该函数的返回值结果进行相应的操作
  • 相关阅读:
    详解 字符转换流
    详解 编码和解码
    详解 字符流
    详解 序列输入流
    详解 数据输入输出流
    八皇后
    这次我们从底层把线程说清楚
    四数之和递归
    PCB 内网实现《OCR文字识别》实现逻辑
    PCB 线路板人生
  • 原文地址:https://www.cnblogs.com/god-for-speed/p/11150146.html
Copyright © 2020-2023  润新知