• Python入门-初始函数


      今天让我们来初步认识一个在python中非常重要的组成部分:函数

      首先,让我们来幻想这样一个场景:

      比如说我们现在想要通过社交软件约一个妹子,步骤都有什么?

    print('打开手机 ')
    print('打开陌陌')
    print('找一个漂亮的小姐姐')
    print('吃饭,唱歌,看电影,然后...')
    结果:

      打开手机

      打开陌陌

      找一个漂亮的小姐姐

      吃饭,唱歌,看电影,然后 ...

      是这样一个步骤吧,但是约一次不给力,还想再约一次,是不是还得重复上面的过程,第三次...是不是很麻烦,如果我们不想这样麻烦,很简单:

    while 1:
        print('打开手机 ')
        print('打开陌陌')
        print('找一个漂亮的小姐姐')
        print('吃饭,唱歌,看电影,然后...')
        
    

      之前我们说的while循环就能帮我们实现,可是现在问题又来了,这是一个死循环,会不停的约,根本停不下来,是不是我们的身体会受不了啊,况且我们也不能不停的约啊,我们还要上班,还有其他事情要干,其实用我们今天的知识会非常简单.

    一.什么是函数

      我们知道数学里的函数是一种计算方式,让我们的运算变得方便,python中的函数其实是有同样的作用,可以让我们的编程更方便,编码更简洁,解决一些编码冗余的问题.说了半天我们还没有给函数一个准确的定义.

      定义:对功能或者动作的封装.那么函数怎么用呢?

    二.函数的语法和定义

      语法:

      def 函数名():

        函数体

      调用:

        函数名()

    def--->define 函数的关键字 ,定义的意思

      那么我们再看看上面的情况要怎么解决.首先我们要计划一下,要怎么约,然后需要的时候我们约一下,可以使用函数来定义一个动作:

    def yue():
      #描述你的动作 print('打开手机 ') print('打开陌陌') print('找一个漂亮的小姐姐') print('吃饭,唱歌,看电影,然后...') yue() #调用函数,不调用不执行函数体
    print('上班')
    print('上班')
    print('上班')
    yue() #再调用

      这样我们就可以在需要的时候再约了

    三.函数的返回值

      return : 返回

    def yue():
        print('打开手机 ')
        print('打开陌陌')
        print('找一个漂亮的小姐姐')
        print('吃饭,唱歌,看电影,然后...')
        return '小姐姐'   #只返回一个结果:小姐姐   下面的都不会执行
        return '大妈'
        return '流浪汉'
    ret = yue()
    print(ret) #小姐姐

      return后面也可以返回多个值

    def yue():
        print('打开手机 ')
        print('打开陌陌')
        print('找一个漂亮的小姐姐')
        print('吃饭,唱歌,看电影,然后...')
        return '小姐姐','大妈','流浪汉'#返回多个值,以元组的形式
    ret = yue()
    print(ret) #('小姐姐','大妈','流浪汉')

      函数的返回值:

        1.可以有,也可以没有;

        2.函数中没有return,不返回任何结果,即使接收也是None;

        3.return后面如果是一个值,返回一个值;

        4.如果是多个值,多个值会以元组的形式返回;

        5.程序 执行到return,函数直接结束,下面的不会执行;

    def yue():
      #描述你的动作
        print('打开手机 ')
        print('打开陌陌')
        print('找一个漂亮的小姐姐')
        print('吃饭,唱歌,看电影,然后...')
    ret = yue()
    print(ret)   #None
    
    def yue():
      #描述你的动作
        print('打开手机 ')
        print('打开陌陌')
        print('找一个漂亮的小姐姐')
        return None  #返回的是None,后面的就不再执行了
        print('吃饭,唱歌,看电影,然后...')
    ret = yue()
    print(ret)

    四.函数的参数(部分)

      函数里的有两个小括号 ,除了我们之前知道的调用的功能之外,它还可以传递一些信息

    def yue(app):
        print('打开手机')
        print('打开%s'%app)
        print('找一个心仪的小姐姐')
        print('吃饭,唱歌,看电影,然后...')
    yue('微信')
    yue('陌陌')
    yue('探探')
    根据你指定的APP去约

      在括号里写的叫参数,在函数声明的位置写的参数叫形参,在函数调用的位置写的叫实参,而把实参传递给形参的过程叫传参

      1.形参

        必须保证所有的形参都有值,调用的时候如果不传值的话会报错,不够也会报错

        1.位置参数 : 按照位置声明的变量

        2.默认值参数

        3.当默认值和位置参数同时存在的时候   规定 : 默认值必须写在后面

      2.实参

        1.位置参数     按照位置给形参传递信息

        2.关键字参数   按照形参的声明的变量名进行传递

        3.混合参数   位置+关键字(规定:位置在前,关键字在后)

    记住:所有带等号的参数都放后面

    def chi(zhushi,fushi,tang,tiandian):
        print('主食:%s'%zhushi)
        print('副食:%s'%fushi)
        print('汤:%s'tang)
        print('甜点:%s'%tiandian)
    chi('大米','红烧肉','紫菜蛋花汤','蛋糕')
    结果:
      主食:大米
      副食:红烧肉
      汤:紫菜蛋花汤
      甜点:蛋糕

      这是按照位置进行传参,实参跟形参一一对应,让我们来看一下关键字传参

    def chi(zhushi,fushi,tang,tiandian):
        print('主食:%s'%zhushi)
        print('副食:%s'%fushi)
        print('汤:%s'tang)
        print('甜点:%s'%tiandian)
    chi(zhushi='大米',fushi='红烧肉',tang='紫菜蛋花汤',tiandian='蛋糕')
    结果:
        主食:大米
        副食:红烧肉
        汤:紫菜蛋花汤
        甜点 :蛋糕
    

      结果是一样的.上面都是正确的演示,下面来一种错误的演示

    def chi(zhushi,fushi,tang,tiandian):
        print('主食:%s'%zhushi)
        print('副食:%s'%fushi)
        print('汤:%s'%tang)
        print('甜点:%s'%tiandian)
    chi('大米','红烧肉',tang='紫菜蛋花汤','蛋糕')
    结果:
        SyntaxError: positional argument follows keyword argument
        报错:位置参数在关键字参数 之后
    

      再看另一种情况,形参中的位置参数和默认值参数

    例子:比如我们要统计班级里学生的情况

    def regist(name,age,sex):
        print('name:',name)
        print('age:',age)
        print('sex:',sex)
    regist('张三',19,'男')
    regist('李四',20,'男')
    regist('王小丽',18,'女')
    

      这是位置参数,我们可以看到,男学生比较多,那么就可以这样操作了:

    def regist(name,age,sex='男'):
        print('name:',name)
        print('age:',age)
        print('sex:',sex)
    regist('张三',19)
    regist('李四',20)
    regist('王小丽',18,'女')
    

      把性别直接默认为男,女同学就直接传 '女'就可以了,男的就可以不用输入了.

      今天简单的认识一下函数,明天还会接着今天没写完的写!

  • 相关阅读:
    Andrew Ng机器学习课程12
    Andrew Ng机器学习课程12
    排序算法十一:计数排序
    排序算法十一:计数排序
    排序算法十:桶排序
    排序算法十:桶排序
    基于MSP430F2618的程控电压源
    基于MSP430F2618的程控电压源
    Andrew Ng机器学习课程11之使用machine learning的建议
    Andrew Ng机器学习课程11之使用machine learning的建议
  • 原文地址:https://www.cnblogs.com/pythoncainiao/p/10076755.html
Copyright © 2020-2023  润新知