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 利用菜刀连接木马 打开后,右键添加…

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

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

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…

只讲技术,拒绝空谈!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云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小&#…

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

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

Cloud一分钟 | 云存储服务商​Egnyte获7500万美元E轮融资,高盛领投

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

为什么阿里飞猪、滴滴、携程都被质疑滥用大数据杀熟?

技术本无罪,用的人多了,自然成为掩盖人性罪恶的根源。支撑「互联网」时代的大数据是如何一步一步沦落成利益的刽子手的?2018 年,「大数据杀熟」一词开始进入大众视野,且在互联网领域掀起了腥风血雨。近日,更…

电脑服务器传文件夹吗,服务器和电脑传文件夹吗

服务器和电脑传文件夹吗 内容精选换一换Model File:模型文件。单击右侧的文件夹图标,在后台服务器sample所在路径(工程目录/run/out/test_data/resnet-18/model)选择需要转化的模型对应的*.prototxt文件,并上传。Weight File:权重文件。请自行从https://…

BugkuCTF-MISC题1和0的故事

基础知识: PIL PIL是Python Imaging Library,它为python解释器提供了图像编辑功能。 PIL.Image.new()方法通过给定的模式和大小创建一个新图像。尺寸以(width,height)-tuple,以像素为单位。对于单波段图像,颜色作为单个值给出,对…

Python time 模块 - Python零基础入门教程

目录 一.前言二.Python time 模块常用函数介绍三.Python time 模块使用 1.Python time 模块获取时间2.Python time 模块自定义时间格式3.Python time 模块查看代码执行时间 四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 Python time 模…

面趣 | 这道微软面试题你会吗?

参加 2018 AI开发者大会,请点击 ↑↑↑问面试题目:两个单词如果包含相同的字母,次序不同,则称为字母易位词(anagram)。例如,“silent”和“listen”是字母易位词,而“apple”和“aplee”不是易位词。请定义…