• Python学习


    1、函数初识

      函数定义了之后,可以在任何需要它的地方调用

    #   函数基本格式
    def mylen():
        s1 = 'Hello SharkJiao'
        length = 0
        for i in s1:
            length += 1
        return length
    print('str_len:%s'%(mylen()))

    2、函数的返回值

      1)没有返回值——返回None

        不写return

        只写return:结束一个函数的继续

        return None —— 不常用

    def mylen():
        s1 = 'Hello SharkJiao'
        length = 0
        for i in s1:
            length += 1
        print(length)
    print('str_len:%s'%(mylen()))
    #   因为没有返回值,此时的mylen()为None
    def ret_demo():
        print(1)
        return
        print(2)
    print(ret_demo())
    #   只写return,后面不写其他内容,也会返回None
    #  函数一旦运行到return,结束整个函数
    def ret_demo():
        print(1)
        return None
        print(2)
    print(ret_demo())
    #   return None:和上面的两种情况一样,我们一般不这样写。

      2)返回1个值

        可以返回任何数据类型

        只要返回就可以接收到

        如果在一个程序中有多个return,那么只执行第一个

      3)返回多个值

        用多个变量接收,有多少返回值就用多少变量接收

        用一个变量接收,得到的是一个元祖

    #   可以返回任意多个、任意数据类型的值
    def demo1():
        return 1,2,3,4
    #   返回多个值
    def demo2():
        return 1,['a','b'],3,4
    #   返回多个任意类型的值
    ret1 = demo1()
    print(ret1)
    ret2 = demo2()
    print(ret2)
    def demo2():
        return 1,['a','b'],3,4
    ret2 = demo2()
    print(ret2)
    #   返回多个值,用一个变量接收
    a,b,c,d = demo2()
    print(a,b,c,d)
    #   返回多个值,用多个变量接收
    #   用多个值接收返回值:返回几个值,就用几个变量接收

    3、实参

      1)按照位置传值

    def mymax(x,y):
        #此时x=10,y=20
        the_max = x if x > y else y
        return the_max
    
    ma = mymax(10,20)
    print(ma)

      2)按照关键字传值

        可以混用 位置参数必须在关键字传参之前

        不能对一个参数重复赋值

    def mymax(x,y):
        #此时x = 20,y = 10
        print(x,y)
        the_max = x if x > y else y
        return the_max
    
    ma = mymax(y = 10,x = 20)
    print(ma)

      3)位置、关键字形式混着用

    def mymax(x,y):
        #此时x = 10,y = 20
        print(x,y)
        the_max = x if x > y else y
        return the_max
    
    ma = mymax(10,y = 20)
    print(ma)

      注意: 位置参数必须在关键字参数的前面

          对于一个形参只能赋值一次

    4、形参

      1)位置参数必须传值

    def mymax(x,y):
        #此时x = 10,y = 20
        print(x,y)
        the_max = x if x > y else y
        return the_max
    
    #调用mymax不传递参数
    ma = mymax()
    print(ma)
    
    #   TypeError: mymax() missing 2 required positional arguments: 'x' and 'y'

      2)默认参数

        将变化比较小的值设置成默认参数

    def stu_info(name,sex = "male"):
        """打印学生信息函数,由于班中大部分学生都是男生,
            所以设置默认参数sex的默认值为'male'
        """
        print(name,sex)
    
    stu_info('alex')
    stu_info('eva','female')

      3)参数陷阱

        默认参数是一个可变数据类型,那么每一次调用函数的时候,如果不传值就公用这个数据类型的资源

    def defult_param(a,l = []):
        l.append(a)
        print(l)
    
    defult_param('alex')
    defult_param('egon')

      4)动态参数

        按位置传值多余的参数都由args或者kwargs统一接收,保存成一个元组的形式

        *args:可以接收任意多个位置参数

    def mysum(*args):
        the_sum = 0
        for i in args:
            the_sum+=i
        return the_sum
    
    the_sum = mysum(1,2,3,4)
    print(the_sum)

        **kwargs :可以接收多个关键字参数

    def stu_info(**kwargs):
        print(kwargs)
        print(kwargs['name'],kwargs['sex'])
    
    stu_info(name = 'alex',sex = 'male')

      5)函数的参数的顺序

        位置参数:必须传

        *args:可以接收任意多个位置参数

        默认参数:可以不传

        *kwrags:可以接收多个关键字参数

    5、相关练习

  • 相关阅读:
    【语言处理与Python】11.3数据采集
    【语言处理与Python】11.4使用XML\11.5使用Toolbox数据
    【语言处理与Python】11.1语料库结构:一个案例研究\11.2语料库生命周期
    【语言处理与Python】10.5段落语义层
    CentOS7.4 删除virbr0虚拟网卡
    套接字超时设置
    Linux命令进制转换、大小写转化
    网络编程第一卷读书笔记(随手记)
    linux下tcp选项TCP_DEFER_ACCEPT研究记录
    Cannot assign requested address出现的原因及解决方案
  • 原文地址:https://www.cnblogs.com/SharkJiao/p/9366893.html
Copyright © 2020-2023  润新知