• Python基础语法(三)—— 函数的定义和使用



    函数的定义

    在Python中通过 def 关键字定义函数
    基本语法格式

    def 函数名(形参列表):
    	函数体
    	return 返回值
    
    • 1
    • 2
    • 3

    函数的调用

    函数名(实参列表) # 不考虑返回值情况
    返回值 = 函数名(实参列表) # 考虑返回值情况
    
    • 1
    • 2

    示例:
    定义一个函数求两个数字之和

    def add(num1, num2):
    
        return num1 + num2
    
    
    print(add(1, 2))
    print(add(1, 3.5))
    # 运行结果
    3
    4.5
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    由于Python动态类型的特性,对于两数之和这样的操作就不需要考虑数字的类型,直接相加返回就好。
    注意:函数一定要先定义再使用,也就是 deff定义函数要在使用这个函数之前

    函数的返回值

    Python不同于C/Java,它的函数返回值可以有多个,多个返回值的接收类似于多远赋值

    def prt(x, y):
    
        return x, y, x+y
    
    
    a, b, c = prt(1, 2)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    如果想忽略一些返回值可以用 _

    def prt(x, y):
    
        return x, y, x+y
    
    
    _, _, c = prt(1, 2)
    print(c)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    变量的作用域

    • 在函数内部的变量, 也称为 “局部变量”
    • 不在任何函数内部的变量, 也称为 “全局变量”
    x = 20
    
    
    def test():
        x = 100
        return x
    
    
    print(f'函数外 x = {x}')
    print(f'test函数内 x = {test()}')
    # 运行结果
    函数外 x = 20
    test函数内 x = 100
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    如果函数内部尝试访问的变量在局部不存在,就会尝试在全局作用域中查找

    x = 20
    
    
    def test():
        return x
    
    
    print(f'x = {test()}')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    如果想在函数内部修改全局变量的值,需要使用,global关键字声明

    x = 20
    
    
    def test():
        global x
        x = 100
    
    
    test()
    print(f'x = {x}')
    # 运行结果
    x = 100
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    注意事项
    if/while/for等语句块不会影响到变量的作用域
    换句话来说,在 if / while /for 中定义的变量在语句外也是可以使用的

    for i in range(1, 5):
        print(f'for循环内部的i = {i}')
    
    print(f'for循环外面使用i = {i}')
    if True:
        tmp = 100
    
    print(tmp)
    # 运行结果
    for循环内部的i = 1
    for循环内部的i = 2
    for循环内部的i = 3
    for循环内部的i = 4
    for循环外面使用i = 4
    100
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    函数默认值

    Python中的函数,可以给形式指定默认值
    如果参数带有默认值,可以在调用的时候不传递形式参数

    def add(num1, num2, debug=False):
        if debug:
            print(f'调试信息, num1 = {num1}, num2 = {num2}')
        return num1 + num2
    
    
    print(add(1, 2))
    print(add(40, 50, True))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    **注意:**带有默认值的参数需要写到没有默认值参数的后面

    关键字参数

    在调用函数的时候,需要给函数指定实参,一般情况下是按照形参的顺序,来一次传递实参。

    但是我们也可以通过关键字参数,来调整这里的传参顺序,显示指定单前实参传递给形式参数

    def func(a, b, c):
        print(f'a = {a}', end=' ')
        print(f'b = {b}', end=' ')
        print(f'c = {c}')
    
    func(c=20, a=100, b=50)
    func(b=70, c=80, a=60)
    
    
    # 运行结果
    a = 100 b = 50 c = 20
    a = 60 b = 70 c = 80
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

  • 相关阅读:
    基于数学形态学的路面裂缝图像处理技术-含Matlab代码
    61-70==c++知识点
    java基于springboot游乐场员工管理系统
    Dubbo源码(七) - 集群
    ZooKeeper的Linux端安装步骤(内含Java的Linux端安装)
    java毕业设计宠物之家电子商务网站mybatis+源码+调试部署+系统+数据库+lw
    参数估计——《概率论及其数理统计》第七章学习报告(点估计)
    crondtab定时任务%字符无法识别的处理
    Windowsold文件夹作用以及删除方法
    elasticsearch7.6安装教程及启动常见错误解决方法
  • 原文地址:https://blog.csdn.net/weixin_53946852/article/details/126798485