参考答案和解析
正确答案:正确
更多“外层函数定义了局部变量x,如果内层函数只获取x的值、不修改x的值,则可以不使用nonlocal关键字。() ”相关问题
  • 第1题:

    已知函数F( )、G( )的定义如下所示,执行表达式”x=F(3)”的运算时,若函数调用G(a)是引用调用方式,则执行”x=F(3)”后x的值为( );若函数调用G(a)是值调用方式,则执行”x=F(3)”后x的值为(请作答此空)。

    A.6
    B.7
    C.8
    D.9

    答案:A
    解析:
    传值调用:形参取的是实参的值,形参的改变不会导致调用点所传的实参的值发生改变。引用(传址)调用:形参取的是实参的地址,即相当于实参存储单元的地址引用,因此其值的改变同时就改变了实参的值。本题的第一问:采用的是引用调用方式执行,x=3,a=2,G(a)中y=y*y-1=3,即a这时的值被修改为3,最后a*x=3*3=9 ;本题的第二问:采用的是传值调用方式执行,x=3,a=2;G(a)中y=y*y-1=3,即a这时的值仍然为2,最后a*x=2*3=6;

  • 第2题:

    外层函数中定义的局部变量被内层函数使用,则每调用一次外层函数则会形成一个闭包。


    错误

  • 第3题:

    若变量 x 已正确定义并赋值,以下对表达式(0<x< 10)的值描述正确的是?

    A.无论 x 的值是多少,表达式(0<x< 10)的值总是为 1

    B.如果 x = - 5,则表达式(0<x< 10)的值为 0

    C.如果 x = 15,则表达式(0<x< 10)的值为 0

    D.如果 x = 0,则表达式(0<x< 10)的值为 0


    ++x,y=x--

  • 第4题:

    已知函数F( )、G( )的定义如下所示,执行表达式”x=F(3)”的运算时,若函数调用G(a)是引用调用方式,则执行”x=F(3)”后x的值为(请作答此空);若函数调用G(a)是值调用方式,则执行”x=F(3)”后x的值为( )。

    A.6
    B.7
    C.8
    D.9

    答案:D
    解析:
    传值调用:形参取的是实参的值,形参的改变不会导致调用点所传的实参的值发生改变。引用(传址)调用:形参取的是实参的地址,即相当于实参存储单元的地址引用,因此其值的改变同时就改变了实参的值。本题的第一问:采用的是引用调用方式执行,x=3,a=2,G(a)中y=y*y-1=3,即a这时的值被修改为3,最后a*x=3*3=9 ;本题的第二问:采用的是传值调用方式执行,x=3,a=2;G(a)中y=y*y-1=3,即a这时的值仍然为2,最后a*x=2*3=6;

  • 第5题:

    2、内层函数要使用外层函数定义的变量,必须使用nonlocal关键字。


    nonlocal