• 牛客网专项练习30天Pytnon篇第24天


    1.以下程序输出为:(A) 

    1. def test(a,b,*args):
    2. print(a)
    3. print(b)
    4. print(args)
    5. test(11,22,33,44,55,66,77,88,99)

    A.11 22 (33, 44, 55, 66, 77, 88, 99)

    B.编译错误

    C.运行错误

    D.11 22 (11,22,33, 44, 55, 66, 77, 88, 99)

    解析:

           def test(a,b,*args),a,b位置参数;*args为不定长位置参数,传入的参数被放入一个元祖里。所以,a,b分别被赋值11、22,而其他的数被存到一个元组里。


    2.有如下函数定义,执行结果正确的是:(A)

    1. def dec(f):
    2. n=3
    3. def wrapper(*args,**kw):
    4. return f(*args,**kw)*n
    5. return wrapper
    6. @dec
    7. def foo(n):
    8. return n * 2

    A.foo(2) == 12 

    B.foo(3) == 12 

    C.foo(2) == 6 

    D.foo(3) == 6

    解析:

           调用函数foo(2)执行的过程:2*2*3=12;调用foo(2),执行wrapper(),wrapper()函数调用foo()函数,foo函数的返回值是2*2=4,回到wrapper函数4*3=12,返回值为12;把wrapper函数里面return f(*args,**kw) * n ,拆为两步走(先res=f(*args,**kw) * n 再return res)。


    3.执行下列程序,输出结果为:(C

    1. def fun(a,*,b):
    2.     print(b)
    3. fun(1,2,3,4)

    A.[2,3,4] 

    B.[3,4] 

    C.报错 

    D.4

    解析:

           当函数的的形参单独为*时,它并不属于未匹配的位置参数,而是表示后面的参数必须使用关键字参数进行匹配,所以这里会抛出异常。参数的顺序应该是(位置参数,默认参数,位置不定长参数,关键字不定长参数);如果你希望强迫调用者使用某些参数,且必须以关键字参数的形式传参,那么你只需要在所需位置的前一个位置放置一个*。 def f1(a, *, b, c): return a + b + c 对于上面这个函数而言,调用时参数a可以任意值, 但b,c参数一定要以关键字参数的形式传参,如fun(1, b=4, c=5),否则将会报错。


    4.下面这段程序的功能是什么:( A )

    1. def f(a, b):
    2. if b == 0:
    3. return a
    4. else:
    5. return f(b, a%b)
    6. a,b = map(int,input("Enter two natural numbers:" ).split())
    7. print(f(a, b))

    A.求ab最大公约数 

    B.求ab最小公倍数 

    C.求a%b 

    D.求a/b

    解析:    

           a%b是求余数 碾转相除法,又称欧几里得函数,以除数和余数反复做除法运算,当余数为0时,取当前算式除数为最大公约数。假设a = 27, b = 18 即 f(a, b)=f(27, 18); if不成立,进else; f(b, a%b)=f(18, 27%18)即f(18, 9); 没有达到退出的条件,再调f(18, 9); f(b, a%b) = f(9, 18%9)即f(9, 0); b=0,if成立,输出a=9 即只有在a%b=0的时候,条件才成立,输出a。


    5.python变量的查找顺序为:(A

    A.局部作用域>外部嵌套作用域>全局作用域>内置模块作用域

    B.外部嵌套作用域>局部作用域>全局作用域>内置模块作用域

    C.内置模块作用域>局部作用域>外部嵌套作用域>全局作用域

    D.内置模块作用域>外部嵌套作用域>局部作用域>全局作用域

    解析:

           局部作用域,也就是我们在函数中定义的变量;嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的;全局变量,就是模块级别定义的变量;系统内置模块里面的变量,比如int, bytearray等。


    b9346dd4f0b74c228948cc89b4d96fed.jpeg

     

     

  • 相关阅读:
    【高效开发工具系列】Fork版本管理
    【 Javascript 】Object.assign( )
    『SpringBoot 源码分析』run() 方法执行流程:(2)刷新应用上下文-准备阶段
    解决出现的java: 无法访问org.springframework.boot.SpringApplication问题~
    Lintcode 3656 · Design Snake Game (贪吃蛇,设计题)
    WPF的路由事件
    Hive安装配置 - 本地模式
    HTML练习元宵节案例
    怎么用一个二维码展示多个内容?二维码汇总一个的方法
    【LeetCode】899.有序队列
  • 原文地址:https://blog.csdn.net/u013157570/article/details/127135353