zoukankan      html  css  js  c++  java
  • 记录我的 python 学习历程-Day09 函数 / 返回值 / 参数

    函数初识

    • 函数:
      • 内置函数:python 自带的一些功能,直接调用就可以,比如 len()。
      • 自定议函数:需要我们自己定义一段代功能性代码,方便调用。
    • 函数的优点:
      • 减少代码重复性。
      • 增强了代码可读性。

    函数的结构与调用

    • 结构

      def 函数名():
          函数体
      

      这就 是函数的结构

      def :关键字,表示我要定义函数了。

      函数名:与变量的命名规则相同,要具有可描述性。

      函数体:缩进,这里面是你这个函数要完成的功能的具体代码,也是你定义这个含数的意义。

    • 调用

    • s = 'fdsfjldsajfklsajflas'
      
      
      def my_len(s):	# 定义一个函数
          cont = 0
          def_li = []
          for i in s:
              cont += 1
          print(cont) 
      
      
      my_len(s)	# 调用函数
      

      使用函数名加小括号来调用函数,只有解释器读到函数名()时,才会执行此函数,如果没有这条指令,函数里面有再多的代码也不会执行。并且:这个指令你写几次,函数里的代码就运行几次。

    函数的返回值

    • 遇到return,函数结束,return下面的(函数内)的代码不会执行。

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

      • 如果return后面什么都不写,或者函数中没有return,则返回的结果是None
      • 如果return后面写了一个值,返回给调用者这个值
      • 如果return后面写了多个结果,,返回给调用者一个tuple(元组),调用者可以直接使用元组的解构获取多个变量。
      s = 'fdsfjldsajfklsajflas'
      
      
      def my_len(s):
          cont = 0
          def_li = []
          for i in s:
              cont += 1
          return cont	# 返回值
      
      
      my_len(s)
      print(my_len(s))
      

    函数的参数

    • 函数的传参

      • 形参(定义函数时设置的参数)

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

      • 实参(调用函数时填入的参数)

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

      函数的传参就是函数将实际参数交给形式参数的过程

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

      • 位置参数(调用函数的时候,填入的参数)

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

        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):
            c = a+b
            return c
        
        num_sum = f(5,8)
        print(num_sum)
        结果: 13
        

        ​ 编写函数,给函数传递两个参数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 f(a,b):
            c = a if a > b else b  #当a>b就把a赋值给c,否则就把b赋值给c
            return c
        
        msg = f(5,7)
        print(msg)
        
        结果:7
        
      • 关键字参数

        可以不管位置,但必须一一对应

        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 func(a,b):
            return a + b
        print(func(b='Dylan',a='无敌'))
        
        
      • 混合参数

        可以把上面两种参数混合着使用. 也就是说在调用函数的时候即可以给出位置参数, 也可以指定关键字参数.

        位置参数一定要在关键字参数的前面。

        # 混合参数
        # 位置参数一定要在关键字参数的前面。
        def meet(sex,age,skill,hight,weight,):
            print('打开tantan')
            print('进行筛选:性别:%s,年龄:%s,技术:%s,身高:%s,体重%s' %(sex,age,skill,hight,weight))
            print('左滑一下')
            print('右滑一下')
            print('找美女')
            print('悄悄话....')
            print('约....走起...')
            return '筛选结果:性别:%s,体重%s' %(sex,weight)
        
        print(meet('女',25,weight=100,hight=174,skill='python技术好的'))
        
        
      • 综上: 在实参的⾓角度来看参数分为三种:

        1. 位置参数,必须要一一对应,从左至右,位置不能错
        2. 关键字参数,必须一一对庆,位置可以调整
        3. 混合参数,位置参数必须在关键字参数前面
        
        
    • 形参角度(定义含数的时候设置的参数)

      • 位置参数

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

        def date(sex, age, hobby):
            print("拿出手机")
            print("打开陌陌")
            print('设置筛选条件:性别: %s,年龄:%s,爱好:%s' %(sex, age, hobby))
            print("找个漂亮的妹子")
            print("问她,约不约啊!")
            print("ok 走起")
        date('女','25~30','唱歌')
        
        
        写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
        # low 版:
        def func(l):
            if len(l) > 2:
                return l[:2]
            else:
                return l
        # print(func([1,2,3,4,5]))
        print(func([1,]))
        
        # 三元运算符版:
        def func(l):
            c = l[:2] if len(l) > 2 else l
            return c
        print(func([1,2,3,4,5]))
        print(func([1,]))
        
        def func(l):
            return l[:2]
        # l1 = [1,]
        # print(l1[:2])
        
        
      • 默认参数

        默认参数设置的意义:普遍经常使用的。

        def stu_info(name, age, sex='男'):   
            print("录入学生信息")
            print(name, age, sex)   
            print("录入完毕")
        
        
        stu_info("张强", 18)
        
        

        注意:必须先声明在位置参数,才能声明关键字参数

      • 综上:在形参的角度来看

        位置参数
        默认认值参数(大多数传进来的参数都是一样的, 一般用默认参数)
        
        
    人生苦短,我用 Python
  • 相关阅读:
    git 删除未提交的文件
    Vmware Ubuntu 开机蓝屏
    php 加入 unless 语法
    Unity 登录白屏或者黑屏
    Ubuntu php + apache
    Ubuntu mysql
    Ubuntu 重装vmtool
    window 后台运行的应用程序点击没反应
    phpstorm格式设置不同导致的Git代码无法正常比较
    phpstorm 设置换行符的格式
  • 原文地址:https://www.cnblogs.com/guanshou/p/12095982.html
Copyright © 2011-2022 走看看