你问我答,工作手到擒来(阿里面试专题)2021-03-13

你问我答,工作手到擒来(阿里面试专题)

1、一行代码实现1–100之和

  利用sum()函数求和

2、如何在一个函数内部修改全局变量

  利用global在函数声明 修改全局变量

3、数据表student有id,name,score,city字段,其中name中的名字可有重复,需要消除重复行,请写sql语句

  select distinct name from student

4、字典如何删除键和合并两个字典

 del和update方法

5、python内建数据类型有哪些

整型--int
布尔型--bool
字符串--str
列表--list
元组--tuple
字典--dict

6、列出5个python标准库

 os:提供了不少与操作系统相关联的函数
 sys: 通常用于命令行参数
 re: 正则匹配
 math: 数学运算
 datetime:处理日期时间

7、数据库优化查询方法

外键、索引、联合查询、选择特定字段等等

8、请列出你会的任意一种统计图(条形图、折线图等)绘制的开源库,第三方也行

pyecharts、matplotlib

9、10个Linux常用命令

ls pwd cd touch rm mkdir tree cp mv cat more grep echo

10、python2和python3区别?列举5个

 1、Python3 使用 print 必须要以小括号包裹打印内容,比如
  print('hi') Python2 既可以使用带小括号的方式,也可以使用
  一个空格来分隔打印内容,  比 如 print 'hi'             
 2、python2 range(1,10)返回列表,python3中返回迭代器,节
 约内存
 3、python2中使用ascii编码,python中使用utf-8编码
 4、python2中unicode表示字符串序列,str表示字节序列
  python3中str表示字符串序列,byte表示字节序列
 5、python2中为正常显示中文,引入coding声明,python3中不需 
  要
 6、python2中是raw_input()函数,python3中是input()函数

11、简述Django的orm

ORM,全拼Object-Relation Mapping,意为对象-关系映射
实现了数据模型与数据库的解耦,通过简单的配置就可以轻松
更换数据库, 而不需要修改代码只需要面向对象编程,orm操作
本质上会根据对接的数据库引擎,翻译成对应的sql语句,所有使
用Django开发的项目无需关心程序底层使用的是MySQL、Oracle、
sqlite....,如果数据库迁移,只需要更换Django的数据库引擎即可

你问我答,工作手到擒来(阿里面试专题)2021-03-13_第1张图片

12、简述面向对象中__new__和__init__区别

__init__是初始化方法,创建对象后,就立刻被默认调用了,可接收参
数,如图

你问我答,工作手到擒来(阿里面试专题)2021-03-13_第2张图片
1、__new__至少要有一个参数cls,代表当前类,此参数在实例化时由Python解释器自动识别

2、__new__必须要有返回值,返回实例化出来的实例,这点在自己实现__new__时要特别注意,可以return父类(通过super(当前类名, cls))__new__出来的实例,或者直接是object的__new__出来的实例

3、__init__有一个参数self,就是这个__new__返回的实例,__init__在__new__的基础上可以完成一些其它初始化的动作,__init__不需要返回值

4、如果__new__创建的是当前类的实例,会自动调用__init__函数,通过return语句里面调用的__new__函数的第一个参数是cls来保证是当前类实例,如果是其他类的类名,;那么实际创建返回的就是其他类的实例,其实就不会调用当前类的__init__函数,也不会调用其他类的__init__函数。

你问我答,工作手到擒来(阿里面试专题)2021-03-13_第3张图片

13、[[1,2],[3,4],[5,6]]一行代码展开该列表,得出[1,2,3,4,5,6]

列表推导式的骚操作
运行过程:for i in a ,每个i是【1,2】,【3,4】,【5,6】,for j in i,
每个j就是1,2,3,4,5,6,合并后就是结果

你问我答,工作手到擒来(阿里面试专题)2021-03-13_第4张图片
还有更骚的方法,将列表转成numpy矩阵,通过numpy的flatten()方法,代码永远是只有更骚,没有最骚

你问我答,工作手到擒来(阿里面试专题)2021-03-13_第5张图片

14、有两个序列a,b,大小都为n,序列元素的值任意整形数

无序;要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素
的和]之间的差最小。将两序列合并为一个序列,并排序,为序列Source
拿出最大元素Big,次大的元素Small
在余下的序列S[:-2]进行平分,得到序列max,min
将Small加到max序列,将Big加大min序列,重新计算新序列和,和大的
为max,小的为min。Python代码

你问我答,工作手到擒来(阿里面试专题)2021-03-13_第6张图片
输出结果:
你问我答,工作手到擒来(阿里面试专题)2021-03-13_第7张图片

结语
以上就是Python面试中一些常见的问题及其答案,我们在下篇会接着分享更多问题,欢迎关注。

你可能感兴趣的:(python,python)