牛客网最终python笔试题_牛客笔试题之Python

webchat.jpg

这几天做完了牛客网上的Python试题,下面是对一些错题的分析,并总结了一些python中应该注意的知识点。

字符串比较

1.png

解析:

a,b为字符串不可变类型,所以指向相同地址,所以 a is b

is:指地址相同

==: 内容相同

a+b:字符串连接为’123123’

LEGB规则

2.png

解析:

Python一切皆对象,所以在Python中变量名是字符串对象。Python的命名空间是一个字典,字典内保存了变量名称与对象之间的映射关系,因此,查找变量名就是在命名空间字典中查找键-值对。LEGB就是用来规定命名空间查找顺序的规则。LEGB规定了查找一个名称的顺序为:

local–>enclosing function locals–>global–>builtin

Local: 即函数内部命名空间;

Enclosing function locals: 外部嵌套函数的名字空间

module(文档本身):Global(module): 函数定义所在模块(文档)的名字空间

Builtin: Python内置模块的名字空间

3.png

Set

4.png

解析:

集合(set)是一个无序的不重复元素序列。

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

本题中列表转集合,集合没有重复元素。

转义字符

5.png

解析:

python里面%d表数字,%s表示字符串,%%表示一个%;

单引号内嵌套单引号需要转义字符/;单引号内嵌套双引号不需要嵌套;

双引号内嵌套双引号需要转义字符/;双引号内引用单引号不需要转义字符;

类实例关系

6.png

解析:

isinstance(object,classinfo): 用于判断object是否是classinfo的一个实例,或者object是否是classinfo类的子类的一个实例,如果是返回True.

issubclass(class,classinfo): 用于判断class是否是classinfo类的子类,如果是返回True.

new和init的区别

7.png

解析:

init是当实例对象创建完成后被调用的,然后设置对象属性的一些初始值。

new是在实例创建之前被调用的,因为它的任务就是创建实例然后返回该实例,是个静态方法。

new在init之前被调用,new的返回值(实例)将传递给init方法的第一个参数,然后init给这个实例设置一些参数。

字典

8.png

解析:

字典是python中唯一的映射类型,阐述了键与键值之间的对应关系。字典中键必须是唯一的。列表中的项目包括在方括号中。列表是可变的数据类型(可以增加或删除项目)。所以,列表中的项目不能用来作为字典的键。

浅拷贝和深拷贝

9.png

解析见上图中注释

try else finally

10.png

解析:

try的语句出现异常才会执行except后的语句,如果正常,则执行完try后执行else。另外,finally语句不管有无异常都会执行。所以上图中答案为4。

name

11.png

解析:

name定义在一个模块中,当解释器执行这个py文档时,name的值就为main;

当这个模块被引用即被其他模块import时,name的值就是模块名,也就是运行的py文档名。

闭包

12.png

解析:

在函数中可以定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。所以若a=2,b=3,则进程运行值为8。

装饰器

13.png

14.png

解析见上图

大小比较

类似元组、字符串、列表这类格式,在进行两者之间的比较时,先从第一个元素开始比较 ASCII 码值大小,如果相等,则依次向后比较,如果全部相等,则比较数量大小。

ASCII 码值大小:

数字: 0-9: 48-57

字母:A-Z:65-90.

a-z: 97-122

布尔值

所有标准对象均可以用于布尔测试,下列对象的布尔值是False:

• None

• False

• 所有值为零的数:0(整型),(浮点型),0L(长整型),0.0+0.0j(复数)

• “”(空字符串),[ ] (空列表), ()(空元祖),{} (空字典)

语言类型

15.png

语言特性

解释性语言的特性是非独立和效率低。

Python是解释性语言,在此以Python举例。

非独立性: Python代码解释执行结果依赖于IDLE的版本,其中大版本有Python2和Python3之分,Python2最经典的版本为Python2.7,Python3有Python3.4,Python3.6等等。

效率低: 由于Python是解释性语言,动态编译,直到代码执行时,才加以解释,相比于编译型语言,可以生成编译代码,执行效率低。

三元运算符

$max = x > y ? x : y$ Java和 C中正确,

在Python中的三元运算符不是这样的,是$max=x if x>y else y​$

标识符

python标识符可以使用下划线 字母 数字组成,但是数字不允许作为标识符的开头出现。

线程协程

线程由操作系统控制,协程由进程自身控制。

编译及解码Python中字符串编译的过程:gbk=>unicode=>utf16=>url 解码

字符串解码顺序为:url解码=>utf16=>unicode=>gbk

map函数

map() 会根据提供的函数对指定序列做映射。

第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。例如:

1

2

3

4

5

6

7

8

9

10

11>>>def (x) :

return x ** 2

>>>map(square, [1,2,3,4,5])

[1, 4, 9, 16, 25]

>>>map(lambda x: x ** 2, [1, 2, 3, 4, 5])

[1, 4, 9, 16, 25]

>>>map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])

[3, 7, 11, 15, 19]

逻辑运算符

16.png

数据类型

17.png

结束符

C语言中字符串使用‘ ’作为结束符以防止越界,但python中字符串其实是一个固定长度的字符数组,并不需要结束符。

math.floor函数及除法Python3 中math.floor() 函数的返回值应为整型,而Python2 的 math.floor() 函数返回值是浮点型。

Python2 中除法默认向下取整,为整型;Python3 中的除法为正常除法,会保留小数位,为浮点型。

Python 中万物皆为对象,函数也不例外,函数作为对象可以赋值给一个变量、可以作为元素添加到集合对象中、可作为参数值传递给其它函数,还可以当做函数的返回值。

变量Python 是弱类型脚本语言,变量就是变量,没有特定类型,因此不需要声明。

但每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

用 del 语句可以释放已创建的变量(已占用的资源)。

切片slice

Python 中 切片(Slice)功能的理解:L[start : stop [ : step]]

start 默认值是 0;stop 默认值为 L 的长度;step 默认值是 1。

命名方式

18.png

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值