zoukankan      html  css  js  c++  java
  • day9__基础(函数基础)

    一 初识函数

    函数的优势:

    1,减少代码的重复性。

    2,使代码可读性更好。

    def date():
        print("拿出手机")
        print("打开陌陌")
        print('左滑一下')
        print('右滑一下')
        print("找个漂亮的妹子")
        print("问她,约不约啊!")
        print("ok 走起")
    
    
    date()  # 调用函数
    

    二. 函数的结构与调用

    • 函数的结构:
    def 函数名():
    	函数体
    

    def 关键词开头,空格之后接函数名称和圆括号(),最后还有一个":"。

    def 是固定的,不能变,他就是定义函数的关键字。

    空格 为了将def关键字和函数名分开,必须空(四声),当然你可以空2格、3格或者你想空多少都行,但正常人还是空1格。

    函数名:函数名只能包含字符串、下划线和数字且不能以数字开头。虽然函数名可以随便起,但我们给函数起名字还是要尽量简短,并且要具有可描述性

    函数体:缩进,函数中尽量不要出现print

    括号:是必须加的

    def date():
        print("拿出手机")
        print("打开陌陌")
        print('左滑一下')
        print('右滑一下')
        print("找个漂亮的妹子")
        print("问她,约不约啊!")
        print("ok 走起")
    
    • 函数的调用

      s1=[1,2,3,4,5]
      s2='sdfsdfsdfdsf'
      def a(s):
          count = 0
          for i in s:
              count+=1
          print(count)
      
      a(s2)
      

    三. 函数的返回值

    一个函数就是封装一个功能,这个功能一般都会有一个最终结果的,比如你写一个登录函数,最终登录成功与否是不是需要返回你一个结果?还有咱们是不是都用过len这个函数,他是获取一个对象的元素的总个数,最终肯定会返回一个元素个数这样的结果:

    用到python中的一个关键字:return

    在函数中遇到return直接结整函数

    retuen有两个功能:

    • 结束函数不在继续执行
    • 会给函数执行者返回值

    1)函数中遇到return,此函数结束.不在继续执行

    def date():
        print("拿出手机")
        print("打开陌陌")
        return
        print('左滑一下')
        print('右滑一下')
        print("找个漂亮的妹子")
        print("问她,约不约啊!")
        print("ok 走起")
    date()
    
    输出结果:
        拿出手机
        打开陌陌
    

    2)return 会给函数的执行者返回值。

    def date():
        print("拿出手机")
        print("打开陌陌")
        print('左滑一下')
        print('右滑一下')
        print("找个漂亮的妹子")
        print("问她,约不约啊!")
        print("ok 走起")
        return '约会成功~!'
    a = date()
    print(a)
        输出结果:
        拿出手机
        打开陌陌
        左滑一下
        右滑一下
        找个漂亮的妹子
        问她,约不约啊!
        ok 走起
        约会成功~!    
    

    如果返回多个值,是以元组的形式返回的。如下:

    def date():
        print("拿出手机")
        print("打开陌陌")
        print('左滑一下')
        print('右滑一下')
        print("找个漂亮的妹子")
        print("问她,约不约啊!")
        print("ok 走起")
        return '约会成功~!','123','xxxxxx'
    a = date()
    print(a)
    输出结果:
        拿出手机
        打开陌陌
        左滑一下
        右滑一下
        找个漂亮的妹子
        问她,约不约啊!
        ok 走起
        ('约会成功~!', '123', 'xxxxxx')
    

    总结一下:

      1.终止函数,return下面的(函数内)的代码不会执行。

      2.return 会给函数的执行者返回值。

          可函数的执行者返回值

          如果return后面写了多个结果,,返回给调用者一个tuple(元组),调用者可以直接使用元组的结构获取多个变量。

    def date():
        print("拿出手机")
        print("打开陌陌")
        print('左滑一下')
        print('右滑一下')
        print("找个漂亮的妹子")
        print("问她,约不约啊!")
        print("ok 走起")
        return '漂亮的妹子','小萝莉', '成熟女性'
    g1,g2,g3 = date()
    print(g1, g2, g3)  # 漂亮的妹子 小萝莉 成熟女性
    

    四. 函数的传参

    将一些数据传到函数里面的,然后让里面的代码利用上这个数据产生我们想要的结果,在返回。

    举个例子:

    def date(sex):
        print("拿出手机")
        print("打开陌陌")
        print('设置筛选条件:性别: %s' %sex)
        print("找个漂亮的妹子")
        print("问她,约不约啊!")
        print("ok 走起")
    	
    date('女')
    

    函数的参数可以从两个角度划分:

    • 形参

        写在函数声明的位置的变量叫形参,形式上的一个完整.表示这个函数需要xxx

    • 实参

        在函数调用的时候给函数传递的值.加实参,实际执行的时候给函数传递的信息.表示给函数xxx

    1、实参:
    def date(sex):  # 函数定义时(参数) 这个就是形参
        print("拿出手机")
        print("打开陌陌")
        print('设置筛选条件:性别: %s' %sex)
        print("找个漂亮的妹子")
        print("问她,约不约啊!")
        print("ok 走起")
    
    date('女')  # 函数执行时(参数) 这个就是实参
    # 这个过程就是:代码运行到date('女')开始执行此函数同时将字符串'女'这个数据传递给变量sex,然后执行函数中的代 # 码。如果遇到sex,其实就是使用'女'这个数据。
    
    1)实参角度:
    • 位置参数

    位置参数就是从左至右,实参与形参一一对应。

    def date(sex, age, hobby):
        print("拿出手机")
        print("打开陌陌")
        print('设置筛选条件:性别: %s,年龄:%s,爱好:%s' %(sex, age, hobby))
        print("找个漂亮的妹子")
        print("问她,约不约啊!")
        print("ok 走起")
    date('女','25~30','唱歌')
    

    练习

    编写函数,给函数传递两个参数a,b 比较a,b的大小 返回a,b中最大的那个数

    def f(a,b):
        if a>b:
            return a
        else:
            return b
    num_sum = f(5,8)
    print(num_sum)
    结果:8
    
    • 关键字参数 
    def date(sex, age, hobby):
        print("拿出手机")
        print("打开陌陌")
        print('设置筛选条件:性别: %s,年龄:%s,爱好:%s' %(sex, age, hobby))
        print("找个漂亮的妹子")
        print("问她,约不约啊!")
        print("ok 走起")
    date(hobby='唱歌',sex='女',age='25~30',)
    
    • 混合参数

      def date(sex, age, hobby):
          print("拿出手机")
          print("打开陌陌")
          print('设置筛选条件:性别: %s,年龄:%s,爱好:%s' %(sex, age, hobby))
          print("找个漂亮的妹子")
          print("问她,约不约啊!")
          print("ok 走起")
      date('女',hobby='唱歌',age='25~30',)
      

      混合参数, 位置参数必须在关键字参数前面

    2)形参角度:

    • 位置参数

    位置参数其实与实参角度的位置参数是一样的,就是按照位置从左至右,一一对应

    def date(sex, age, hobby):
        print("拿出手机")
        print("打开陌陌")
        print('设置筛选条件:性别: %s,年龄:%s,爱好:%s' %(sex, age, hobby))
        print("找个漂亮的妹子")
        print("问她,约不约啊!")
        print("ok 走起")
    date('女','25~30','唱歌')
    
    • 默认参数
    def stu_info(name, age, sex='男'):   #sex='男'就是一个默认参数
        print("录入学生信息")
        print(name, age, sex)   
        print("录入完毕")
    stu_info("张强", 18)
    

    练习:

    def date(osname,cpu_info,ram_info):
        print("====osname: %s ===="% osname )
        print("+  CPU: %s        +"% cpu_info)
        print('+  内存: %s        +'%  ram_info)
        print("==================")
    
    osname = input('请输入系统名称:')
    cpu_info= input('请输入CPU型号:')
    ram_info=input('请输入内存大小:')
    date(osname,cpu_info,ram_info)
    输出结果:
        ====osname: Centos ====
        +  CPU: E52620        +
        +  内存: 128G        +
        ==================
    
    def register(n,s,a,e):
        with open('aa.py',encoding='utf-8',mode='a') as f1:
            f1.write('{}|{}|{}|{}
    '.format(n,s,a,e))
    
    while 1:
        name = input('请输入姓名:(Q或者q退出)')
        if name.upper()== 'Q':break
        sex = input('请输入性别')
        age = input('请输入年龄')
        edu =input('请输入学历')
        register(n=name,s=sex,a=age,e=edu)
    
  • 相关阅读:
    【源码学习之spark core 1.6.1 standalone模式下的作业提交】
    【源码学习之spark streaming 1.6.1 】
    spark udf 初识初用
    spark 累加历史 + 统计全部 + 行转列
    spark 都用了哪些开源东东
    kafka 官方示例代码--消费者
    104. 二叉树的最大深度
    237. 删除链表中的节点
    Leetcode-167. Two Sum II
    Leetcode-215. Kth Largest Element in an Array
  • 原文地址:https://www.cnblogs.com/mr-xiong/p/13190854.html
Copyright © 2011-2022 走看看