Python 局部变量和全局变量 - Python零基础入门教程

目录

  • 一.前言
  • 二.Python 局部变量
  • 三.Python 全局变量
  • 四.Python 局部变量和全局变量的区别
  • 五.重点总结
  • 六.猜你喜欢

一.前言

零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门

在 Python 开发中,变量也是有生命周期的,一旦周期结束,程序会自动清理暂用的空间,释放内存,变量分为两者,一种是局部变量,一种是全局变量,两者具体有什么区别呢……

二.Python 局部变量

一般而言在函数内部或者类中声明的变量默认都是局部变量。一旦函数结束,变量的生命周期也会结束,占用的空间会被自动释放。

def func1():# 在函数内部定义的变量默认都是局部变量a = 1print(a)# 函数结束,局部变量a的生命周期结束# 由于a是局部变量,并且a的生命周期已经结束,外部再次调用局部变量a,程序会产生异常,崩溃
print(a)

程序报错:NameError: name ‘a’ is not defined ,原因:函数内部定义的局部变量只能在函数内部使用。

三.Python 全局变量

全局变量和局部变量相反,在函数外部或者类外部声明的变量默认为全局变量。全局变量的生命周期直到程序结束才会结束,比局部变量生命周期更长。

# !usr/bin/env python
# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:python局部变量和全局变量.py
@Time:2021/3/24 00:37
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""a = 2
def func1():print(a)# 函数结束,局部变量的生命周期结束# 全局变量直到程序结束,生命周期才结束func1()
# 输出全局变量a
print(a)'''
输出结果:
2
2'''

四.Python 局部变量和全局变量的区别

1.全局变量的生命周期是直到程序结束,而局部变量生命周期是函数结束;

2.如果需要在函数内部修改全局变量的值,需要在函数内部为该全局变量前面加上 global 关键字, 否则该变量默认为函数内部定义的局部变量,示例代码如下:

# !usr/bin/env python
# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:python局部变量和全局变量.py
@Time:2021/3/24 00:37
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""# 在函数内部定义的变量默认都是局部变量
a = 2
def func1():# global a # 声明 a 是全局变量,在该函数内部对a的操作就是对全局变量a的操作a = 1      # 如果没有上一行代码,默认a就是函数内部的局部变量,函数结束,生命周期结束print(a)# 函数结束,局部变量的生命周期结束func1()
# 输出全局变量a
print(a)'''
输出结果:
1
2'''

是不上觉得很奇怪:为什么最后一个值是 2 ,应该是 1 才对?

因为没有第 17 行代码的话,默认 a 只是函数内部的一个普通局部变量,所以函数内部的 print 函数输出到控制台是 1 ;函数结束,函数内部的局部变量 a 值生命周期结束,执行 fun1 函数之后的 print 函数输出的是全局变量 a 的值 2 .

也就是说函数内部对 a 值得修改并没有成功,只有在函数内部,为全局变量加上关键字 global 声明为全局变量,才能修改成功,取消第 17 行得注释,控制台输出:

1
1

五.重点总结

  • 1.注意局部变量和全局变量的生命周期;
  • 2.如果想在函数内部修改全局变量的值,需要加上关键字 global ;

六.猜你喜欢

  1. Python 简介
  2. Python Pycharm Anacanda 区别
  3. Python2.x 和 Python3.x,如何选择?
  4. Python 配置环境
  5. Python Hello World 入门
  6. Python 代码注释
  7. Python 中文编码
  8. Anaconda 是什么?Anconda 下载安装教程
  9. Pycharm 提示:this license **** has been cancelled
  10. Pycharm 设置开发模板/字体大小/背景颜色
  11. Python 列表 list
  12. Python 元组 tuple
  13. Python 字典 dict

未经允许不得转载:猿说编程 » Python 局部变量和全局变量

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/525439.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

程序员入错行怎么办?

程序员应该选择什么技术领域才能获得最高的回报?本文详细解读了 2018 年最热门的五大领域,对行业现状、薪资概况及具体的技能要求给出了深入的分析,希望给担心“入错行”的你提供些指导。七天国庆黄金周转眼就过,退散的除了出游热…

2018北京大学计算机考研分数线,2018年北京大学考研复试分数线已公布

原标题:2018年北京大学考研复试分数线已公布宏帆教育\宏帆考研专注全国985/211院校考研私人定制辅导,这里是宏帆教育集团北京总部。3月2日,自主划线院校北京大学考研复试分数线公布啦!接下来其他院校陆续复试要求和相关资讯&#…

《运维人员的未来:IT界的“万金油“如何继续闪耀光芒》

文章目录 每日一句正能量前言35岁被称为运维半衰期,究竟为何?如何顺利过渡半衰期运维的职业发展路径后记 每日一句正能量 凡事顺其自然,遇事处于泰然,得意之时淡然,失意之时坦然,艰辛曲折必然,历…

CTF-web文件上传漏洞

