Python面试宝典之基础篇-04

发布时间:2020-08-19 02:59:03

来源:ITPUB博客

阅读:101

接着更新Python常见的面试题!

题目016:写一个函数,给定矩阵的阶数n,输出一个螺旋式数字矩阵。

例如:n = 2,输出:

例如:n = 3,输出:

这个题目本身并不复杂,下面的代码仅供参考。

def show

_spiral_matrix(n):

matrix = [

[0]

* n for _ in range(n)]

row, col = 0, 0

num, direction = 1, 0

while num <= n ** 2:

if matrix[

row][

col] == 0:

matrix[

row][

col] = num

num += 1

if direction == 0:

if col

<

n

-

1

and

matrix[

row][

col +

1] ==

0:

col +=

1

else:

direction +=

1

elif

direction ==

1:

if

row <

n

-

1

and

matrix[

row +

1][

col] ==

0:

row +=

1

else:

direction +=

1

elif

direction ==

2:

if

col > 0 and matrix[

row][

col - 1] == 0:

col -= 1

else:

direction += 1

else:

if row > 0 and matrix[

row - 1][

col] == 0:

row -= 1

else:

direction += 1

direction %= 4

for x in matrix:

for y in x:

print(y, end='\t')

print()

题目017:阅读下面的代码,写出程序的运行结果。

items

=

[1,

2

,

3

,

4

]

print([i

for

i

in

items

if

i

>

2

])

print([i

for

i

in

items

if

i

%

2

])

print([(x,

y)

for

x,

y

in

zip('abcd',

(1,

2

,

3

,

4

,

5

))])

print({x:

f'item{x

**

2

}'

for

x

in

(2,

4

,

6

)})

print(len({x

for

x

in

'hello world'

if

x

not

in

'abcdefg'

}))

点评:生成式(推导式)属于Python的特色语法之一,几乎是面试必考内容。Python中通过生成式字面量语法,可以创建出列表、集合、字典。

[

3, 4]

[

1, 3]

[

('a', 1), ('b', 2), ('c', 3), ('d', 4)]

{2: 'item4', 4: 'item16', 6: 'item36'}

6

题目018:说出下面代码的运行结果。

class

Parent:

x =

1

class Child1(Parent):

pass

class Child2(Parent):

pass

print(Parent.x, Child1.x, Child2.x)

Child1.x =

2

print(Parent.x, Child1.x, Child2.x)

Parent.x =

3

print(Parent.x, Child1.x, Child2.x)

点评:运行上面的代码首先输出1 1 1,这一点大家应该没有什么疑问。接下来,通过Child1.x = 2给类Child1重新绑定了属性x并赋值为2,所以Child1.x会输出2,而Parent和Child2并不受影响。执行Parent.x = 3会重新给Parent类的x属性赋值为3,由于Child2的x属性继承自Parent,所以Child2.x的值也是3;而之前我们为Child1重新绑定了x属性,那么它的x属性值不会受到Parent.x = 3的影响,还是之前的值2。

1

1

1

1

2

1

3

2

3

题目19:说说你用过Python标准库中的哪些模块。

点评:Python标准库中的模块非常多,建议大家根据自己过往的项目经历来介绍你用过的标准库和三方库,因为这些内容应该是你最为熟悉的,经得起面试官深挖的。

题目20:__init__和__new__方法有什么区别?

Python中调用构造器创建对象属于两阶段构造过程,首先执行__new__方法获得保存对象所需的内存空间,再通过__init__执行对内存空间数据的填充(对象属性的初始化)。__new__方法的返回值是创建好的Python对象(的引用),而__init__方法的第一个参数就是这个对象(的引用),所以在__init__中可以完成对对象的初始化操作。__new__是类方法,它的第一个参数是类,__init__是对象方法,它的第一个参数是对象。

温馨提示:Python面试宝典会持续更新,从基础到项目实战的内容都会慢慢覆盖到。虽然每天只更新5个题目,但是每道题扩散出的信息量还是比较大的,希望对找工作的小伙伴所有帮助。

