一、Q:如何用Python来进行查询和替换一个文本字符串?
A:可以使用sub()方法来进行查询和替换,sub方法的格式为: sub(replacement, string[, count=0])
replacement是被替换成的文本
string是需要被替换的文本
count是一个可选参数,指最大被替换的数量,示例:
#
!/usr/bin/env python
#
-*- coding: utf-8 -*-
import
re
p
= re.compile(
'
(blue|white|red)
'
)
print
(p.sub(
'
colour
'
,
'
blue socks and red shoes
'
))
print
(p.sub(
'
colour
'
,
'
blue socks and red shoes
'
, count=1))
二、Q:有没有一个工具可以帮助查找python的bug和进行静态的代码分析?
A:PyChecker是一个python代码的静态分析工具,它可以帮助查找python代码的bug, 会对代码的复杂度和格式提出警告
Pylint是另外一个工具可以进行coding standard检查。
三、Q:如何用Python删除一个文件?
A:
#
!/usr/bin/env python
#
-*- coding: utf-8 -*-
import
os
my_file
=
'
D:/text.txt
'
#
文件路径
if
os.path.exists(my_file):
#
如果文件存在
#
删除文件,可使用以下两种方法。
os.remove(my_file)
#
则删除
#
os.unlink(my_file)
else
:
print
(
'
no such file:%s
'
% my_file)
四、Q:Python如何copy一个文件?
A:
#
!/usr/bin/env python
#
-*- coding: utf-8 -*-
from
shutil
import
copyfile
src
=
'
源文件
'
dst
=
'
目标文件
'
copyfile(src, dst)
#
src:源文件 dst:目标文件
五、Q:python代码得到列表list的交集与差集
A:交集
a = [2, 3, 4, 5
]
b
= [2, 5, 8
]
print
(list(set(a).intersection(set(b))))
差集
#
!/usr/bin/env python
#
-*- coding: utf-8 -*-
a
= [2, 3, 4, 5
]
b
= [2, 5, 8
]
print
(list(set(a).difference(set(b))))
#
a包含,b却不包含的
六、Q:python如何捕获异常
A:
#
!/usr/bin/env python
#
-*- coding: utf-8 -*-
def
main():
try
:
a
= 1
except
:
print
(
'
error
'
)
finally
:
return
None
当我们进行try嵌套时,如果try嵌套,那么如果里面的try没有捕获到这个异常,那么外面的try会接收到这个异常,然后进行处理,如果外边的try依然没有捕获到,那么再进行传递。。。如果一个异常是在一个函数中产生的,例如函数A---->函数B---->函数C,而异常是在函数C中产生的,那么如果函数C中没有对这个异常进行处理,那么这个异常会传递到函数B中,如果函数B有异常处理那么就会按照函数B的处理方式进行执行;如果函数B也没有异常处理,那么这个异常会继续传递,以此类推。。。如果所有的函数都没有处理,那么此时就会进行异常的默认处理,即通常见到的那样
七、Q:假设有如下两个 list:a = ['a', 'b', 'c', 'd', 'e'],b = [1, 2, 3, 4, 5],将 a 中的元素作为 key,b 中元素作为 value,将 a,b 合并为字典。
A:
#
!/usr/bin/env python
#
-*- coding: utf-8 -*-
def
main():
a
= [
'
a
'
,
'
b
'
,
'
c
'
,
'
d
'
,
'
e
'
]
b
= [1, 2, 3, 4, 5
]
dic
= dict(map(
lambda
x, y: [x, y], a, b))
print
(dic)
for
k, v
in
dic.items():
print
(k)
print
(v)
main()
八、Q:[1,2,3]+[4,5,6]的结果是多少?
A:[1,2,3,4,5,6],和extend结果一样,extend不会建立新的对象,也就不会占用新的内存,而选择+来拼接会产品新的内存空间。
九、Q:编写一个代码,用于计算文件中的所有大写字母。
A:
#
!/usr/bin/env python
#
-*- coding: utf-8 -*-
import
re
def
main(str):
len_capital
= len(re.compile(r
'
[A-Z]
'
).findall(str))
print
(
'
大写字母有%s个
'
%
len_capital)
str
=
"
ABCaaaaABaCaaaABC
"
main(str)
十、Q:如果li是[4,6,8,1,0,3],li[-1]会是什么?
A:会返回3,也就是返回从后往前数,第一位,同理li[-2]会返回0

