這段時間開始研究python了在日常工作中總結了以下的實踐:
if retrun while 中不用使用()(括號)
運算中使用()
(1<<2)&5
設定整數型浮點使用
7.0
方法名小寫,類名首字母大寫
def funciton:
class function:
別使用build-in的關鍵字 例如不要使用
list=[1,2,3] dict=
使用in keys()
if x in dict.keys():
通常不要使用可變數作為預設值可以使用一下方式
使用 is 判斷none
def
test
(x,de_x=none):
if de_x is
none:
de_x=
可以的話盡量使用迭代方法:
效能分析:
python -m profile -o stats myscript.py
import pstats
p = pstats.stats('stats')
p.sort_stats('time').print_stats(15) #按執行時長排序
轉換編碼
-*- coding: utf-8 -*-
#迴圈
while
true
***if yyy: break
#交換
a=5b=3
a,b=b,a
#同一賦值
#bad
a=5b=5
c=5#good
a=b=c=5
if x == 1: y = fun1(x)
elif x == 2: y = fun2(x)
elif x == 3: y = fun3(x)
else: y = none
#可以使用字典形式的方法:
funs =
y = funs.get(x, lambda x:none)(x)
#拼接字串
sl = ["ab", "cd", "ef"]
all = "".join(sl)
#使用列表推導式
vals = [2, 3, -5, 0]
result = [el * el for el in vals if el > 0]
#私有變數用_標註
class foo(object):
def __init__(self, x, y, z):
self.x_public = x
self._y_private = y
self.__z_veryprivate = z
print (foo(1, 2, 3).x_public)
#從-2開始疊加
vals = [5, 7 ,8]
tot = sum(vals, -2.0) #tot=18
#反轉list等
alist[::-1]
#判別型別
if isinstance(s, basestring): ...
if isinstance(seq, (list, tuple)): ...
if hasattr(seq, "__getitem__"): ...
#使用d=dict()會去先load dict()方法
d=d={}
# return a.sort() 會先去load() sort()方法
a.sort()
retrun a
#不用aa#不用 a!=2 不用a is not 2
if not a is 2:
#不用if not a 不用if len(a) 拒絕 if a== (when a is list)
if a
#不用 if a is none /if a is not none (a是物件時)
if not a
#不用for i in range(len(list))
for x,y in enumerate(list)
#不用return str((a*(b+c)))
return
"%s" % (a*(b+c))
#不用return sum(i for i in range(50000))
for i in range(50000):
s += i
return s
#不用for i in range(1000):
# return l
return [i for i in range(1000)]
python 語法最佳實踐
字串拼接 s for substring in substrings s substring 這種字串的拼接方式會導致執行實踐成本和字串總長度成二次函式關係,效率極低 我們可以使用str.join 方法,可以用空字串來呼叫它 s join substrings 這種方法速度快。evens for i...
最佳實踐 Flutter 最佳實踐
最佳實踐是乙個領域可以接受的專業標準,對於任何程式語言來說,提高 質量 可讀性 可維護性和健壯性都非常重要。讓我們探索一些設計和開發flutter應用程式的最佳實踐。class enum typedef和extension應採用駝峰命名uppercamelcase規則。class mainscree...
python程式設計規範 最佳實踐
全部小寫,由下劃線連線各個單詞,比如home addr 注意 1 不論是成員變數還是全域性變數,均不使用m或g為字首 2 變數名不應該帶有型別資訊,因為python是動態語言類,比如name list,stu info dict等都不可以 所有字母大寫,由下劃線連線各個單詞,比如pi 3.14 以 ...