AI学习 Day04 函数(上)

本文章最初发布在 XJHui’s Blog,未经允许,任何人禁止转载!

注意:最新修改版本已发布在 这里,点击前往查看!

初始函数

概念

  1. 是什么?

    一系列python语句的组合,可以在程序中运行一次或多次,完成具体、独立的功能。

  2. 为什么?

    整体结构清晰,代码复用最大化,代码冗余最小化,问题局部化。

定义

  1. 语法:

    def 函数名():
        函数体
    
  2. 案例:输出小明的信息

    def printInfo():
        print('姓名:{},性别:{},年龄:{}'.format("小明", "男", "20"))
    

调用

  1. 语法:

    函数名()
    
  2. 案例:调用上例中创建的printInfo函数

    def printInfo():
        print('姓名:{},性别:{},年龄:{}'.format("小明", "男", "20"))
    printInfo() #调用已创建的 printInfo 函数
    

    运行结果:

    注意:

    • 函数必须先定义才能被调用

    • 函数注释的写法:

      def printInfo():
          '''
          输出小明的信息
          :return: 
          '''
          print('姓名:{},性别:{},年龄:{}'.format("小明", "男", "20"))
      

      调用函数时,按下ctrl并把鼠标放在函数名上会有如下提示:

函数参数

分类

  • 必选参数
  • 默认参数
  • 不定长参数
  • 关键字参数

必选参数

调用时必须要给参数值

案例:编写两数求和函数,输出运算结果

def getSum(numA, numB):
    print(numA + numB)
  • 传参调用:

    getSum(3, 5)
    

    运行结果:

  • 不传参调用:

    getSum()
    

    运行结果:

默认参数

缺省参数,无参数时使用默认值

def getSum(a=10, b=20):
    print(a + b)
  • 不传参调用:

    getSum()
    

    运行结果:

  • 传参数调用:

    getSum(1, 2)
    

    运行结果:

  • 易错案例:

    def getSum(a=20, b):
        print(a + b)
    
    getSum(1)
    

    运行结果:

    分析:实参个数<形参个数时,参数会从左向右依次分配,所以 a=1,但由于 b 没有默认值所以会报错。

注意:从上面的案例也能看出,默认(缺省)参数始终存在于参数列表中的尾部,否则没意义。

不定长参数

当参数个数不确定时使用

  • 输出单个参数:

    def getResult(*args):
        print(args)
        
    getResult(1)
    

    运行结果:

  • 多个参数求和:

    def getResult(*args):
        sum = 0
        for item in args:
            sum += item
        print(sum)
    
    getResult(1, 2, 3, 4, 5)
    

    运行结果:

关键字参数

接受字典类型的参数

def info(**kwargs):
    print(kwargs)
  • 传参方法1:

    dictA = {'name': 'xiaoming'}
    info(**dictA) # 注意 **
    

    运行结果:

  • 传参方法2:

    info(name="xiaoming") # 注意:key不可以加引号,否则报错
    

    运行结果:

返回值

函数执行完以后会返回一个对象,使用return即可实现,否则返回none

注意:

  • 在一个函数体中可以出现多个return,但只能选择一个返回
  • 只要执行了return,则其后面的代码均不再执行

单个数据

def Sum(a, b):
    sum = a + b
    return sum

num = Sum(1, 2) #num接受返回值
print(num)

运行结果:

多个数据

返回列表、元组、字典

  1. 返回列表:

    def Sum():
        return ['sda', 1, 0.5] #返回列表类型的数据
    
    num = Sum()  # num接受返回值
    print(type(num))
    print(num)
    

    运行结果:

  2. 返回元组:

    def Sum():
        return 1,2,3,4 #返回元组类型的数据
    
    num = Sum()  # num接受返回值
    print(type(num))
    print(num)
    

    运行结果:

  3. 返回字典:

    def Sum():
        return {"name":"菜徐坤"} #返回字典类型的数据
    
    num = Sum()  # num接受返回值
    print(type(num))
    print(num)
    

    运行结果:

嵌套调用

def ddd1():
    print("---------ddd1 start------")
    print("---------在执行代码------")
    print("---------ddd1 end------")

def ddd2():
    print("---------ddd2 start------")
    ddd1()
    print("---------ddd2 end------")

ddd2()

运行结果:

注意:函数一定要先定义再调用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值