首页 > 编程语言 >python入门篇-day04-函数

python入门篇-day04-函数

时间:2024-08-16 19:54:19浏览次数:14  
标签:return 函数 get python sum day04 入门篇 print def

介绍

概述

函数也叫方法, 可以用单词 Function(函数, 功能), Method(方法) 来表示.函数 = 把具有独立功能的代码封装到一起, 使其成为具有特殊功能的 代码集.

好处

  1. 提到代码的复用性.

  2. 模块化编程.

格式

def 函数名(形式参数1, 形参2...):
    函数体, 就是以前写的逻辑代码, if, for...
​
    return 具体的返回值

格式解释:def defined单词的缩写, 表示: 定义1个函数.函数名 方便我们调用函数的, 起名时最好做到 见名知意.get_max(),get_sum()形参参数 简称叫: 形参, 形容调用函数需要传入什么值.函数体 表示该函数要完成什么功能, 就是以前我们写的逻辑代码, if, for...return 作用1(主职): 结束函数的. 作用2(兼职): 可以返回函数的执行结果.

调用格式

  1. 写 函数名()

  2. 传参. 这里写的是 实参(实际参数), 表示: 实际参与运算的数据.

  3. 接收返回值 如果有的话.

细节

  1. 函数必须先定义, 然后才能调用.

  2. 函数只有被调用, 才会执行.

代码演示

def call():
    print('----- 拨号 -----')
    print('(拨号方)手机发送信号包到 就近的基站')
    print('(拨号方)就近的基站 解析信号包, 然后通过地下电缆 发送信号包到 接收方就近的基站')
    print('(接收方就近的基站 发送信号包 到 (接收方)手机')
    print('(接收方)手机解析信号包...')
    print('(接收方)盲音等待 ...')
​
# 具体的打电话动作.
call()
​
# 需求4: 给 王宝强 打电话...
call()

说明文档

概念

概述: 你可以理解为就是函数的 注释, 帮助程序员快速认识函数的作用的.

格式

格式: 在函数内部的第一行, 直接用 三引号包裹即可.

演示

# 需求: 定义函数 get_sum(a, b), 求两个整数的和.
​
def get_sum(a, b):
    """
    自定义函数, 用于计算 两个整数的 和
    :param a: 要求和计算的第1个整数
    :param b: 要求和计算的第2个整数
    :return: 返回a和b的 求和结果
    """
    sum = a + b
    return sum
​
​
sum = get_sum(10, 20)
print(f'求和结果为: {sum}')
print('-' * 30)
​
# 也可以查看函数的说明文档.
help(get_sum)

参数介绍

细节

  1. 函数 根据 参数 和 返回值不同, 主要分为 如下的四种写法:

​ 1. 无参无返回值. 2. 有参无返回值. 3. 无参有返回值. 4. 有参有返回值.

  1. 定义函数的时候, 写的参数列表叫: 形参, 形容调用函数, 需要传入什么值.

  2. 调用函数的时候, 写的参数列表叫: 实参, 表示调用函数时, 实际参与运算的数据.

  3. 函数只有被调用, 才会执行.

演示

# 需求1: 定义函数 get_sum(), 用于计算两个整数和, 并打印结果.
# 写法1: 无参无返回值.
def get_sum():
    sum = 10 + 20
    print(f'求和结果为: {sum}')
    return  # 方法的最后一行, 默认都有1个return, 表示结束方法, 并默认返回None
​
​
# 调用函数.
get_sum()
print('-' * 30)
​
​
​
# 写法2: 有参无返回值.    因为上述的函数只能计算整数 10 和 20的求和结果, 不够灵活.
def get_sum2(a, b):     # a,b充当的作色是 形参.
    """
    自定义函数, 用于计算两个整数和.
    :param a: 求合计计算用到的第 1个整数
    :param b: 求合计计算用到的第 2个整数
    :return: 空
    """
    sum = a + b
    print(f'求和结果为: {sum}')
    return  # 方法的最后一行, 默认都有1个return, 表示结束方法, 并默认返回None 打印求和结果.
​
# 调用函数.
get_sum2(1, 2)      # 1 和 2在这里充当的是: 实参(实际参数)
get_sum2(10, 20)    # 10 和 20在这里充当的是: 实参(实际参数)
​
print("-" * 30)
​
​
# 需求2: 定义函数, 完成 前两个数求和, 对第3个数进行减法运算, 调用, 并测试该函数.
def get_sum3(a, b, c):      # 形参.
    """
    自定义函数, 完成 n1 + n2 - n3的
    :param a: 要求和的第1个数
    :param b: 要求和的第2个数
    :param c: 进行减法运算的数字
    :return: 无
    """
    result = a + b - c
    print(result)
