【Python】新手入门:全局变量和局部变量的概念、区别以及用法

【Python】新手入门:全局变量和局部变量的概念、区别以及用法

在这里插入图片描述

🌵文章目录🌵
  • 💡一、全局变量和局部变量的概念
  • 📚二、全局变量和局部变量的区别
  • 🔧三、全局变量和局部变量的用法
  • 💻四、实例演示和代码示例
  • 📚五、作用域与变量生命周期
  • 🚀六、举一反三:如何修改作用域中的变量
  • 📖七、总结与最佳实践
  • 🔥结语

💡一、全局变量和局部变量的概念

在Python编程中,理解全局变量和局部变量的概念是编写高效、可维护代码的关键。全局变量和局部变量在作用域、生命周期以及使用方式上都有着显著的区别。

  • 全局变量

    • 定义在函数外部的变量,它在整个程序中都是可见的。
    • 一旦全局变量被定义,它就可以在整个程序中被访问和修改。
    • 全局变量的作用域是整个程序,它的生命周期也是整个程序的执行期间。
    # 这是一个全局变量
    global_var = 10
    
    def print_global_var():
        print(global_var)  # 在函数内部访问全局变量
    
    print_global_var()  # 输出:10
    
    
  • 局部变量

    • 定义在函数内部的变量,它只在函数执行期间存在。
    • 局部变量只在函数内部可见,并且当函数执行完毕后,它的值会被销毁。
    def define_local_var():
        # 这是一个局部变量
        local_var = 20
        print(local_var)  # 在函数内部访问局部变量
    
    define_local_var()  # 输出:20
    # print(local_var)  # 这会引发错误,因为local_var是局部变量,在函数外部不可见
    
    

📚二、全局变量和局部变量的区别

全局变量和局部变量之间的主要区别体现在作用域、生命周期以及使用方式上。

  1. 作用域:全局变量的作用域是整个程序,而局部变量的作用域仅限于定义它的函数内部。在函数内部,局部变量会覆盖同名的全局变量。

    global_var = 30
    
    def modify_var():
        # 这里定义了一个局部变量,与全局变量同名
        global_var = 40
        print("Inside function:", global_var)  # 输出:Inside function: 40
    
    modify_var()
    print("Outside function:", global_var)  # 输出:Outside function: 30
    
    

    在上面的例子中,虽然函数内部修改了global_var的值,但这只影响到了局部变量global_var,全局变量global_var的值并未改变。

  2. 生命周期:全局变量的生命周期是整个程序的执行期间,而局部变量的生命周期仅限于函数调用的过程中。当函数执行完毕后,局部变量就会被销毁。

  3. 使用方式:由于全局变量在整个程序中都是可见的,因此过度使用全局变量可能会导致代码难以理解和维护。而局部变量则更加局部化,更易于管理和控制。在编写函数时,应尽量使用局部变量来存储临时数据,以减少对全局状态的依赖。

🔧三、全局变量和局部变量的用法

在Python中,我们可以根据需要灵活地使用全局变量和局部变量。但需要注意的是,在函数内部修改全局变量时,需要使用global关键字来声明。

global_var = 50

def modify_global_var():
    global global_var  # 声明要修改的是全局变量
    global_var = 60
    print("Inside function:", global_var)  # 输出:Inside function: 60

modify_global_var()
print("Outside function:", global_var)  # 输出:Outside function: 60

在上面的例子中,我们在函数内部使用global关键字声明了global_var是全局变量,并修改了它的值。这样,在函数外部访问global_var时,就能看到修改后的值。

然而,过度依赖全局变量可能会使代码变得难以理解和维护。因此,在编写函数时,应尽量使用局部变量来存储临时数据,并通过返回值来传递结果。这样可以减少函数之间的耦合度,提高代码的可读性和可维护性。

💻四、实例演示和代码示例

下面是一个简单的例子,演示了全局变量和局部变量的使用场景。

# 定义一个全局变量
total_score = 0

def add_score(score):
    # 定义一个局部变量
    local_score = score
    print(f"Local score: {local_score}")
    
    # 修改全局变量
    global total_score
    total_score += local_score
    print(f"Total score: {total_score}")

# 调用函数,传入分数
add_score(85)  # 输出:Local score: 85, Total score: 85
add_score(90)  # 输出:Local score: 90, Total score: 175

