zoukankan      html  css  js  c++  java
  • 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,'女')
    

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

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

  • 相关阅读:
    JID 2.0 RC4 发布,高性能的 Java 序列化库
    FBReaderJ 1.6.3 发布,Android 电子书阅读器
    Arquillian 1.0.3.Final 发布,单元测试框架
    JavaScript 的宏扩展 Sweet.js
    Hypertable 0.9.6.5 发布,分布式数据库
    JRuby 1.7.0 发布,默认使用 Ruby 1.9 模式
    httppp 1.4.0 发布,HTTP响应时间监控
    Redis 2.6.0 正式版发布,高性能K/V服务器
    OfficeFloor 2.5.0 发布,IoC 框架
    XWiki 4.3 首个里程碑发布
  • 原文地址:https://www.cnblogs.com/pythoncainiao/p/10076755.html
Copyright © 2011-2022 走看看