一、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
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