# 在函数外部访问全局变量
print(f"Final total score: {total_score}")  # 输出:Final totalscore: 175

📚五、作用域与变量生命周期

理解作用域和变量的生命周期对于编写健壮且高效的代码至关重要。作用域决定了变量的可见性,即变量在哪里可以被访问。而变量的生命周期则关系到变量的创建和销毁的时机。

全局变量的作用域是整个程序,它们在程序开始执行时创建,并在程序结束时销毁。这意味着全局变量在程序的整个生命周期内都是可用的。然而,这也带来了一个问题:过度使用全局变量可能导致代码难以维护和理解,因为任何函数都可能修改全局变量的值。

局部变量的作用域则仅限于定义它的函数内部。当函数被调用时,局部变量被创建;当函数执行完毕并返回时,局部变量被销毁。这种局部性使得局部变量更加易于管理和控制,因为它们不会影响到程序的其他部分。

🚀六、举一反三:如何修改作用域中的变量

在Python中,修改作用域中的变量需要一些特殊的技巧。对于局部变量,我们只需要直接赋值即可。但对于全局变量,我们需要使用global关键字来声明我们想要修改的是全局变量,而不是创建一个新的局部变量。

global_var = 100

def modify_global():
    global global_var  # 声明我们要修改的是全局变量
    global_var = 200  # 修改全局变量的值

modify_global()
print(global_var)  # 输出:200

在嵌套函数中,我们还需要注意变量的作用域链。内层函数可以访问外层函数的局部变量,但不能直接修改它们。如果需要修改外层函数的变量,通常可以通过返回值或者使用nonlocal关键字来实现。

def outer_function():
    outer_var = 10
    
    def inner_function():
        nonlocal outer_var  # 声明我们要修改的是外层函数的局部变量
        outer_var = 20
        
    inner_function()
    return outer_var

result = outer_function()
print(result)  # 输出:20

📖七、总结与最佳实践

全局变量和局部变量是Python编程中的基础概念,理解它们的作用域、生命周期以及使用方式对于编写高质量的代码至关重要。在使用这些变量时,我们需要遵循一些最佳实践:

  1. 尽量避免使用全局变量:全局变量可能导致代码难以理解和维护。在可能的情况下,应尽量使用局部变量和参数传递数据。
  2. 明确变量的作用域:在编写函数时,应明确变量的作用域,避免在函数内部意外地修改全局变量。
  3. 使用globalnonlocal关键字:当需要在函数内部修改全局变量或外层函数的局部变量时,应使用globalnonlocal关键字来明确声明。
  4. 通过返回值传递结果:函数应尽量通过返回值来传递计算结果,而不是依赖于全局变量的修改。

通过遵循这些最佳实践,我们可以编写出更加健壮、易于维护和理解的Python代码。

🔥结语

全局变量和局部变量是Python编程中不可或缺的概念。通过深入理解它们的作用域、生命周期以及使用方式,我们可以编写出更加高效、可维护的代码。希望本文能够帮助你更好地掌握这两个概念,并在实际编程中灵活运用。如果你有任何疑问或建议,请随时在评论区留言,我们会尽快回复。

🤝 期待与你共同进步

🌱 亲爱的读者,非常感谢你每一次的停留和阅读!你的支持是我们前行的最大动力!🙏

🌐 在这茫茫网海中,有你的关注,我们深感荣幸。你的每一次点赞👍、收藏🌟、评论💬和关注💖,都像是明灯一样照亮我们前行的道路,给予我们无比的鼓舞和力量。🌟

📚 我们会继续努力,为你呈现更多精彩和有深度的内容。同时,我们非常欢迎你在评论区留下你的宝贵意见和建议,让我们共同进步,共同成长!💬

💪 无论你在编程的道路上遇到什么困难,都希望你能坚持下去,因为每一次的挫折都是通往成功的必经之路。我们期待与你一起书写编程的精彩篇章! 🎉

🌈 最后,再次感谢你的厚爱与支持!愿你在编程的道路上越走越远,收获满满的成就和喜悦

关于Python学习指南


如果想要系统学习Python、Python问题咨询,或者考虑做一些工作以外的副业,都可以扫描二维码添加微信,围观朋友圈一起交流学习。

我们还为大家准备了Python资料和副业项目合集,感兴趣的小伙伴快来找我领取一起交流学习哦!

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取保证100%免费

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值