​
​
# 调用 get_sum3()函数
get_sum3(10, 20, 5) # 实参(实际参与运算的数字), 25.

函数返回值

介绍

概述: 返回值指的是 函数执行完毕后, 需要返回给 调用者一个什么样的结果.格式: 在函数内部写, return 具体的返回值即可.需求: 定义get_sum(), 用于计算两个整数和.

演示

# 需求: 定义get_sum(), 用于计算两个整数和.
​
# 1. 定义get_sum()函数.
def get_sum(a, b):      # a, b 形参, 形容调用函数, 需要传入是什么样的值.
    """
    自定义函数, 计算两个整数的和.
    :param a: 求和运算的第1个整数
    :param b: 求和运算的第2个整数
    :return: 求和结果.
    """
    # 具体的求和过程
    sum = a + b
    # 返回求和结果
    return sum
​
​
# 2. 调用函数.
sum = get_sum(10, 20)
print(f'求和结果为: {sum}')

函数嵌套调用

介绍

概述: 函数的嵌套调用指的是 在一个函数中, 去调用另一个函数.

执行流程: 根据入栈的顺序, 进行执行的.

演示

# 需求: 观察如下的代码, 看其执行结果是什么.
# 1. 定义 fun01 函数
def fun01():
    print('--- fun01 start ---')
    print('hello world!')
    print('--- fun01 end ---')
​
# 2. 定义 fun02 函数
def fun02():
    print('--- fun02 start ---')
    # 在 fun02()函数内, 调用 fun01()函数, 这就叫: 函数的嵌套调用.
    fun01()
    print('--- fun02 end ---')
​
​
# 3. 调用函数.
# fun01()
fun02()

函数的应用

打印图形

# 定义函数打印一行
def print_line(cols, char):
    for i in range(cols):
        print(char, end='\t')
    print()
​
​
# 定义函数打印多行
def print_lines(rows, cols, char):
    for i in range(rows):
        print_line(cols, char)
​
​
print_lines(5, 5, '@')

计算平均值

def get_sum(a, b, c):
    return a + b + c
​
​
def get_avg(a, b, c):
    return get_sum(a, b, c) / 3
​
​
print(get_avg(3, 4, 5))

变量的作用域

变量的作用域指的是 变量的作用范围, 即: 变量在哪里能用, 在哪里不能用.

局部变量

定义到函数的形参列表, 或者 函数内的变量.

只能在函数内部使用, 出了函数就用不了了.

生命周期: 随着函数的调用而存在, 函数的调用完毕而消失.

全局变量

  1. 定义到函数外的变量, 或者 用 global 修饰的变量.

  2. 在当前模块中的函数, 都可以使用.

  3. 生命周期: 随着模块的加载而存在, 模块的卸载而消失.

global关键字介绍:

被它修饰的变量 => 全局变量, 可以实现, 定义 函数内的变量, 在函数外使用.

演示

# 需求1: 演示变量的生命周期 -> 局部变量.
def fun01():
    a = 10      # 局部变量
    print(f'函数内 a: {a}')
​
​
# 需求2: 演示变量的生命周期 -> 全局变量.
b = 30      # 全局变量
def fun02():
    global c            # 局部变量 => 全局变量
    c = 100             # 全局变量
    print(f'函数内 b: {b}')
    print(f'函数内 c: {c}')
​
# main函数, 程序的主入口.
if __name__ == '__main__':
    # 调用函数.
    fun01()
​
    # 函数外, 尝试调用 fun01()函数内的 局部变量 a
    # print(f'函数外 a: {a}')  报错, 超出了 局部变量的 生命周期.
    print('-' * 30)
​
    fun02()
    print(f'函数外 b: {b}')
    print(f'函数外 c: {c}')

练习题

# 需求: 观察如下的代码, 看其打印结果是什么.
​
a = 100
​
def fun01():
    print(f'fun01函数  a: {a}')
​
def fun02():
    # global a
    a = 200
    print(f'fun02函数  a: {a}')   # 使用变量遵循 就近原则, 局部位置有就用, 没有就去当前脚本的全局位置找, 有就用, 没有就报错.
​
​
if __name__ == '__main__':
    fun01() # 100
    fun02() # 200
    fun01() # 100

多函数程序执行流程

1个函数的返回结果, 可以作为另一个函数的 参数.

演示

# 1. 定义函数, 返回1个整数.
def get_number():
    return 30
​
​
# 2. 定义函数, 传入1个整数, 判断其奇偶性.
def is_odd(n):
    if n % 2 == 0:
        print(f'{n} 是偶数!')
    else:
        print(f'{n} 是奇数!')
