Skip to content

Latest commit

 

History

History
33 lines (22 loc) · 930 Bytes

82 判断下面语句执行是否会报错?.md

File metadata and controls

33 lines (22 loc) · 930 Bytes

Python100

把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~

判断下面语句执行是否会报错?

>>> b = 3
>>> def fun(a):
    print(a)
    print(b)
    b = 7

    
>>> fun(2)

会报错,Python编译函数的定义体时,先做了一个判断,那就是 b 是局部变量,因为在函数中给它赋值了。但是执行 print(b) 时,往上又找不到 b 的局部值,所以会报错。

Python 设计如此,Python 不要求声明变量,但是假定在函数定义体中赋值的变量是局部变量。

2
Traceback (most recent call last):
  File "<pyshell#50>", line 1, in <module>
    fun(2)
  File "<pyshell#49>", line 3, in fun
    print(b)
UnboundLocalError: local variable 'b' referenced before assignment