1、大量的if-else結構採用字典key來匹配。
days =
"mon tue wed thu fri sat sun"
.split(
)classes =
"eng chi mat phy che res"
.split(
)week_classes =
dict
(zip
(days, classes)
)def
get_calss
(day)
:if day not
in week_classes:
raise valueerror(
"not a correct day"
)else
:return week_classes.get(day)
print
(get_calss(
"sat"
))
2、清楚的異常宣告比含蓄的要好,不要圖省事。
def
get_num
(num1, num2)
:try
: result = num1/num2
except zerodivisionerror:
print
("不能被0整除"
)return
0except typeerror:
print
("請檢查輸入的變數是否為整數"
)raise
except exception as e:
print
("其他錯誤:, 上拋錯誤"
)raise
3、巧妙的利用yield來取代遞迴
注:含有yield的函式是乙個生成器,多個生成器巢狀則用yield from。
import os
deffind_files
(root_dir=
"/user/"
, res=
none):
ifnot res:
res =
for f in os.listdir(root_dir)
: file_path = os.path.join(root_dir, f)
if os.path.isfile(f)
:elif os.path.isdir(f)
: find_files(file_path, res)
return res
優化後:
def
get_files
(folder)
:for item in os.listdir(folder)
: file_path = os.path.join(folder, item)
if os.path.isfile(item)
:yield file_path
elif os.path.isdir(item)
:yield
from find_files(item)
root_dir =
"/user/"
print
(list
(get_files(root_dir)
))
PHP的精華和技巧總結
很多的php程式設計師,尤其是學習還不是很久的,都不知道php的精華所在。perl當年如何在商界出名?其強大的正規表示式。而php呢?他是一門從unix下發展起來的語言,當然也就繼承了perl的很多特點,同時c的優點都有。快速 簡潔 明了,尤其是c程式設計師,php是至愛,我就是深愛著 php 都忘...
Tomcat的配置技巧精華詳解(1)
tomcat按照自己的方式,同樣提供乙個成熟的管理工具,並且絲毫不遜於那些商業化的競爭對手。tomcat tomcat安裝目錄下的server目錄 如果你使用userdatabaserealm 預設 你將需要新增乙個user以及乙個role到catalina base conf tomcat use...
Tomcat的配置技巧精華詳解(2)
3 部署乙個web應用有兩個辦法可以在系統中部署web服務。tomcat監聽到這個檔案,它將 預設的 解開該檔案包作為乙個子目錄,並以war檔案的檔名作為子目錄的名字。接下來,tomcat將在記憶體中建立乙個context,就好象你在server.xml檔案裡建立一樣。當然,其他必需的內容,將從se...