python语言面试基础_Python面试宝典之基础篇-04相关推荐

  1. python面试秘诀_Python面试宝典之基础篇-01

    题目001: 在Python中如何实现单例模式.点评:这个题目在面试中出现的频率极高,因为它考察的不仅仅是单例模式,更是对Python语言到底掌握到何种程度,建议大家用装饰器和元类这两种方式来实现单例 ...

  2. python语言的语法_Python语言学习系列------基础语法(一)

    本博客系列为自己按照网上视频教学学习python的一个随笔系列文章,也不知道会更新到多少,反正闲开个坑呗. 一.高级语言的分类 高级的编程语言分为解释型语言和编译型语言,两者的区别是主要是:在执行前是 ...

  3. python语言字符串定义_Python语言基础1-字符串

    本文主要向大家介绍了Python语言基础1-字符串,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 数字,字符串,列表,布尔,元组,字典,集合(小知识点) 变量名的命名规则? #1 ...

  4. and true和if都是python语言的保留字_python自学 第三章 python语言基础之保留字、标识符与内置函数...

    一.保留字(关键字) 保留字是 python 语言中一些已经被赋予特定意义的单词,这就要求开发者在开发程序时,不能用这些保留字作为标识符给变量.函数.类.模板以及其他对象命名. Python 保留字一 ...

  5. python语言合法命名的_python语言合法命名_python合法命名

    CSDN提供了精准python语言的合法命名信息,主要包含:python语言的合法命名信等内容,查询最新最全的python 单下划线结尾_:只是为了避免与python关键字的命名冲突 双下划线开头:模 ...

  6. python编程入门免费_python编程入门 零基础学习Python基础(附带最新免费教程)...

    本篇是面向编程零基础学员的Python入门教程,内容涵盖了Python的基础知识和初步应用.以较轻快的风格,向零基础学习者介绍了一门时下比较流行的.并且用途比较广泛的编程语言.同时,其语法简洁而清晰, ...

  7. python入门教材论坛_Python初学者(零基础学习Python、Python入门)书籍、视频、资料、社区推荐...

    PythonShare ============= *Python初学者(零基础学习Python.Python入门)书籍.视频.资料.社区推荐* ------------------------ 本文 ...

  8. python语言诞生时间_Python语言诞生

    Python语言诞生于1990年,由Guido van Rossum设计并领导开发.它是开源项目的优秀代表,其解释器的全部代码都是开源的,可以在Python语言的主网站(https://www.pyt ...

  9. 初识python语言微课_Python语言程序设计(微课版)

    目录 Contents 第1章Python语言基础1 1.1Python语言的特点1 1.2Python应用领域2 1.3Python解释器3 1.4Python开发环境的安装3 1.5编写Pytho ...

最新文章

  1. Ubuntu--开启TELNET服务
  2. Oracle在线重定义
  3. asmx 接受 ajax post,jQuery ajax调用web服务(asmx)触发认证弹出框
  4. flink批处理中的source以及sink介绍
  5. 干货 | 工行分布式数据库选型与大规模容器化实践
  6. phpexcel导出后乱码或者是打不开文件必须修复的问题
  7. 考研笔记-物理层协议
  8. Ubuntu 16.04 Apache https证书安装
  9. Java实现在线打开word文档加盖印章/盖章/签名功能
  10. HTTP请求详细过程
  11. 手机扫码枪app,手机扫码,内容上电脑表格
  12. Axure RP 8的介绍
  13. 干货分享:如何把APP软文推广做到好
  14. 最流行的统计假设检验速查表
  15. 第十二章 项目采购管理第六版
  16. MAC 常用终端命令
  17. 唯冠咬住苹果不管有何功利目的
  18. 转载 冯羽的程序生涯之我见
  19. c语言循环上机题,c语言循环结构上机习题
  20. 在 Metaverse 中拥抱零售业的未来:你需要知道的一切

热门文章

  1. 客户机的系统日期和服务器日期不为,客户端日期和服务器日期不同步
  2. ipad分屏大小怎么调整_怎么用PS给图片添加文字,手把手教你调整字体大小
  3. java线程池的面试题_java线程池 面试题(精简)
  4. 学习笔记:Word 样式操作
  5. 计算机考试的话语,考试祝福语简短4字句祝考试成功的话
  6. 吐血解决磁盘占用率100%
  7. 【遥感图像处理】绘制高光谱3D立方体
  8. 联想ThinkPad E480锁频问题解决
  9. 魔兽争霸3在Windows7中运行可能遇到的问题
  10. 14.3.4 创建主键索引