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

简介: 牛客网专项练习30天Pytnon篇第26天

1.执行以下程序,输出结果为:(A)

def fun(a=(),b=[]):
  a += (1,)
  b.append(1)
  return a,b
fun()
print(fun())

A.((1,), [1, 1])


B.((1,1), [1, 1])


C.((1,), [1])


D.((1,1), [1])


解析:


      Python的默认参数只在函数定义时被赋值一次,而不会每次调用函数时又创建新的引用。这意味着,函数定义完成后,默认参数已经存在固定的内存地址了,如果使用一个可变的默认参数并对其进行改变,那么以后对该函数的调用都会改变这个可变对象,而默认参数如果是不可变对象,不存在该问题,因此正确答案为A选项。


2.对于下列Python代码,描述正确的有:(BD)

foo = [1,2]
foo1 = foo
foo.append(3)

A.foo 值为[1,2]


B.foo 值为[1,2,3]


C.foo1 值为[1,2]


D.foo1 值为[1,2,3]


解析:


      等号后边的值赋给前边,相当于把后边的数据地址赋给了前边,两个值对应了一个地址,其中一个改变,另一个也改变。


3.一个段代码定义如下,下列调用结果正确的是:(A)

def bar(multiple):
    def foo(n):
        return multiple ** n
    return foo

A.bar(2)(3) == 8


B.bar(2)(3) == 6


C.bar(3)(2) == 8


D.bar(3)(2) == 6


解析:


      return一个函数,考察闭包。当程序调用bar(a)时,返回一个foo函数的引用,此时变成foo(b),去执行foo函数里的函数体。执行bar函数,bar(2)  返回内层函数foo  传入私有变量 multiple=2,执行foo函数,bar(2)(3) = foo(3) =2 * 2 *2 = 8。


4.执行下列程序,输出结果为:(A)

def fn():
  t = []
  i = 0
  while i < 2:
  t.append(lambda x: print(i*x,end=","))
  i += 1
  return t
for f in fn():
  print(f(2))

A.4,4,


B.2,2,


C.0,1,


D.0,2,


解析:


      函数fn存在闭包现象,自由变量是i,由于python闭包采用延迟绑定,也就是当调用匿名函数时,循环早已结束,此时i的值为2,所以输出结果都为2*2=4,正确答案为A;这段函数先是通过 in 读取到函数fn(),开始走两遍while循环,i的值变为2,然后开始执行f(2),2是作为x的参数的赋值,这个时候直接开始执行 t.append(lambda x: print(i*x,end=",")),循环两遍,循环的次数还是取决于while的条件,你把i的值调成3的话就是走三次,但是由于i的值始终是2,所以x*i,x=2,i=2,循环两遍,两遍i的值都是2,结果:4,4,。


5.嵌套函数在其外部区域引用一个值时,该嵌套函数就是一个闭包,以下代码输出值为:(D)

def adder(x):
  def wrapper(y):
  return x + y
  return wrapper
adder5 = adder(5)
print(adder5(adder5(6)))

A.10


B.12


C.14


D.16


解析:


      这道题考查的是闭包,外部函数确定x的值为5,内部函数的值为6,所以第一次计算结果为11,第二次计算,还是在x为5的前提下,需要在11的基础上再加5,11+5=16,故选D。


相关文章
|
SQL 搜索推荐 Java
什么是笛卡尔积及其在SQL查询中的应用
什么是笛卡尔积及其在SQL查询中的应用
|
机器学习/深度学习 并行计算 PyTorch
【已解决】RuntimeError: CUDA error: device-side assert triggeredCUDA kernel errors might be asynchronous
【已解决】RuntimeError: CUDA error: device-side assert triggeredCUDA kernel errors might be asynchronous
|
7天前
|
人工智能 运维 安全
|
4天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
569 20
|
12天前
|
人工智能 JavaScript 测试技术
Qwen3-Coder入门教程|10分钟搞定安装配置
Qwen3-Coder 挑战赛简介:无论你是编程小白还是办公达人,都能通过本教程快速上手 Qwen-Code CLI,利用 AI 轻松实现代码编写、文档处理等任务。内容涵盖 API 配置、CLI 安装及多种实用案例,助你提升效率,体验智能编码的乐趣。
928 109
|
5天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。