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

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

1.Python函数如下,则输出结果为:(A)

def chanageList(nums):
    nums.append('c')
    print("nums", nums)
str1 = ['a', 'b'] 
chanageList(str1)
print("str1", str1)

A.nums ['a', 'b', 'c'],str1 ['a', 'b', 'c']


B.nums ['a', 'b', 'c'],str1 ['a', 'b']


C.nums ['a', 'b'],str1 ['a', 'b']


D.nums ['a', 'b'],str1 ['a', 'b','c']


解析:


      在调用chanageList()函数时,str1 作为参数传入该函数后执行 append()函数添加字符 ‘c’,虽然传递给变量nums但其表示的就是str1,因此A正确。


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

def w1():
  print('正在装饰')
  def inner():
  print('正在验证权限')
  return inner()
w1()

A.正在装饰 正在验证权限  


B.正在装饰


C.正在验证权限


D.运行错误


解析:


      w1()首先执行内部自身打印输出打印“正在装饰”,然后w1()调用inner(),执行inner()内部打印输出打印“正在验证权限”;最终分别打印正在装饰和正在验证权限。


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

a = [1]
b = 2
c = 1
def fn(lis,obj):
  lis.append(b)
  obj = obj + 1
  return lis,obj
fn(a,c)
print(fn(a,c))

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


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


C.([1, 2], 2)


D.([1, 2], 3)


解析:


      当参数为可变对象时,传参采用的是引用传递,修改形参将对实参造成影响;当参数为不可变对象时,传参采用的是值传递,修改形参对实参无影响,实参a为可变对象,实参c为不可变对象,故选项A正确。


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

def outer(fn):
  print('outer')
  def inner():
  print('inner')
  return fn
  return inner
@outer
def fun():
  print('fun')

A.outer  


B.inner  


C.fun  


D.无输出


解析:


      装饰器的一个关键特性是,它在被装饰函数定义后被立即执行,因此运行装饰函数outer,输出结果为outer,内部函数inner没有调用,不会输出任何结果,被装饰函数同样也不会运行,故A选项正确。


5.如下程序的运行结果为:(A)

def func(s, i, j):
  if i < j:
  func(s, i + 1, j - 1)
  s[i],s[j] = s[j], s[i]
def main():
  a = [10, 6, 23, -90, 0, 3]
  func(a, 0, len(a)-1)
  for i in range(6):
  print(a[i],end = ' ') 
main()

A.3 0 ‐90 23 6 10


B.3 0 ‐60 23 6 10


C.6 10 3 0 ‐90 23


D.6 10 3 0 -23 23


解析:


      首先调用main() 函数内,已经定义了一个列表 a ,传入到func函数内,第一次传入的参数中  i,j 分别代表列表的首位、末尾值。即i = 0 ,j = 5  此时满足  i<j ,则此时调用 满足的条件 ,又调用func ,此时传入的参数为 a、1,4 。这时需要执行函数,而不能往下执行,即暂不可执行第一次的 交换元素 s[0],s[5] = s[5],s[0];执行内部函数 func(a,1,4)  则也满足 1<4  此时还需要再调用 func(a,2,3) .暂不执行 s[1],s[4]] =  s[4],s[1];再执行内部函数 func(a,2,3) ,还是满足2<3 此时还需要再调用 func(a,3,2) .暂不执行 s[2],s[3]] =  s[3],s[2];再执行内部函数func(a,3,2),此时不满足 3<2 . 即不执行任何内容。此时内部循环函数全部结束。再往上推;上一步内部函数执行完后,则执行交换s[2],s[3]] =  s[3],s[2]. 再往上推;s[1],s[4]] =  s[4],s[1],再往上推;s[0],s[5] = s[5],s[0] 。即全部func结果结束。即交换了各个位置的元素。第一个变成最后一个、第二个变成倒数第二个、第三个变成倒数第三个。原来的 a = [10,6,23,-90,0,3],交换后的 a = [3,0,-90,23,6,10],for循环打印出a列表元素,故选项A正确。


相关文章
|
Java Nacos
SpringBoot 整合 Nacos
上一篇笔者已经介绍怎么安装 Nacos 了,这篇就开始重头戏。 搭建SpringBoot项目。
2685 1
|
开发工具 git 测试技术
Feature Toggle 实践总结
Feature Toggle 实践总结
14120 0
|
12月前
|
运维 Kubernetes Serverless
直降算力成本!阿里云容器计算服务ACS正式商业化
阿里云容器计算服务ACS正式商业化,综合算力成本最高可降55%。容器计算服务ACS可实现算力资源的极限扩容,易用性也大幅提升50%,将有力承载未来暴涨的容器算力需求,推动用云范式更新升级。
270 9
|
安全 PHP 缓存
网站漏洞修复之Discuz X3.4远程代码执行漏洞
近期在对discuz x3.4进行全面的网站渗透测试的时候,发现discuz多国语言版存在远程代码执行漏洞,该漏洞可导致论坛被直接上传webshell,直接远程获取管理员权限,linux服务器可以直接执行系统命令,危害性较大,关于该discuz漏洞的详情,我们来详细的分析看下。
5480 0
|
数据库
Bartender基本操作
本教程使用的是Bartender10,其他版本的Bartender使用上差不多。
|
传感器 SQL 存储
为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
近日,阿里云宣布高性能时间序列数据库 (High-Performance Time Series Database , 简称 HiTSDB) 正式商业化。
5650 76
|
安全 NoSQL Ubuntu
CVE-2021-4034 Pkexec LPE漏洞复现与原理分析
国外Qualys安全团队在CVE平台披露了Linux系统Polkit中的pkexec组件存在的本地权限提升漏洞(CVE-2021-4034)。Polkit默认安装在各个主要的 Linux 发行版本上(诸如Ubuntu、Debian、Fedora等知名Linux发型版本),pkexec程序对传入参数未过滤,攻击者可以将环境变量bash作为命令执行,从而诱导 pkexec 执行任意代码,利用成功可导致非特权用户获得管理员root权限。
1349 1
CVE-2021-4034 Pkexec LPE漏洞复现与原理分析
|
机器学习/深度学习 存储 JSON
6款Python可视化工具,总有一款适合你!
6款Python可视化工具,各有所长,适用于不同的场景,但是,它们都有一个共同点:强大且好用!下面就开始正文吧!
6款Python可视化工具,总有一款适合你!
|
分布式计算 数据可视化 搜索推荐
阿里云ACA该怎么考才是最好的选择?
阿里云ACA认证是阿里云大数据助理工程师认证,主要面向使用阿里云大数据产品的专业技术认证,是对学员掌握阿里云大数据产品技术技能水平的全面检验和能力认证。
714 0
阿里云ACA该怎么考才是最好的选择?