热饭面试复习【python常见面试题 】2/4

简介: 热饭面试复习【python常见面试题 】2/4

前言

终于复习完了基础理论,现在进入python阶段。其实python如果你已经学习过了,那么此处复习的就应该是那些经常忘记,比较难写的函数库名和面试题等。

注意,一旦你简历中写了精通python,那么面试官不可能问你简单的常见的,比如列表的增删改查这种。问,就一定问一些比较偏门冷门的,所以这里进行列举:


常见易忘题:

我敢打赌你不百度的情况下,答不对全部!


1时间格式化输出

datetime.strptime('17/Sep/2012:11:40:00','%d/%b/%Y:%H:%M:%S').strftime('%Y%m%d-%H%M%S')
 %y 两位数的年份表示(00-99)
  %Y 四位数的年份表示(0000-9999)
  %m 月份(01-12)
  %d 月内中的一天(0-31)
  %H 24小时制小时数(0-23)
  %I 12小时制小时数(01-12) 
  %M 分钟数(00-59)
  %S 秒(00-59)
  %a 本地简化星期名称
  %A 本地完整星期名称
  %b 本地简化的月份名称
  %B 本地完整的月份名称
  %c 本地相应的日期表示和时间表示
  %j 年内的一天(001-366)
  %p 本地A.M.或P.M.的等价符
  %U 一年中的星期数(00-53)星期天为星期的开始
  %w 星期(0-6),星期天为星期的开始
  %W 一年中的星期数(00-53)星期一为星期的开始
  %x 本地相应的日期表示
  %X 本地相应的时间表示
  %Z 当前时区的名称
  %% %号本身


2动态给类生成类函数

def gen_unit_test(self, test_name, function):
    setattr(self, 'test_{}'.format(test_name), function)


3获取命令行返回值

x = subprocess.check_output('adb shell cat /system/build.prop | grep "product"',shell=True)
print x.split('\r\n')


4永久存储模块

pickle.dump() 存
pickle.load() 取


5正则

符号:
|    是或的意思
.    是充当任意一个字符
^    是字符串的开始
$    是字符串的结尾
*    表达0次以上
+    表达1次以上
?   表达0,1
{}   表达次数
[]   表达内部任意一个字符
[0-9] 表达0~9 
[^]  表达不包含
+?    ?紧贴前面+是代表非贪婪模式,取得越少越好。
()   把正则表达式分成子组
\d   匹配任何一个单个数字
\D   匹配任何一个非数字
\w   匹配任何数字或字母
\W   匹配任何非数字或字母的字符
\s   任何空白字符  
\S   任何非空白字符
\b   匹配单词边界
\nn 匹配已经保存的子组
\c  逐一匹配特殊字符c ,即取消它的特殊含义,按字面匹配
\A  匹配字符串的起始
\Z  匹配字符串的结束
方法:
match() :从开始找
search():从任意位置找
group() :返回全部对象
groups():返回包含全部子组的元组
findall() :返回一个列表,非重复的
finditer()  :返回迭代器,可重复
split()   :根据正则中的分隔符吧字符串分隔为一个列表,返回此列表,可设置最大分隔次数
sub(正则,新,旧,最大次数)   :把所有符合正则的字符串替换成新的。
subn()     :和sub一样,但是多返回中可包含表示替换次数的数值
例子:
import re
m=re.search('foo','foo')
print m.group()


6线程

守护线程:子线程名称.setDemo(True)
.start()  线程开始执行
.run()   定义线程功能的函数
.join(timeout=None)   程序挂起,直到线程结束;最多阻塞timeout秒
.getName()    返回线程的名字
.setName()     设置线程的名字
.isAlive()     布尔标志,表示这个线程是否还在运行中
.isDaemon()    返回线程的daemon标志
.setDaemon(daemonic)    把线程的daemon标志设为daemonic(一定要在调用start()函数前调用)
例子:
import threading
def music():
    for i in range(100):
        print i
        time.sleep(1)
if __name__ == '__main__':
    t = threading.Thread(target=music)
    t.setDaemon(True)
    t.start()
    time.sleep(3)
    print "all over %s" %ctime()


7运行单独python代码

exec """ 代码组"""
exec ".py"  可以运行python文件对象"   因为运行一次之后光标就在文件最后一行,需要f.seek(0) 光标调回到最初,才能再次运行


8多行代码顺序打包运行

many_code = compile("""
for i in rang(10):
    print "hello"
""","","exec")
exec many_code


9判断属性

if (123)==int:
if isinstance(123,int):


10装饰器

关于装饰器: 如果下面有类的话,第一层接收的是方法本身,第二次自动接收类,返回需要返回 方法本身(类)
def log(func):
    print func.__name__,"1"
    def ww(a):
        print a
        return func(a)
    return ww
@log
def test_zzz(self):
    print "haha"
相关文章
|
机器学习/深度学习 人工智能 Java
Python面试可能会问到的问题,你会几个?
Python面试可能会问到的问题,你会几个?
117 0
|
4月前
|
算法 Java Linux
python中的面试常考知识点
python中的面试常考知识点
|
6月前
|
数据采集 算法 网络协议
最新Python 面试常见问题(1),2024年最新面试官必问的10个问题
最新Python 面试常见问题(1),2024年最新面试官必问的10个问题
最新Python 面试常见问题(1),2024年最新面试官必问的10个问题
|
6月前
|
SQL 分布式计算 算法
10个Python面试常问的问题_python面试中的常问问题(1),2024年最新搜狐面试难吗
10个Python面试常问的问题_python面试中的常问问题(1),2024年最新搜狐面试难吗
|
6月前
|
小程序 程序员 开发者
Python学习心得——小白的成长之路
Python学习心得——小白的成长之路
310 0
|
存储 资源调度 数据挖掘
吐血总结!50道Python面试题集锦
吐血总结!50道Python面试题集锦(附答案)
928 0
热饭面试复习【python常见面试题 】3/4
热饭面试复习【python常见面试题 】3/4
|
安全 Python
热饭面试复习【python常见面试题 】1/4
热饭面试复习【python常见面试题 】1/4
|
IDE 开发工具 Python
学了这么久的Python,这些知识点都掌握了吗?
了解python的起源,python2和python3的区别 1、这里主要简单了解一下python2和python3的区别,比如print打印函数的用法就不一样,在python2里面直接print 'hello world'就可以,但是在python3里面,print变成了一个函数,要使用print("hello world")才可以打印。 2、python3里面对中文的支持比较友好,对字符的编码转换也更方便 3、对除法运算的运算符有调整 4、一些模块命名调整等
学了这么久的Python,这些知识点都掌握了吗?