​
​
# 3. 测试上述的函数.
if __name__ == '__main__':
    # 分解版写法
    # 3.1 获取整数
    n = get_number()        # n = 30
​
    # 3.2 把 n(1个函数的返回值)  作为 is_odd()函数的参数进行传递.
    is_odd(10)
    is_odd(11)
    is_odd(n)
    print('-' * 30)
​
    # 合并版.
    is_odd(get_number())        # 细节: 函数的返回值, 可以作为另一个函数的参数.
    print('-' * 30)
​
​
    # 拔高, 函数名 可以作为 对象使用.
    # n = get_number()        # 函数名() 表示在 调用函数.
    my_fun = get_number       # 函数名, 可以作为对象使用. 即: 现在写 my_fun() 和 get_number() 是一样的.
    n = my_fun()
    print(n)        # 30

标签:return,函数,get,python,sum,day04,入门篇,print,def
From: https://blog.csdn.net/m0_60916732/article/details/141268163

相关文章

  • python入门篇-day05-函数进阶
    函数返回多个值不管返回多少都会默认封装成一个元组的形式返回(可以自定义返回的数据类型,如:[]{})思考:1个函数可以同时返回多个结果(返回值)?答案:错误,因为1个函数只能返回1个结果,如果同时返回多个值则会封装成1个元素进行返回.演示#需求:定义函数my_cal......
  • Python教程(十五):IO 编程
    目录专栏列表引言基础概念什么是IO?同步IOvs异步IO同步IO(SynchronousIO)异步IO(AsynchronousIO)Python中的IO标准IO标准输入和输出文件IO文件操作的上下文管理器打开文件读取文件操作内存中的数据高级文件操作读写二进制文件使用文件指针网络IO使用`requests`库使用......
  • python自学
    基础语法字面量定义:在代码中,被写下来的值,称之为字面量类型:python中常用的有6种数据类型数字整数(int)浮点数(float)复数(complex),如4+3j布尔(bool):True本质为1,False本质为0字符串(String)字符串需要使用'xxx',"xxx"或者'''xxx'''格式,而三引号中的字符串可以跨行。......
  • python循环语句之while循环和for循环
    文章目录1.while循环1.1介绍1.1.1生活中的循环1.1.2程序中的循环1.2总结2.while循环应用:1~100求和2.1需求2.2分析3.while嵌套循环以及运用3.1while嵌套循环语句的语法格式3.2while嵌套循环使用3.2.1要求3.2.2参考代码4.for循环4.1for循环基本格式4.......
  • python判断语句之if语句、比较和逻辑运算符、if...else...语句、if...elif...else语句
    文章目录1.介绍1.1顺序语句1.2判断语句1.3循环语句2.if语句的基本格式2.1判断语句介绍2.2程序中的判断2.3if语句的基本格式3.比较和逻辑运算符3.1比较运算符3.2逻辑运算符4.if...else...语句4.1if...else...的语法格式4.2实例5.if...elif...else...语......
  • python-flask计算机毕业设计网上办公系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,互联网已成为现代社会不可或缺的基础设施,深刻影响着各行各业的工作模式与效率。在企业管理领域,传统的办公方式逐渐......
  • python-flask计算机毕业设计中医院信息管理系统(程序+开题+论文)
    文件加密系统的设计与实现tp835本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着中医药事业的蓬勃发展,中医院作为传承与发展中医药文化的重要载体,其日常运营管理的复杂性和高效性需求......
  • 【python学习】为什么你应该放弃标准 JSON 库,转向更智能的 CommentJSON?
    在软件开发中,JSON是不可或缺的数据交换格式。然而,标准的json库并不支持注释,这使得开发者在处理复杂配置文件时感到束手束脚。本文将详细介绍commentjson库,它不仅能解析标准JSON格式,还支持带注释的JSON文件。通过对比commentjson和标准json库的用法及优势,帮助你......
  • 【python学习】深度解析LTP库:用Python轻松搞定中文NLP任务
    在自然语言处理(NLP)领域,处理中文文本一直是一个挑战。而LTP(LanguageTechnologyPlatform)是一个专为中文语言处理而开发的强大工具包,它能够帮助我们高效地完成各种NLP任务,如分词、词性标注、命名实体识别、依存句法分析、语义角色标注等。这篇博客将带你深入了解如何使用LTP......
  • Python合并两个有序链表
    题目合并两个有序链表,如l1=[1,3,4],l2=[1,2,4,5],合并后l3=[1,1,2,3,4,4,5]解决思路需要构建节点Node和链表LinkedList结构如果root节点不确定,可以创建一个哑节点Node(0),作为root节点的前节点,也是初始节点(当前节点)循环当l1当前节点不为None并且l2当前节点不为None时,那个节......