终于复习完了基础理论,现在进入python阶段。其实python如果你已经学习过了,那么此处复习的就应该是那些经常忘记,比较难写的函数库名和面试题等。
注意,一旦你简历中写了精通python,那么面试官不可能问你简单的常见的,比如列表的增删改查这种。问,就一定问一些比较偏门冷门的,所以这里进行列举:
我敢打赌你不百度的情况下,答不对全部!
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 当前时区的名称
%% %号本身
def gen_unit_test(self, test_name, function):
setattr(self, 'test_{}'.format(test_name), function)
x = subprocess.check_output('adb shell cat /system/build.prop | grep "product"',shell=True)
print x.split('\r\n')
pickle.dump() 存
pickle.load() 取
符号:
| 是或的意思
. 是充当任意一个字符
^ 是字符串的开始
$ 是字符串的结尾
* 表达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()
守护线程:子线程名称.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()
exec """ 代码组"""
exec ".py" 可以运行python文件对象" 因为运行一次之后光标就在文件最后一行,需要f.seek(0) 光标调回到最初,才能再次运行
many_code = compile("""
for i in rang(10):
print "hello"
""","","exec")
exec many_code
if (123)==int:
if isinstance(123,int):
关于装饰器: 如果下面有类的话,第一层接收的是方法本身,第二次自动接收类,返回需要返回 方法本身(类)
def log(func):
print func.__name__,"1"
def ww(a):
print a
return func(a)
return ww
@log
def test_zzz(self):
print "haha"
好了,本节结束!