基礎題整理

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()
相關文章
相關標籤/搜索