牛客刷题(只记录错题难题!!)

1.以下程序输出为:

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

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

先调用w1()函数,执行print('正在装饰')

再定义inner()函数,返回时再调用inner()函数,和使用语句print('正在验证权限')打印

2. 有如下函数定义,执行结果正确的是?

def dec(f):n = 3def wrapper(*args,**kw):return f(*args,**kw) * nreturn wrapper@dec
def foo(n):return n * 2

A.foo(2)==12                        B.foo(3)==12

C.foo(2)==6                         B.foo(3)==6

装饰器语法,使得在不改变调用方式的情况下改变函数功能

不过不是很明白具体为什么不直接修改原函数功能

链接:装饰器

3.以下程序输出为:

# -*- coding:utf-8 -*-
def test(a, b, *args):print(a)print(b)print(args)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)

这题可以看出,对于使用*作为形参,会将后面的元素变成元组,所以args是元组

4.在Python3中,有关字符串的运算结果为:

strs = 'I like python and java'
one = strs.find('n')
print(one)
two = strs.rfind('n')
print(two)

 C.12,15

find ()从前往后,第一个目标字符下标

rfind()从前往后,最后一个目标下标

5.已知print_func.py的代码如下:

print('Hello
World!')
print('__name__
value: ', __name__)def main():print('This message is from main function')if __name__ ==
'__main__':main()

print_module.py的代码如下:

import print_func
print("Done!")

运行print_module.py程序,结果是:

A. Hello World! __name__ value: print_func Done!

因为__name__只显示所在文件的文件名,如果所在文件文件名与程序名称相同则表现为__main__

6.执行下列程序,输出结果为()

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

C.报错

当函数的的形参单独为*时,它并不属于未匹配的位置参数,而是表示后面的参数必须使用关键字参数进行匹配,所以这里会抛出异常。

所以正确的调用方式应当是fun(1,b=3)

输出为3

7.在Python3中,下列程序运行结果为:

dicts = {}
dicts[(1, 2)] = ({3, (4, 5)})
print(dicts)

B.{(1, 2): {(4, 5), 3}}

首先字典的键为一个元组(1,2)这个没有问题

然后右边就是值,为一个集合!!!会自动根据hash值由大到小排序

所以右边的集合表现为{(4,5),3}

8.假设可以不考虑计算机运行资源(如内存)的限制,以下 python3 代码的预期运行结果是:()

import math
def sieve(size):sieve= [True] * sizesieve[0] = Falsesieve[1] = Falsefor i in range(2, int(math.sqrt(size)) + 1):k= i * 2while k < size:sieve[k] = Falsek += ireturn sum(1 for x in sieve if x)
print(sieve(10000000000))

我投降,我怎么知道有多少个555

numba加速

9.执行下列选项中的程序,输出结果为False的是()

A.

t1 = (1,2,3)t2 = t1[:]print(t1 is t2)

B.

lis1 = [1,2,3]lis2 = lis1[:]print(id(lis1)==id(lis2))

C.

s1 = '123's2 = '123'print(s1 is s2)

D.

a = 123b = 123print(id(a) == id(b))

元组进行复制不会创建新的副本

列表进行复制会创建新的副本

10.根据以下程序,下列选项中,说法正确的是()

class Foo():def __init__(self):passdef __getitem__(self,pos):return range(0,30,10)[pos]foo = Foo()

A.foo对象表现得像个序列

B.foo对象表现得像个序列

C.可以使用for i in foo:print(i)来遍历foo的元素

D. 可以使用for i in foo:print(i)来遍历foo的元素

解析:

若要表现像个序列,必须满足序列的两个方法:__len__和__getitem__,由于Foo类中没有实现__len__,因此不满足序列协议,foo对象不像序列,A错误;

foo对象没有定义__len__方法,不能使用它来查看对象个数,B错误;

对对象的迭代需要调用__iter__,如果没有定义该方法,python会调用__getitem__(),让迭代和in运算符可用,因此foo是可迭代的,C正确;

根据索引访问对象元素,会调用__getitem__(),因此D错误。

11.根据以下代码,下列选项中,说法正确的是()

class Rectangle:__count = 0def __init__(self,width,height):Rectangle.__count += 1self.__width = widthself.__height = height@propertydef area(self):return self.__height * self.__widthrectangle = Rectangle(200,100)

A.创建实例对象rectangle后,可在类外使用rectangle.area()来访问area属性

B.area属性为对象的非私有属性,可以访问和修改

C.变量__count的作用是为了统计创建对象的个数

D.因为__width和__height为私有变量,所以在类外不可能访问__width和__height属性

解析:

使用@property将方法转为属性,该属性为只读属性,只可访问但是不可以修改,使用对象.方法名来访问该属性,但是方法不能再加小括号,故AB选项说法均错误;

12.在Python3中,程序运行结果为:

lists = [1, 1, 2, 3, 4, 5, 6]
lists.remove(1)
lists.extend([7,8,9])
print(lists)

 C.[1,2,3,4,5,6,7,8,9]

remove()函数用于移除列表中某个值的第一个匹配项。

extend函数是将新列表值依次添加到老列表末尾

13.在Python3中,下列答案正确的是:

lists = [1, 2, 2, 3, 4, 5]
print(lists.index(2))

A.1

解析:

在Python3中,list.index(obj)表示从列表中找出某个值第一个匹配项的索引位置,且列表的索引是从 0 开始的,所以返回 2 所在的第一个索引为 1

第二周python牛客练习题相关推荐

  1. Python 牛客网编程题输入用例问题

    Python 牛客网编程题的输入用例 前言 切入正题 输入字符串 输入整数 输入列表 后记 前言 在牛客网刷题的时候,发现明明在python本地编译器能够轻松解决的输入用例问题,到牛客网在线编译就得好 ...

  2. (Python) 牛客 在线编程 python入门

    文章目录 前言 AC代码 01 输入输出 NP1 Hello World! NP2 多行输出 NP3 读入字符串 NP4 读入整数数字 NP5 格式化输出(一) NP6 牛牛的小数输出 02 类型转换 ...

  3. python牛客网编程题_【面经】小米软件开发一面(python)面经 2020 2020

    作者:JessyTsui https://www.nowcoder.com/discuss/580721?type=2&order=0&pos=15&page=1&ch ...

  4. python牛客网编程题_一波优秀的自学编程语言网站

    网课已经开设两三个月了 同学们上网课的效果怎么样呢? 特别是学编程的同学 没有了学校的学习氛围 没有了老师面对面教学指导 你是否为了编程而焦头烂额,生无可恋呢? 没事,现在同学们的福利来啦! 下面是给 ...

  5. 【python牛客刷题】——深度学习第一弹

    !!!个人主页:个人主页 !!!推荐一款模拟面试.刷题神器,从基础到大厂面试题:点击此处进入牛客网注册学习吧 !!!今日的努力,明日的未来 [解析]防止过拟合的几种方法:引入正则化.Dropout.提 ...

  6. PYTHON 牛客刷题记录

    文章目录 一.牛客-简单类 1.HJ81 字符串字符匹配--SET使用 2.二维数组操作--map(),split()使用 3.HJ8 合并表记录--sorted().字典输出 4.HJ80 整型数组 ...

  7. 手把手带你学python—牛客网python 机器学习 信息熵的计算

    牛客是一款不论是面试 还是刷题 都是非常有用的 还等什么,传送门- 牛客网python基础

  8. 手把手带你学python—牛客网python基础 pandas读取文件查看用户数据集的大小

    牛客是一款不论是面试 还是刷题 都是非常有用的 还等什么,传送门- 牛客网python基础

  9. 第二周python作业——字符串、字典、列表

    第二周作业 字符串 基础 进阶 字典 列表 1. 基础题 2. 进阶题 3. 列表推导式 第二周作业 选择题 填空题 编程题 字符串 基础 输入一个字符串,打印所有奇数位上的字符(下标是1,3,5,7 ...

最新文章

  1. mysql时间段以后_mysql时间段查询
  2. 它是那么的渺小freeeim
  3. 准备用于AI人脸识别的数据集
  4. cvSaveImage用法
  5. 围棋人机大战属于计算机在什么方面的应用,《信息技术基础》第一章复习题库...
  6. 《剑指offer》面试题31——连续子数组的最大和
  7. 语言中出现蘌ress_语言障碍、语言异常及语言发育迟缓的异同
  8. 计算机分子模拟聚乙烯,聚乙烯结晶及拉伸过程的分子动力学模拟
  9. python + selenium + chrome 凡人修仙小说爬取
  10. Grunt 入门教程一:开始使用Grunt(翻译自官方教程)
  11. Pytorch内存泄漏Memory Leak
  12. 大学常用计算机软件推荐+安装教程
  13. matlab r2020b百度网盘下载链接及安装过程
  14. 【数据结构与算法学习笔记005】多传感器信息融合
  15. php面试自我介绍结束语,面试自我介绍的结束语
  16. 【有利可图网】PS实战教程35:用PS快速抠透明的水花
  17. edge浏览器怎么设置activex_微软Edge浏览器将不再支持ActiveX等老技术
  18. Windows PowerShell清除历史命令执行记录
  19. Java项目合集—整整20套精品项目(附源码)
  20. 任正非竟然要炸掉华为「研发金字塔」,到底怎么回事?

热门文章

  1. Linux下载hfs文件,linux读写mac HFS+
  2. 使用Fiddler实现网络限速,模拟低速网络
  3. 《打破思维的墙》读后感
  4. 【Linux-操作系统】
  5. Java中如何实现一个函数返回多个值
  6. GDB多线程调试(调试命令+调试演示)
  7. .net 前台调用后台方法
  8. Linux系统shell脚本之打印系统的IP信息
  9. WIN10家庭版安装Hvper-V
  10. 公安专业知识--哔哩桐老师