美文网首页
2018-08-29 Day8-函数基础01

2018-08-29 Day8-函数基础01

作者: Deathfeeling | 来源:发表于2018-08-29 15:32 被阅读0次

    推荐一个网址:http://pythontutor.com/visualize.html#mode=edit
    可以在线运行代码,观看执行过程,很好用。


    没有函数,出现的问题是什么?
    1、同样的代码需要些多次。
    2、一个功能的需求发生改变,需要修改多个地方。

    • 定义:函数就是对实现某一特定功能的代码段的封装。
    • 作用:提高代码的复用度,让代码更简洁。

    一、函数分类

    • 内置函数:系统写好的,可以直接使用的函数。例如 print函数、input函数、sum函数等。
    • 自定义函数:程序员自己创建的函数

    二、函数的说明

    1、固定格式:
    def 函数名(参数列表):
      函数的说明文档
      函数体
    

    说明文档的格式:

    def download(url):
        """
        在这里写说明文档(函数功能描述)
        :param url:下载数据的地址(对参数说明)
        :return:None(返回值的说明)
        """
    
    2、 函数组成说明:
    • def:python中声明函数的关键字。
    • 函数名:标识符,不能是关键字。(规范:PEP8规则,见名知义)
    • ():固定格式,并且必须写。
    • 参数列表(行参):参数名1,参数名2,参数名3.....(参数可以有多个,也可以不写)。
      参数是用来从函数的外面,向函数里面传值用的。
    • 说明文档:说明函数功能。
    • 函数体:实现函数功能的代码段。
      函数体中可能会包含return语句。
    3、初学者声明函数的过程:

    1、确定函数的功能 ===》2、根据功能确定函数的名字 ===》 3、确定参数(确定函数需不需要从函数外面传递数据进来) ===》4、实现函数功能 ===》5、确定返回值

    #写一个函数,打印两个数的和
    def mysum(a,b):
        return a + b
    print(mysum(1,2))
    
    3
    
    4、函数的调用

    格式:函数名(实参列表)
    函数体只有调用的时候才会执行,并且只能先声明才能调用

    • 实参列表:就是给形参赋值的
    5、函数的调用过程(重要)

    (1)、回到函数声明的位置。
    (2)、使用实参给形参赋值(传参)。
    (3)、执行函数体。
    (4)、将返回值返回给函数调用者。
    (5)、回到函数调用的地方,接着往后执行。

    练习:

    #写一个函数,打印一个整数的阶乘
    def jiecheng(n):
        product = 1
        for index in range(1,n+1):
            product *= index
        print(product)
    jiecheng(5)
    
    结果:
    120
    
    6、参数

    实参:
    (1)、位置参数:实参的位置和形参一一对应。
    (2)、关键字参数:通过 ‘ 形参名 = 实参 ’ 来传参。
    func1(b='abc' , c=True , a=10)
    (3)、关键字参数和位置结合:
    func1(10, b=2, c=4)

    声明函数时,参数赋予默认值:

    • 在声明函数的时候,可以参数赋默认值的。(可以参数赋默认值)
    • 给部分参数赋默认值的时候,要求有默认值的参数必须放在参数列表的最后。
    • 没有默认值的参数必须传参,有默认值的参数,可以传可以不传。
    def func(a, b='a', c=True):
      print(a, b, c)
    func(10)
    
    结果:
    10 a True
    

    不定个数参数

    格式:def 函数名(*形参)

    • python中通过在形参名前面加 * ,让这个形参变成一个元组,来让这个形参可以接受多个实参。
    def mysum(*nums):
      print(nums, type(nums))
      sum = 0
      for item in nums:
        sum += item
      print(sum)
    mysum(1,2,3,4,5)
    
    结果:
    (1, 2, 3, 4, 5) <class 'tuple'>
    15
    

    python不能直接约束一个变量的类型。但是可以通过说明,来提示用户调用参数的时候,参数的类型。

    def func(name:str, age:int, study_id):
      print(name)
    

    其中str、int有提示作用

    7、函数的返回值
    • 返回值:函数的返回值就是return关键字后面表达式的结果。就是函数调用表达式的结果。
    • python中所有的函数都有返回值,默认为None(没有return)。
    def Pass():
        pass
    print(Pass())
    
    结果:
    None
    
    • return 关键字
      1、确定返回值
      2、结束函数(函数中只要遇到return,函数就直接结束)

    什么时候需要返回值?
    只要实现函数的功能会产生新的数据,就通过返回值将新的数据返回,并不是打印它。

    练习:

    #练习:1、写一个函数,统计一个列表中整数的个数
    def count1(list):
        count = 0
        for index in list:
            if isinstance(index,int):
                count += 1
        return count
    print(count1([1, 1.2, 3.4 ,34.5, 34, 34]))
    
    # 2、将一个数字列表中所有的元素的值都变成原来的2倍
    def list2(list_new):
        n = 0
        for item in list_new:
            list_new[n] *= 2
            n += 1
        return list_new
    print(list2([2,3,4,5,6]))
    
    # 3、获取指定元素对应的下标
    def list_1(list:list, item):
        index_list = []
        for index in range(len(list)):
            if list[index] == item:
                index_list.append(index)
        return index_list
    print(list_1([1,3,2,2,3,3],3))
    结果:
    3
    [4, 6, 8, 10, 12]
    2
    

    相关文章

      网友评论

          本文标题:2018-08-29 Day8-函数基础01

          本文链接:https://www.haomeiwen.com/subject/rlfhwftx.html