Python 引用全局变量提示:local variable referenced before assignment. 问题解决办法,global使用方法介绍

Python 引用全局变量提示:local variable referenced before assignment. 问题解决办法,global使用方法介绍Python技术篇-引用全局变量提示:localvariablereferencedbeforeassignment.问题解决办法。可能的情况一般有两种:情况一:变量没有被赋值直接引用了。情况二:函数引用全局变量的时候没有声明。就是说函数里想引用全局变量的话,函数前面要告诉函数这个变量是全局的,不然默认就是函数里能使用的局部变量。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

local variable 'a' referenced before assignment
就是说变量a在使用前没有被声明

可能的情况一般有两种:

情况一:变量没有被赋值直接引用了

def hello():
	print(a)   # 没有给a赋值,不知道a是什么

Jetbrains全家桶1年46,售后保障稳定

情况二:函数引用全局变量的时候没有声明

就是说函数里想引用全局变量的话,函数前面要告诉函数这个变量是全局的,不然默认就是函数里能使用的局部变量。

a = 3

def hello():
	global a   # 声明引用的是全局变量
	print(a)

扩展:

实例1:
不使用 global,内部赋值,外部不变,作为局部变量。

money = 1000
def work(m):
    money = 1 + m
    print("内部money的值:" + str(money))

work(200)
print("外部money的值:" + str(money)) 

在这里插入图片描述

实例2:
使用 global,内部赋值,外部改变,作为全部变量。

money = 1000
def work(m):
    money = 1 + m
    print("内部money的值:" + str(money))

work(200)
print("外部money的值:" + str(money)) 

在这里插入图片描述

实例3:
不使用 global,内部可以引用其值。

money = 1000
def work(m):
    money = 1 + m
    print("内部money的值:" + str(money))

work(200)
print("外部money的值:" + str(money)) 

在这里插入图片描述

实例4:
不使用 global,既包含引用,又包含赋值时,就会在函数内部看是否先赋值,如果不是就会报错。

money = 1000
def work(m):
    h = money + m
    print("h的值为:" + str(h))
    # 实例3的基础上额外加个赋值。
    money = h
    print("内部money的值:" + str(money))

work(200)

在这里插入图片描述
喜欢的点个赞❤吧!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/231306.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 遗传算法经典实例_遗传算法优化BP神经网络

    遗传算法经典实例_遗传算法优化BP神经网络下面用手工计算来简单地模拟遗传算法的各个主要执行步骤。      例:求下述二元函数的最大值: (1)个体编码          遗传算法的运算对象是表示个体的符号串,所以必须把变量x1,x2编码为一种      符号串。本题中,用无符号二进制整数来表示。          因x1,x2为0~7之间的整数,所以分别用3位无符号二进制整数来表示,将它      …

  • 联想笔记本电脑键盘亮了屏幕不亮_联想电脑键盘灯亮屏幕黑屏

    联想笔记本电脑键盘亮了屏幕不亮_联想电脑键盘灯亮屏幕黑屏联想笔记本电脑一直是笔记本电脑行业里的大品牌,非常的受人们欢迎。但是它在使用时也会遇到很多问题,例如联想笔记本电脑开机键亮但是黑屏怎么办?联想笔记本电脑键盘失灵怎么办?所以在联想笔记本选购之前需要了解清楚需要故障时怎么解决。一、联想笔记本电脑开机键亮但是黑屏1、若遇到联想笔记本电脑开机键亮但是黑屏的情况,可以拆卸掉笔记本背面的电池,只用电源适配器连接电脑,尝试开机一次,如果开机正常,就是电池接触不…

  • 今天忙着画一个用例图,发现一个好用的工具图片_用例图画法

    今天忙着画一个用例图,发现一个好用的工具图片_用例图画法临时画用例图,Rose给卸载了,去网上查了查还真有在线制作的工具,推荐给大家ProcessOn(https://www.processon.com/)下面是我用它画的一幅用例图。

  • c语言流水灯程序详细讲解,用c语言编写单片机流水灯程序详解[通俗易懂]

    c语言流水灯程序详细讲解,用c语言编写单片机流水灯程序详解[通俗易懂]用C语言编写的单片机流水灯程序一、硬件电路因为电路用单片机控制,所以电路非常简洁。其电路原理图见下图,印制板图如下图所示。?电路的核心部分是AT89C2051单片机,前面提到它有Pl和P3两组I/O口,我们这里只用到Pl口,共8个引脚。图中Cl、R9组成典型的上电复位(即在加电时单片机复位)电路,XTAL、C2、C3与AT89C2051片内振荡电路组成时钟振荡器。值得注意的是,C2、C3的容量不能…

  • mapminmax 用法

    mapminmax 用法mapminmax是MATLAB实现归一化的工具包,默认:(1)将矩阵的每行分别进行归一化;(2)每行的最大值最小值作为每行归一化的xmin和xmax;(3)将数据归一化到[-1,1].若要将数据归一化到0到1之间,即y∈[0,1],使用b=mapminmax(a,0,1);若给与确定的最大值和最小值作为每行的xmin和xmax,使用:b= mapminmax(a,0,1);PS.xmin…

  • linux经常使用命令:打包、复制等[通俗易懂]

    linux经常使用命令:打包、复制等

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号