桐流子 2021-05-22 07:08 采纳率: 0%
浏览 21

python全局/局部变量相关的问题


 
a =2
def test():
    b = 1
    print(a + b)
    a = 4
    print(a + b)

test()
如以上代码所示,
第一行代码运行报错,原因是“UnboundLocalError: local variable 'a' referenced before assignment”

代码执行不是自上而下吗?在我二次赋值a后,运行错误请问是怎么回事呢? 
  • 写回答

2条回答 默认 最新

  • benbenli 2021-05-22 07:38
    关注

    声明 global a 就可以了

    a =2
    def test():
        global a
        b = 1
        print(a + b)
        a = 4
        print(a + b)
    test()
    
    
    # Output
    3
    5
    评论

报告相同问题?

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据