文件上传漏洞 文件上传功能 文件上传流程和上传攻击 WebShell——网页木马文件 以php语言创建一句木马: 之间的gok为连接的木马 将其放入phpstudy工具的网站根目录里,即网址为http://10.0.3.23/eval.php 利用菜刀连接木马 打开后,右键添加…

Python type函数和isinstance函数区别 - Python零基础入门教程

目录 一.Python type 函数简介二.Python isinstance 函数简介三.Python type 函数和 isinstance 函数区别四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 Python 变量,也称 Python 数据类型。Python 变量一共六种类型&#x…

物流 计算机管理 好处,ERP系统在物流管理中的作用

物流行业是我国发展最迅猛的行业之一,如今的物流企业也不在是简单的收货送货,对物流的管理已经涉及到仓库管理、销售管理、财务管理、运输管理等方方面面,ERP系统也在物流管理中发挥着越来越重要的作用。一、物流行业的管理特点1、受传统管理…

Python is 和 == 区别 - Python零基础入门教程

目录 一.前言二.Python 运算符 三.Python 运算符 is四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 在 Python 中 is 和都说常用的运算符之一,主要用于检测两个变量是否相等,返回 True 或者 False ,具…

CTF-web基础

WEB应用的基本架构 HTTP协议 HTTP为Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展为万维网协会(World Wid Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果。 HTTP协议(Hyper Text Transfer Protocol,超文本传输协议)用于…

2020计算机语言排行 rust,RedMonk 2020 年 Q3 编程语言排行:Rust 首次进入前 20

目前 RedMonk 对编程语言的排序算法基本思路没有变化,但是具体过程改变了。现在使用 GitHub Archive 作为数据源对 GitHub 数据进行分析;而 Stack Overflow 部分则直接使用其提供的实用工具 data explorer,具体排序算法见官方介绍。下面先来看…

老板怒了,“我们赚钱你们花钱,还总出毛病!”

IT主管就是“救火队长”,干得好是应该,出了问题大家都会找你麻烦。老李最近对这句话深有体会。前几日的夜里12点,睡着的老李被一阵急促的手机铃声惊醒,大事不妙,公司开发的手机应用突然无法访问了。于是急忙赶往公司&a…

Python 可变数据类型和不可变数据类型 - Python零基础入门教程

目录 一.关于内存二.可变数据类型和不可变数据类型 1.可变数据类型和不可变数据类型区别2.不可变数据类型3.可变数据类型 三.重点总结四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 Python 数据类型分别有整数 int / 浮点数 float / 布…

udp计算机dll,Udp_SocketBll.dll

如果您下载的是DLL文件(如果是其他软件请无视下面的信息):1、下载后根据您系统的情况选择X86/X64,X86为32位电脑,X64为64位电脑。 如果您不知道是X86还是X64,可以住个尝试。2、把dll文件拷贝到对应目录C:\Windows\System (Windows…

CTF工具-010editor

打开010editor官网找到linux版本010EditorLinux64Installer.tar.gz点击后,选Open with …方式 下载后点击Install.txt 按要求安装编辑器: 先提取安装包,在提取目录下打开终端,输入 ./010EditorLinuxInstaller即可安装 010editor相…

只讲技术,拒绝空谈!2018 AI开发者大会精彩议程曝光

2018 年 11 月 8-9 日,由中国 IT 社区 CSDN 与硅谷 AI 社区 AICamp 联合出品的 2018 AI 开发者大会(AI NEXTCon)将于北京盛大召开。届时,近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者将齐聚于此,展开全方位技…

Python 浅拷贝和深拷贝 - Python零基础入门教程

目录 一.Python 浅拷贝和深拷贝前言二.Python 普通的变量赋值三.Python 浅拷贝和深拷贝 1.Python 浅拷贝 copy2.Python 深拷贝 deepcopy3.Python 浅拷贝和深拷贝区别 四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.Python 浅拷贝和深…

CTF工具-seccomp-tools

seccomp-tools可以分析程序的seccomp状态,哪些被系统被禁用了安装 安装流程: sudo apt install gcc ruby-dev gem install seccomp-tools 之后便可直接分析程序的seccomp状态

Cloud一分钟 | 谷歌关闭社交平台;亚马逊云服务拿下10亿美元订单,劲敌微软败走麦城...

Hello,everyone:10月11日早,星期四,祝大家工作愉快!一分钟新闻时间:完1.微信群:添加小编微信:tangguoyemeng,备注“进群姓名公司职位”即可,加入【云计算学习…

mino文件服务器删除文件,Spring-minio

Spring-minioMinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小&#…

CTF工具-gdb简介

gdb简介 gdb是 GNU 开发的一个Unix/Linux下强大的程序调试工具。 使用 gdb 进行程序调试之前,gcc编译选项加上 -g 选项来讲调试信息加到可执行文件里 一般来说,GDB主要帮助你完成下面四个方面的功能: 1、启动你的程序,可以按照你…

Python 递归函数 - Python零基础入门教程

目录 一.Python 递归函数案例 1.Python 递归函数案例一2.Python 递归函数案例二3.Python 递归函数案例三 二.Python 递归函数总结三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一个函数在函数体内部调用自己,这样的函数称为…