本篇仅记录今天 (2018.11.8) 面试两家中的部分问题。可能理解和记录会出现偏差,所以以下仅仅是从我的角度去看,去想。

  1. 说下 Python 的变量为什么不需要声明数据类型呢?
  2. 用 Python 写下返回质数的函数
  3. 有了解过 awk 来获取日志中的数据吗
  4. 你之前删除 Redis 中的数据用 Python 代码是怎么实现的。
  5. 写下任意排序的代码
  6. 你认为你是中级,那么在你看来高级是怎么样呢?你离高级又有什么样的差距呢?

第 1 点

这点我当时回答的是:因为这个Obj对象,使用时就会指定对象。

这样回来来看,其实我的思路已经很混乱了,对于这个基础概念没有印象。

以下内容引用为知乎:
Python中是没有变量的概念。只有对象,在使用所谓变量的时候,要先赋值。但是在Python中,不要这么理解。要理解成,使用的时候是两个对象,只是一个对象指向了另一个对象。
示例:a = 3
a是一个对象,3也是一个对象,然后a指向了3对象

第 2 点和第 5 点

一开始听到的时候,心理很懵,没想到要手写代码。

最后表现的很不好,不敢去动手写,没有静下心来去思考,去写代码。哎,可惜了:(

第 3 点

没有用过awk来处理数据...

第 4 点

一开始是问我,你有了解过Redis吗?你都是怎么操作的,然后我说明我之前有使用过Python去操作Redis进行数据删除。面试官进一步问,我实际的思路怎么样的。可是,一个月前的代码了,真心不记得了...尴尬:(

回来我再看代码的时候,发现用的是keys方法和正则,以下是具体代码:

r = redis.Redis(host=host,port=port,decode_responses=True,db=0,password=auth)
# 正则匹配
keys = r.keys(pattern='data_*')
print(type(keys))
print(len(keys))
for i in range(len(keys)):
    print(keys[i])
    # r.delete(keys[i])

Keys 方法的具体代码:

def keys(self, pattern='*'):
   "Returns a list of keys matching ``pattern``"
   return self.execute_command('KEYS', pattern)

第 6 点

关于这个问题,最近面试经常会被问,我回答的比较乱,也没有什么思路。

刚好这个周末,先梳理下自身,总结自身,多看看,多想一想...


↙↙↙阅读原文可查看相关链接,并与作者交流