首页 > 编程语言 >Python NameError: name 'is_flag' is not defined

Python NameError: name 'is_flag' is not defined

时间:2022-12-20 23:00:17浏览次数:31  
标签:aa Python else NameError flag str print True

NameError: name 'is_flag' is not defined

翻译:名字错误:名字‘is_flag’ 没有定义

意思是,你的 is_line 变量没有定义。你可能会说,我定义了呀。

那就看下面代码(下面代码主要关注 is_flag ,其他问题忽略)

def test():
    ## 定义全局变量
    global is_flag
    
    str = "aa"
    if str == "aa":
        print("aa")
        is_flag = True
    else:
        print("bb")
        
    print(is_flag)

 -

​    上面的代码意思,如果 str 里是 aa 那么,is_flag 就是 True,最后一行 print(is_flag) 也能正常打印出 True 也不会报错。

​    假设,str = "bb" 呢? 就会去执行 else 里代码,到最后一行 print(is_flag) 就不能正常打印,因为此时 is_flag 没有赋值,就会报开头的错错。

​    其实,写代码的时候就时想用 is_flag 先做个标记,但是忘了有可能走 else 分支,所以会出现这个 BUG 。



下面是正确的代码:

def test():
    ## 定义全局变量
    global is_flag
    
    str = "aa"
    if str == "aa":
        print("aa")
        is_flag = True
    else:
        print("bb")
        is_flag = False		## 加入这行就不会报错了。
        
    print(is_flag)

   或者开始的时候就在 global 下给 is_flag 赋初值,  is_flag = True

 

标签:aa,Python,else,NameError,flag,str,print,True
From: https://www.cnblogs.com/wutou/p/16995304.html

相关文章

  • python调用C++中的函数【最简明教程】
    python调用C++中的函数【最简明教程】操作环境:Linux,Ubuntu18.04注意,python将调用的C++函数cpp文件里面不应该有main函数,可以将原先的main函数换一个名字,在python中调......
  • python + selenium实现gitlab全文搜索
    一般来说软件开发相关企业都会有自己内部的源代码管理工具,比如私有部署的gitlab服务器。特别是企业上规模之后会有多个产品线,各个业务产品线各自的项目解决方案会非常多。......
  • Python unittest数据处理ddt
    1.装饰器#装饰器的官方定义:装饰器本质上是一个Python函数(其实就是闭包),它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象......
  • python 输入五位数,显示个十百千万
    a=0b=0c=0d=0e=0s=int(input("请输入一个五位数的整数:"))ifs<10000ors>99999:print("输入错误")else:a=int(s/10000)b=int(s/1000%10)......
  • Python全栈工程师之从网页搭建入门到Flask全栈项目实战(7) - 在线问答系统
    1.项目源码/业务逻辑百度网盘链接:链接:https://pan.baidu.com/s/13VNfrSJE6vcL3HP1J5T8ew 提取码:00s0,项目业务逻辑自行阅读 2.项目搭建......
  • 一行 Python 代码能实现什么丧心病狂的功能?
    OverridetheentrypointofanimageIntroducedinGitLabandGitLabRunner9.4.Readmoreaboutthe extendedconfigurationoptions.Beforeexplainingtheav......
  • python 每年涨幅百分之五的工资,连续二十年
    year=0.05#上涨百分比salary=10000#基础工资i=0whilei<=20:i+=1print(f"{salary+(salary*(i*year))}\n.第{i}年发工资\n",end="")pr......
  • ipython
    安装:pipinstallipython进入ipythonshell:C:\Users\86158>ipythonPython3.10.1(tags/v3.10.1:2cd268a,Dec62021,19:10:37)[MSCv.192964bit(AMD64)]Typ......
  • python网络爬虫——对股票数据并分析
    Python网络爬虫课程设计一:选题的背景根据数据挖掘和数据量化分析方法,知道股票数据的跨度和周期,就可以知道应该选择什么股票了。因此,我们需要通过数据挖掘和数据量化分析......
  • Python-打印九九乘法口诀
    打印九九乘法口诀比较简单,代码如下所示:#-*-coding:utf-8-*-#for循环,其中range(1,10)取1~9之间的整数,不会取到10#range(1,10)相当于数学中的[1,10),取值范围是前闭......