• Python基础八初识函数


    一、昨日内容回顾
        文件操作
            流程
                1打开文件创建文件句柄
                2对文件句柄进行操作
                3关闭文件句柄
            读
                r r+ rb r+b
            写
                w w+ wb w+b
            追加
                a a+ ab a+b
            其他骚操作:
                readable() writable() seek() tell() flush() truncate()
            文件的修改:略
    二、函数
        函数的初识
            函数是个什么玩意儿?
                一个函数封装一个功能,其实就是给代码“打包”。 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
            def func_name():
                一堆代码
                    一堆代码
                        一堆代码
                return 返回值,默认是None
            func_name()   # 是调用这个函数执行他内部的代码
            
     
      关于return
                return的功能:
                    1返回一个值给调用者(func_name())单个返回值返回单个值,多个返回值返回一个tuple(元组)
                    2结束函数
           

       return关键字的作用

        return 是一个关键字,这个词翻译过来就是“返回”,所以我们管写在return后面的值叫“返回值”。

        要研究返回值,我们还要知道返回值有几种情况:分别是没有返回值、返回一个值、返回多个值

          没有返回值

            不写return的情况下,会默认返回一个None:我们写的第一个函数,就没有写return,这就是没有返回值的一种情况。

            

    #函数定义
    def mylen():
        """计算s1的长度"""
        s1 = "hello world"
        length = 0
        for i in s1:
            length = length+1
        print(length)
    
    #函数调用
    str_len = mylen()
    #因为没有返回值,此时的str_len为None
    print('str_len : %s'%str_len)
    
    没有return

            只写return,后面不写其他内容,也会返回None,有的同学会奇怪,既然没有要返回的值,完全可以不写return,为什么还要写个return呢?这里我们要说一下return的其他用法,就是一旦遇到return,结束整个函数

    def ret_demo():
        print(111)
        return
        print(222)
    
    ret = ret_demo()
    print(ret)
    
    只写return

            return None:和上面情况一样,我们一般不这么写。

          返回一个值

                刚刚我们已经写过一个返回一个值的情况,只需在return后面写上要返回的内容即可。  

    #函数定义
    def mylen():
        """计算s1的长度"""
        s1 = "hello world"
        length = 0
        for i in s1:
            length = length+1
        return length
    
    #函数调用
    str_len = mylen()
    print('str_len : %s'%str_len)
    
    return返回一个值

          返回多个值

            可以返回任意多个、任意数据类型的值

    def ret_demo1():
        '''返回多个值''' 
        return 1,2,3,4
    
    
    def ret_demo2():
        '''返回多个任意类型的值'''
        return 1,['a','b'],3,4
    
    ret1 = ret_demo1()
    print(ret1)
    ret2 = ret_demo2()
    print(ret2)
    
    返回多个值
    
    return返回多个值

            返回的多个值会被组织成元组被返回,也可以用多个值来接收

     
    def ret_demo2():
        return 1,['a','b'],3,4
    
    #返回多个值,用一个变量接收
    ret2 = ret_demo2()
    print(ret2)
    
    #返回多个值,用多个变量接收
    a,b,c,d = ret_demo2()
    print(a,b,c,d)
    
    #用多个值接收返回值:返回几个值,就用几个变量接收
    a,b,c,d = ret_demo2()
    print(a,b,c,d)
    
    多个返回值的接收
    
    多个值接收
     
      关于参数
                
    实际参数传参 位置参数
    def max_num(x,y): 
    
        return  x if x > y else y
    
    ma = max_num(10,20)
    print(ma)
    关键字参数
    def max_num(x,y): 
    
        return  x if x > y else y
    
    ma = max_num(x=10,y=20)
    print(ma)
    混合传参
    def max_num(x,y): 
    
        return  x if x > y else y
    
    ma = max_num(10,y=20)
    print(ma)
    形参角度传参 位置参数
    def max_num(x,y): # 形参x,y与实参一一对应
    
        return  x if x > y else y
    
    ma = max_num(10,20)
    print(ma)
    默认参数  
    def stu_info(name,sex = "male"):  # 默认sex='male'可修改
        print(name,sex)
    
    
    stu_info('Andy')
    stu_info('Tom','girl')
    动态参数  
    
    
    def trans_para(*args, **kwargs):
    print(args, type(args))
    print(kwargs, type(kwargs))


    trans_para("jinxin", 12, [1, 2, 3, 4], [3, 4, ], (1, 4, 7),
    {"a": "123", "c": 456}, country="china")
     
    动态参数,也叫不定长传参,就是你需要传给函数的参数很多,不定个数,那这种情况下,
    你就用*args,**kwargs接收,args是元祖形式,接收除去键值对以外的所有参数,
    kwargs接收的只是键值对的参数,
    并保存在字典中。
  • 相关阅读:
    upc组队赛16 Melody【签到水】
    upc组队赛16 WTMGB【模拟】
    upc组队赛15 Supreme Number【打表】
    upc组队赛15 Lattice's basics in digital electronics【模拟】
    upc组队赛15 Made In Heaven【第K短路 A*】
    upc组队赛14 As rich as Crassus【扩展中国剩余定理】
    upc组队赛14 Floating-Point Hazard【求导】
    upc组队赛14 Communication【并查集+floyd /Tarjan】
    upc组队赛14 Bus stop【签到水】
    2018/12/7 数据库事务和分布式事务
  • 原文地址:https://www.cnblogs.com/gzying-01/p/10190493.html
Copyright © 2020-2023  润新知