1.編譯型語言和解釋性語言的區別?python
編譯型:編譯後再執行...表明語言有:C,Java,C#mysql
解釋性語言:邊解釋變執行...表明語言有:python,PHPsql
2.運算符總結:數據庫
①:順序:括號>not>and>ordjango
②:規則:and先後都爲真才爲真,or先後有一個爲真就爲真json
③:取值:and先後都不爲0的狀況,取後面的值,and前面爲0時取0位最終值.設計模式
or先後不爲0的狀況下,取後面的值,or前面爲0時 取後面的值爲最終值數組
④:括號與布爾結合: c=1 < (2==2) #False d=1 < 2 == 2 #True網絡
3.數據類型:以及每一個的5個方法:app
①:str(字符串) :split(分割)-->strip(去掉兩邊的空格)-->upper(大寫)-->startwith(以什麼開頭)-->endwith(以什麼結尾)-->lower(小寫)
②list(列表): append(追加)-->insert(插入)-->index(索引)-->server(排序)-->pop(刪除,加索引刪除指定索引,不加默認刪除最後一個)
③dict(字典):get(根據key獲取value的值)-->items(用於循環,取出全部key和value)-->keys(去除key的全部值)-->values(去除value全部的值)-->pop(刪除)
④tuple(元組):Count:查看某個元素出現的次數-->Index:索引
4;參數陷阱:
def func(a,b=[]) 這種寫法的陷阱:
列表是可變數據類型,可能會在過程當中修改裏面的值
5;裝飾器 & 帶參數的裝飾器(帶參數的裝飾器能夠使函數執行任意次)
"""
def counter(num):
def outer(f):
def inner(*args,**kwargs):
rets = []
for i in range(num):
ret = f(*args,**kwargs)
rets.append(ret)
return rets
return inner
return outer
@counter(3)
def func():
print('1111')
rets = func()
print(rets)
"""
6:yield &yield from (節省內存空間)
yield使用
1)函數中使用yield,能夠使函數變成生成器。一個函數若是是生成一個數組,就必須把數據存儲在內存中,若是使用生成器,則在調用的時候才生成數據,能夠節省內存。
2)生成器方法調用時,不會當即執行。須要調用next()或者使用for循環來執行。
yield from的使用:
1)爲了讓生成器(帶yield函數),能簡易的在其餘函數中直接調用,就產生了yield from。
"""
def foo():
yield 55
yield 66
def func():
yield 1
yield from foo()
yield 2
yield 3
r1 = func()
for i in r1:
print(i)
"""
7;列表生成式
# v1 = [ i for i in range(10)]
# v2 = [ lambda :i for i in range(10)] 匿名函數
# def func():
# return i
# func_list = []
# for i in range(10):
# func_list.append(func)
# x = func_list[5]()
# print(x)
8;py2和py3的區別:
①:默認解釋器編碼:py2-> ascii ; py3->utf-8
②:字符串和字節 py2:unicode str=bytes
py3:str字符串 bytes:字節
③經典類和新式類:py2:經典類和新式類(直接或間接繼承object)
py3:新式類
9;你用過的內置模塊有哪些:
os(使用操做系統函數)--re(正則)--time&datetime(時間模塊)--random(隨機數模塊)--json(序列化)--hashlib(加密模塊)
--logging(日誌模塊)--pickle(序列化)
10第三方模塊;
requests,bs4,pymysql,pymongo,gevent(gevent是能夠很輕鬆地將它的網絡模型分佈到多個進程並行處理的。)
安裝:pip install 軟件名
11常見的雙下劃線方法:
__call__
__new__
__dict__
__setattr__
__getattr__
__delattr__
__getitem__
__setitem__
__delitem__
__iter__
__enter__
__exit__
__init__
__str__
__repr__
__del__
12:單例模式:
①什麼是單例模式;單例模式是一種設計模式,是指一個類僅僅能有一個實例。
②哪裏使用單例模式?:django admin 數據庫鏈接池
單例模式的書寫:
推薦: import threading import time class Foo(object): _instance = None _lock = threading.RLock() def __new__(cls, *args, **kwargs): if cls._instance: return cls._instance with cls._lock: if not cls._instance: cls._instance = object.__new__(cls) return cls._instance def task(): obj = Foo() print(obj) for i in range(10): t = threading.Thread(target=task) t.start() time.sleep(100) obj = Foo()