当前位置: 首页 > article >正文

函数调用与作用域

引言

        在前面的课程中,我们已经学习了 Python 的基本输入输出、数据类型及其转换、顺序结构、分支结构、循环结构、循环控制语句、字符串类型、列表类型、元组类型、字典类型、集合类型以及函数的定义与使用。本课时将介绍 Python 中的函数调用与作用域,包括如何调用函数、局部变量与全局变量的概念,并通过一个具体的示例来展示如何使用函数解决实际问题。

函数调用

调用函数是执行函数体中的代码的过程。在 Python 中,调用函数的基本语法如下:

function_name(arguments)
  • function_name:函数名。
  • arguments:传递给函数的参数,可以没有参数,也可以有多个参数,参数之间用逗号 , 分隔。

示例:调用函数

def greet(name):
    print(f"Hello, {name}!")

greet("Alice")  # 调用函数

局部变量与全局变量

在 Python 中,变量的作用域决定了变量在哪些地方可以被访问。主要有两种变量作用域:局部变量和全局变量。

  1. 局部变量

    • 局部变量是在函数内部定义的变量,只能在函数内部访问。
    def my_function():
        local_var = 10  # 局部变量
        print(local_var)
    
    my_function()  # 输出 10
    # print(local_var)  # 报错:NameError: name 'local_var' is not defined
  2. 全局变量

    • 全局变量是在函数外部定义的变量,可以在整个模块中访问。
    global_var = 20  # 全局变量
    
    def my_function():
        print(global_var)
    
    my_function()  # 输出 20
    print(global_var)  # 输出 20
  3. 修改全局变量

    • 如果在函数内部需要修改全局变量,需要使用 global 关键字声明。
    global_var = 20
    
    def modify_global():
        global global_var
        global_var = 30
    
    print(global_var)  # 输出 20
    modify_global()
    print(global_var)  # 输出 30

使用函数解决实际问题

        现在我们通过一个具体的示例来展示如何使用函数解决实际问题。假设我们需要编写一个程序,该程序可以计算一个列表中所有奇数的平方和。

示例代码

# 定义一个函数,计算一个列表中所有奇数的平方和
def sum_of_squares_of_odds(numbers):
    """ 计算列表中所有奇数的平方和。"""
    total = 0
    for number in numbers:
        if number % 2 != 0:
            total += number ** 2
    return total

# 定义一个函数,生成一个包含 n 个随机整数的列表
def generate_random_numbers(n, lower_bound, upper_bound):
    """ 生成一个包含 n 个随机整数的列表。"""
    import random
    return [random.randint(lower_bound, upper_bound) for _ in range(n)]

# 主程序
def main():
    # 生成一个包含 10 个随机整数的列表
    random_numbers = generate_random_numbers(10, 1, 100)
    print(f"生成的随机数列表:{random_numbers}")
    
    # 计算奇数的平方和
    result = sum_of_squares_of_odds(random_numbers)
    print(f"奇数的平方和:{result}")

# 运行主程序
if __name__ == "__main__":
    main()

示例解析

  1. 定义函数 sum_of_squares_of_odds

    • 该函数接收一个列表 numbers,计算列表中所有奇数的平方和。
    • 使用 for 循环遍历列表中的每个元素,如果是奇数,则计算其平方并累加到 total 中。
    • 最后返回 total
  2. 定义函数 generate_random_numbers

    • 该函数生成一个包含 n 个随机整数的列表。
    • 使用 random.randint() 函数生成随机整数,并使用列表推导式生成列表。
  3. 主程序 main

    • 生成一个包含 10 个随机整数的列表,并打印该列表。
    • 调用 sum_of_squares_of_odds 函数计算奇数的平方和,并打印结果。

小结

        通过本课时的学习,你已经掌握了 Python 中的函数调用与作用域,并通过一个具体的示例展示了如何使用函数解决实际问题。理解局部变量与全局变量的概念对于编写清晰、高效的代码非常重要。函数作为重要的编程构造,可以帮助我们更好地组织代码,减少重复代码,提高代码的可读性和可维护性。


http://www.kler.cn/news/310592.html

相关文章:

  • 下载 llama2-7b-hf 全流程【小白踩坑记录】
  • docker可视化管理工具推荐!docker.ui
  • OpenMV与STM32
  • nodejs 007:错误npm error Error: EPERM: operation not permitted, symlink
  • 9.18 微信小程序开发笔记
  • HTTPS是如何保证安全传输的
  • spring boot设置多环境的配置文件
  • 【开源免费】基于SpringBoot+Vue.JS在线文档管理系统(JAVA毕业设计)
  • 今日leetCode 454. 四数相加 II
  • code eintegrity npm err sha512
  • 如何在没有备份的情况下恢复 Mac 上丢失的数据
  • Ubuntu下beanstalkd无法绑定局域网IP地址以及消息队列beanstalkd上的error: JOB_TOO_BIG的解决
  • C# HttpListener 实现的HTTP Sever浏览器文件下载
  • 配电房监控 配电柜监测系统方案简介@卓振思众
  • 基于C语言--解读main(int agrc,char* argv[ ])(命令行参数+环境变量)
  • 【数据结构与算法】排序算法之快速排序(简)
  • WPF自定义Dialog模板,内容用不同的Page填充
  • TypeScript入门 (二)控制语句
  • C++伟大发明--模版
  • 使用大语言模型(LLM)修正小段乱码(Mojibake)为正常文本
  • expected_conditions(EC) 判断元素的操作
  • OpenCVSharp直方图和傅里叶变换介绍
  • 2024.9.15 Python模式识别新国大EE5907,总结PCA,LDA,Clustering,GMMboosting,SVM
  • istio中serviceentry结合egressgateway的使用
  • 求和(2)
  • C# 禁止程序重复启动
  • 科技创新驱动未来发展
  • Qt 内嵌 Python 解释器动态调试
  • canvas和svg的区别是什么?它们的应用场景是什么?
  • github域名与IP变更导致无法推送分支问题的解决