美文网首页
Day-09 函数

Day-09 函数

作者: 水果坚果燕麦片 | 来源:发表于2019-01-04 17:05 被阅读0次

    函数

    函数就是对实现某一特定功能的代码段的封装

    2.函数的分类
    系统函数:系统已经给我们定义好的函数,程序员直接调用使用函数的功能
    print(), input(), id(), type(), chr(), bin()...

    自定义函数:需要程序员自己去定义的函数

    3.函数的定义
    a.语法:
    def 函数名(参数列表):
    函数体

    b.说明
    def - python中声明函数的关键字
    函数名 标识符,不能是关键字
    PEP8命名规范,见名知义
    参数列表 - 参数1,参数2
    功能是将函数外面的数据传递到函数里面
    函数体 - 一个完整的函数体包含:函数说明文档,实现函数功能的代码段,函数的返回值

    def sxc_sum(num1,num2)
      """
      求两个数的和,param num1 :求和的第一个数 param num2:求和的第二个数 return:无
      """
      print(num1+num2)
    sxc_sum(1,2)
    

    按Ctrl指着函数可以查看说明文档

    声明一个函数,打印指定列表中指定元素对应的下标

    list2 = [123,'abc','a']
    count = 0
    def show_index(list1,str1):
        """
        通过输入指定的元素来显示列表所对应的下标 list1: 需要求下标的列表名 str1:列表中的元素,return:无
        """
        count = 0
        for index in range(len(list1)):
            if str1 == list1[index]:
                print(index)
                count += 1
        if count == 0:
            print('列表中没有对应元素')
    str2 = input('输入一个字符串')
    index = show_index(list2,str2)
    
    def number_game():
        num = random.randint(0, 100)
        count = 0
        while True:
            input_num = int(input('請輸入數字0-100:'))
            if input_num == num:
                print("bingo")
                if count > 7:
                    print('Its so unfortunately')
                else:
                    print('You are the lucky dog')
                break
            else:
                if input_num > num:
                    print('be smaller')
                else:
                    print('be bigger')
    number_game()
    运行结果如下:
    請輸入數字0-100:50
    be smaller
    請輸入數字0-100:25
    be smaller
    請輸入數字0-100:12
    be smaller
    請輸入數字0-100:10
    be smaller
    請輸入數字0-100:5
    be smaller
    請輸入數字0-100:2
    bingo
    You are the lucky dog
    

    函数的参数

    1.位置参数和关键字参数(根据实参的传递方式对参数进行分类)

    a.位置参数:实参的位置和形参保持一致

    def func1(a,b,c):
      print(a,b,c)
    func1(10,20,30)
    b.关键字参数:以形参来
    func(c=30,a=10,b=20)
    

    2.参数默认值

    声明函数的时候,可以给参数赋默认值
    如果一个形参有默认值了,那么可以调用函数的时候这个参数可以不用传参
    如果有的形参有默认值,有的形参没有默认值,那么有默认值的形参要放在没有默认值的后面

    def func2(a,b,c = 0):
      print(a,b,c)
    没有c就默认0 有就改掉
    

    3.参数类型的说明 - 类型说明只有提示功能,没有约束功能

    a.给参数设置默认值,默认值的类型就是参数的类型
    b.在形参的后面加 : 类型名,来说明参数类型。这种方式必须传参

    def list_index(list1:list, index=0):
    

    c.函数声明的时候在()后面加->类型名 来说明函数返回值的类型

    4.不定长参数

    a.声明函数的时候,在参数面前加,可以用来同时获取多个实参的值
    --实质是将带
    的参数编成元组,将参数编入元组进行操作
    如果函数中既有不定长参数又有普通参数,那么不定长参数必须放在普通参数的后面

    def sxc_sum(*nums):
        print(nums)
    
    sxc_sum(1)
    sxc_sum(2,3)
    sxc_sum(4,5,6)
    结果如下:
    (1,)
    (2, 3)
    (4, 5, 6)
    

    b.在参数面前加两个*会把参数变成一个字典

    def func7(*args, **kwargs):
    就是不定长参数,是参数的调用更加灵活s
      
    

    写一个函数,计算多个数的和(要求可以使用位置参数也可以使用关键字参数)

    def sxc_sum(*args, **kwargs):
        sum = 0
        for num in args:
            sum += num
        for key in kwargs:
            sum += kwargs[key]
        print(sum)
    
    sxc_sum(1,2,3,a=4)
    结果如下:
    10
    

    函数的返回值

    def func1():
      print('****')
    result = func1()
    print(result)
    
    结果如下:
    None
    

    执行函数的手如果遇到return,函数直接结束,并且将return后面的值作为函数的返回值

    相关文章

      网友评论

          本文标题:Day-09 函数

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