函数的初识

时间:2019-06-18
本文章向大家介绍函数的初识,主要包括函数的初识使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

一、什么是函数

  1. 函数: 对代码块和功能的封装和定义。一个函数封装一个功能
  2. 函数的优点:减少代码的重复性,增强了代码的可读性。

二、函数定义, 函数名, 函数体以及函数的调用

  1. 函数的定义

    我们使用def关键字来定义函数, 函数的定义语法:

    ​ def 函数名():

    ​ 函数体

  2. 函数的调用

    函数名()//函数的执行者,调用者

    函数的调用,调用多少次执行多少次

  3. 函数的返回值

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

    s1 = 'abfdas'
    print(len(s1))  # 6

    函数的返回值用return表示:

    1. 结束函数。

      l1 = [1, 2, 3]
      def new_len():
          print(111)
          print(222)
          if 1 == 1:
              return
          print(333)
          print(444)
      new_len()
    2. 函数中没有return或者只写一个return,函数的执行者得到的是None。

       l1 = [1, 2, 3]
       def new_len():
           count = 0
           for i in l1:
               count += 1
           return
       print(new_len())
    3. 函数中return后面是单个值,函数的执行者得到的是这个值(不改变值的类型)。

    def func():
        print(111)
        # return 100
        # return [1, 2, 3]
        return {'name': '太白'}
    ret = func()
    print(ret, type(ret))
    1. 函数中return后面是多个值,函数的执行者得到的是一个元组。

       def func():
           print(111)
           return 1, '23期', [22, 33]
       ret = func()
       print(ret, type(ret))  # (1, '23期', [22, 33])
      
       def func():
           print(111)
           # return 1, '23期', [22, 33]
       a,b,c = func()
       print(a,b,c)
      
      
      def func():
          print(111)
           return 1+1+2
          return 2 > 1
      ret = func()
      print(ret)
  4. 函数的传参

    我们上面研究了,函数的结构,函数的执行,以及函数的返回值。对函数有一个初步的了解,那么接下来就是一个非常重要的知识点,函数的参数。函数是以功能为导向的,上面我们写的函数里面的代码都是写死的,也就是说,这个函数里面的更改起来很麻烦,试想一下,我们使用探探,陌陌等软件,可不可以进行筛选,比如选择性别,年龄等,导出结果? 再拿我们之前学过的len 这个len是不是可以获取字符串的总个数?是不是可以获取列表的总个数?你更改了len函数内部的代码了?没有吧?你看下面的例子:

    s1 = 'sfdas'
    l1 = [1, 3, 7]
    print(len(s1))  # 5
    print(len(l1))  # 3
    # # 函数的传参:函数的拓展性
    #
    #
    # def new_len(a):  # 定义函数时:参数:形参。
    #     count = 0
    #     for i in a:
    #         count += 1
    #     return count
    # l1 = [1, 2, 3]
    # s1 = 'fdsjaklsfjgfds'
    # # print(new_len(l1)) # 函数的调用者:参数 实参。
    # print(new_len(s1)) # 函数的调用者:参数 实参。
    # print(len(s1))

    实参角度:

    1. 位置参数。
    2. 关键字参数。
    3. 混合参数。

    形参角度:

    1. 位置参数。
    2. 默认参数。
    3. 动态参数。
    4. 仅限关键字参数。(了解)

    实参角度:

    1. 位置参数。

      # 1. 位置参数。: 从左至右,按照顺序,一一对应
      def meet(sex,age,job,):
          print('左划一下')
          print('右划一下')
          print(f'寻找性别{sex},年龄{age}岁,{job}')
          print('聊天')
          print('约吗')
          print('约....')
      meet('女','18~25','讲师')
      
      # 写一个函数,接收两个数字的参数,将较大的数字返回。
      # def comp(a,b):
      #     if a > b:
      #         return a
      #     else:
      #         return b
      # ret = comp(1,2000)
      # print(ret)
      
      # 三元运算符:简单的if else。
      # a1 = 1
      # b2 = 2
      # ret = a1 if a1 > b2 else b2
      # # print(ret)
      #
      # def comp(a,b):
      #     # ret = a if a > b else b
      #     # return ret
      #     return a if a > b else b
      # ret = comp(1,2000)
      # # print(ret)
    2. 关键字参数。一一对应

      def meet(sex,age,job,hight,weight,):
          print('左划一下')
          print('右划一下')
          print(f'寻找性别{sex},年龄{age}岁,身高{hight},体重{weight},工作{job}')
          print('聊天')
          print('约吗')
          print('约....')
      
      # meet(sex='女',job='学生',weight=120,hight=170,age='18~25')
    3. 混合参数。关键字参数一定在位置参数后面,一一对应。

      # def meet(sex,age,job,hight,weight,):
      #     print('左划一下')
      #     print('右划一下')
      #     print(f'寻找性别{sex},年龄{age}岁,身高{hight},体重{weight},工作{job}')
      #     print('聊天')
      #     print('约吗')
      #     print('约....')
      #
      # meet('男',27,'ITC语言',weight=120,hight=175,)

    形参角度:

    1. 位置参数:与实参角度位置参数一样。

      # def meet(sex,age,job):
      #     print('左划一下')
      #     print('右划一下')
      #     print(f'寻找性别{sex},年龄{age}岁,{job}')
      #     print('聊天')
      #     print('约吗')
      #     print('约....')
      # meet('女','18~25','讲师')
    2. 默认参数: 一定在位置参数后面,不传参数即沿用默认的参数。

      # open('文件的改',encoding='utf-8')
      def meet(age,job,sex='女'):
          print('左划一下')
          print('右划一下')
          print(f'寻找性别{sex},年龄{age}岁,{job}')
          print('聊天')
          print('约吗')
          print('约....')
      # meet('18~25','幼师')
      # 更改默认参数
      # meet('18~25','幼师',sex='laddy_boy')
      meet('18~25','幼师','laddy_boy')
      

原文地址:https://www.cnblogs.com/cuixiaoying/p/11043527.html