any():只要迭代器對象中有一個元素為真就為真
all():迭代器中所有的判斷項返回都是真,結果才為真
python中什麼元素為假?
0、空字符串、None、False、空列表、空字典、空元組、空集合
data=[1,4,6,3,7,0]
print(any(data))
data1=[1,0,0,0]
print(any(data1))
data2=[0,0,0,0]
print(any(data2))
打印結果依次為:
True
True
False
data=[1,4,6,3,7,8]
print(all(data))
data1=[1,0,0,0]
print(all(data1))
data2=[0,0,0,0]
print(all(data2))
打印結果依次為:
True
False
False
IOError:輸入輸出異常
AttributeError:試圖訪問一個對象沒有屬性
ImportError:無法引入模塊和包,,基本是路徑的問題
IndentationError::語法錯誤,代碼沒有正確的對齊
IndexError:下標索引超出序列邊界
KeyError:試圖訪問字典中不存在的鍵
SyntaxError:代碼邏輯語法錯誤,不能執行
NameError:使用一個還未賦予對象的變量
同源策略需要同時滿足3點要求
協議相同
域名相同
端口相同
舉例來說:
http://www.example.com/dir/page.html
協議是 http://
域名是 www.example.com
端⼝是 80(默認端⼝可以省略)
同源政策的⽬的,是為了保證⽤戶信息的安全,防⽌惡意的⽹站竊取數據。
悲觀鎖:每次去拿數據的時候都認為別人會去修改,所以每次拿數據的時候都會上鎖,這樣別人想拿這個數據就會block直到它拿到鎖。傳統的關系型數據庫裡面就用到了很多這種鎖機制,比如行鎖、表鎖、讀鎖、寫鎖等,都是在操作之前先上鎖
樂觀鎖:每次去拿數據的時候都認為別人不會修改,所以不會上鎖,但是在更新的時候會判斷一下在此期間別人有沒有更新這個數據,可以使用版本號機制。
後端:
1、對於緩沖存儲讀寫次數高、變化少的數據,比如網站首頁的信息。應用程序讀取數據時,一般是先從緩沖中給讀取,如果讀取不到或者數據已經失效,再訪問磁盤數據庫,並將數據再次寫入緩沖。
2、異步方式,如果有耗時操作,采用異步,celery
3、代碼優化,避免循環和判斷次數太多,如果有多個if else判斷,優先判斷最有可能先發生的情況。
數據庫優化
1、如有條件,數據可以存放redis,讀取速度快
2、建立索引、外鍵
前端:
1、html和css放在頁面的上部,javascript放在頁面下方,因為javascript加載比html和css加載慢,所以要優先加載html和css,以防頁面顯示不全,性能差,影響用戶體驗。
python垃圾回收機制主要以引用計數為主,標記清除和分代清楚為輔的機制
當有1個變量保存了對象的引用時,此對象的引用計數就會加1;
當使用del刪除變量指向的對象時,如果對象的引用計數不為1,比如3,那麼此時只會讓引用計數減1,即變為2;
當再次調用del時,變為1;
如果再調用1次del,此時會真的把對象進行刪除。
class Animal(object):
def __init__(self,name):
self.name=name
def __del__(self):
print('{}對象馬上被干掉了'.format(self.name))
if __name__ == '__main__':
cat=Animal('波斯貓')
cat1=cat
cat2=cat
print(id(cat), id(cat1), id(cat2))
print('馬上刪除cat對象')
del cat
print('馬上刪除cat1對象')
del cat1
print('馬上刪除cat2對象')
del cat2
執行結果:
1949389517488 1949389517488 1949389517488
馬上刪除cat對象
馬上刪除cat1對象
馬上刪除cat2對象
波斯貓對象馬上被干掉了
A="abcdefg"
B="abfyt"
list=[]
for i in A:
for j in B:
if i==j:
list.append(i)
print(list)
res=''.join(list)
print(res)