經過自學書籍、搜索資料進行學習html
解釋型語言
解釋型語言編寫的程序不須要編譯,在執行的時候,專門有一個解釋器可以將VB語言((Visual Basic)通用的基於對象的程序設計語言))翻譯成機器語言,每一個語句都是執行的時候才翻譯。這樣解釋型語言每執行一次就要翻譯一次,效率比較低。
編譯器語言
用編譯型語言寫的程序執行以前,須要一個專門的編譯過程,經過編譯系統,把源高級程序編譯成爲機器語言文件,翻譯只作了一次,運行時不須要翻譯,因此編譯型語言的程序執行效率高,但也不能一律而論。
部分解釋型語言的解釋器經過在運行時動態優化代碼,甚至可以使解釋型語言的性能超過編譯型語言。
1字節=8位、一個字符=2字節
1B=8b、1KB=1024B、1MB=1024KB、1G=1024MB
二進制轉換成十進制:v = 「0b1111011」 答: print(int("0b1111011",2)) 十進制轉換成二進制:v = 18 答:print("轉換爲二進制爲:", bin(18)) 八進制轉換成十進制:v = 「011」 答:print(int("011",8)) 十進制轉換成八進制:v = 30 答:print("轉換爲八進制爲:", oct(30)) 十六進制轉換成十進制:v = 「0x12」 答:print(int("0x12",16)) 十進制轉換成十六進制:v = 87 答:print("轉換爲十六進制爲:", hex(87))
默認最大次數1000,這是python專門設置的一種機制用來防止無限遞歸形成Python溢出崩潰, 最大遞歸次數是能夠從新調整的 import sys sys.setrecursionlimit(1500)
def ret(n):
n += 1
print(n)
ret(n)
if__name__=="__main__":
ret(1)
v1 = 1 or 3 v2 = 1 and 3 v3 = 0 and 2 and 1 v4 = 0 and 2 or 1 v5 = 0 and 2 or 1 or 4 v6 = 0 or Flase and 1 答: v1 = 1 v2 = 3 v3 = 0 v4 = 1 v5 = 1 v6會報錯
ASCII碼使用一個字節編碼,因此它的範圍基本是隻有英文字母、數字和一些特殊符號 ,只有256個字符。 Unicode可以表示全世界全部的字節 UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字符編碼,又稱萬國碼 GBK是隻用來編碼漢字的,GBK全稱《漢字內碼擴展規範》,使用雙字節編碼。
字節碼:字節碼是一種中間狀態(中間碼)的二進制代碼(文件)。須要直譯器轉譯後才能成爲機器碼。
機器碼:機器碼就是計算機能夠直接執行,而且執行速度最快的代碼。
三元運算符就是在賦值變量的時候,能夠直接加判斷,而後賦值 三元運算符的功能與'if....else'流程語句一致,它在一行中書寫,代碼很是精煉,執行效率更高 格式:[on_true] if [expression] else [on_false] res = 值1 if 條件 else 值2
1、print 在python2中,print被視爲一個語句而不是一個函數,python3中,print()被視爲一個函數 2、整數的除法 在python2中,鍵入的任何不帶小數的數字,將被視爲整數的編程類型。好比5/2=2,解決方法:5.0/2.0=2.5 在python3中,整數除法變得更直觀 5/2=2.5 3、Unicode Python 2 默認使用 ASCII 字母表;Python 3 默認使用 Unicode 4、後續發展 Python 2.7 將在 2020 年失去後續的支持, Python 3 將繼續開發更多的功能和修復更多的錯誤。
a = 1 b = 2 a, b = b, a
int(符號整數):一般被稱爲是整數或整數,沒有小數點的正或負整數; long(長整數):無限大小的整數,這樣寫整數和一個大寫或小寫的L。
range: 函數說明,range([start,] stop[, step]),根據start與stop指定的範圍以及step設定的步長,生成一個列表。 xrange:函數說明,xrange 用法與 range 徹底相同,所不一樣的是生成的不是一個list對象,而是一個生成器。 1、range和xrange都是在循環中使用,輸出結果同樣。 2、range返回的是一個list對象,而xrange返回的是一個生成器對象(xrange object)。 3、xrange則不會直接生成一個list,而是每次調用返回其中的一個值,內存空間使用極少,於是性能很是好。 注意:Python 3.x已經去掉xrange,所有用range代替。
兩者使用時相同,但返回類型不一樣,xreadlines返回的是一個生成器,readlines返回的是list
0 , [ ] , " , ( ) , { }
# 字符串 words = "today is a wonderfulday" print(words.strip('today')) # 若是strip方法指定一個值的話,那麼會去掉這兩個值 print(words.count('a')) # 統計字符串出現的次數 print(words.index('is')) # 找下標 print(words.index('z')) # 找下標若是元素不找不到的話,會報錯 print(words.find('z')) # 找下標,若是元素找不到的話,返回-1 print(words.replace('day','DAY'))# 字符串替換
# 列表 sample_list = ['a', 1, ('a', 'b')] # 建立列表 sample_list = ['a', 'b', 0, 1, 3] # Python列表操做 value_start = sample_list[0] # 獲得列表中的某一個值 end_value = sample_list[-1] # 獲得列表中的某一個值 del sample_list[0] # 刪除列表的第一個值 sample_list[0:0] = ['sample value'] # 在列表中插入一個值
# 元組 #元組也是一個list,他和list的區別是元組的元素沒法修改 tuple1 = (2, 3, 4, 5, 6, 4, 7) print(type(tuple1)) print(tuple1[:7]) print(tuple1[: 5: -1]) for i in range(6): print(tuple1[i]) for i in tuple1: print(i) # 字典 D.get(key, 0) # 同dict[key],多了個沒有則返回缺省值,0。[]沒有則拋異常 D.has_key(key) # 有該鍵返回TRUE,不然FALSE D.keys() # 返回字典鍵的列表 D.clear() # 清空字典,同del dict D.copy() # 拷貝字典
lambda表達式,一般是在須要一個函數,可是又不想費神去命名一個函數的場合下使用,也就是指匿名函數。 add = lambda x, y : x+y print(add(1,2)) # 結果爲3 應用在函數式編程中 應用在閉包中
1、空語句 do nothing 2、保證格式完整,保證語義完整 3、佔位語句
*args:能夠理解爲只有一列的表格,長度不固定。 **kwargs:能夠理解爲字典,長度也不固定。 1、函數調用裏的*arg和**kwarg: (1) *arg:元組或列表「出現」 **kwarg:字典「出沒」 (2)分割參數
2、函數定義時傳的*arg /**kwarg: 1)接收參數
is是對比地址(id),==是對比值
淺拷貝:copy.copy 深拷貝:copy.deepcopy
淺拷貝指僅僅拷貝數據集合的第一層數據,深拷貝指拷貝數據集合的全部層
主要應用在字符串,數字的深淺拷貝
Python的GC模塊主要運用了「引用計數」(reference counting)來跟蹤和回收垃圾。在引用計數的基礎上,還能夠通 過「標記-清除」(mark and sweep)解決容器對象可能產生的循環引用的問題。經過「分代回收」(generation collection)以空間換取時間來進一步提升垃圾回收的效率。
Python的每一個對象都分爲可變和不可變
可變:列表、字典
不可變:數字、字符串、元組
v = dict.fromkeys(['k1','k2'],[]) v['k1'].append(666) print(v) v['k1'] = 777 print(v)
答: {'k1': [666], 'k2': [666]} {'k1': 777, 'k2': [666]}
def num(): return [lambda x:i*x for i in range(4)] print([ m(2) for m in num()]) 答: [6, 6, 6, 6]
1、abs() 此函數返回數字的絕對值。 2、all() 此函數用於判斷給定的可迭代參數 iterable 中的全部元素是否都不爲 0、都不爲False 或者iterable都 爲空,若是是返回 True,不然返回 False。 3、bin() 返回一個整數 int 或者長整數 long int 的二進制表示。 4、bool() 函數用於將給定參數轉換爲布爾類型,若是沒有參數,返回 False。 5、dict() 函數用於建立一個字典。
通俗的說.這三者都是用在一堆數據(好比一個列表)上.
map是用一樣方法把全部數據都改爲別的..字面意思是映射..好比把列表的每一個數都換成其平方.
reduce是用某種方法依次把全部數據丟進去最後獲得一個結果..字面意思是化簡..好比計算一個列表全部數的和的過程,就是維持一個部分和而後依次把每一個數加進去.
filter是篩選出其中知足某個條件的那些數據..字面意思是過濾..好比挑出列表中全部奇數
print (‘\n‘.join([‘ ‘.join([‘%s*%s=%-2s‘ % (y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)]))
pip install 模塊名
or
pip3 install 模塊名
pip、pygame、pyMysql、sys、math、time、os
re.match()從開頭開始匹配string。
re.search()從anywhere 來匹配string。
貪婪匹配:正則表達式通常趨向於最大長度匹配,也就是所謂的貪婪匹配
非貪婪匹配:就是匹配到結果就好,就少的匹配字符
默認是貪婪模式;在量詞後面直接加上一個問號?就是非貪婪模式
能夠經過設置不一樣的日誌等級,在release版本中只輸出重要信息,而沒必要顯示大量的調試信息;
print將全部信息都輸出到標準輸出中,嚴重影響開發者從標準輸出中查看其它數據;logging則能夠由開發者決定將信息輸出到什麼地方,以及怎麼輸出;
{0}.format %s.%值
OS模塊是Python標準庫中的一個用於訪問操做系統功能的模塊,使用OS模塊中提供的接口,能夠實現跨平臺訪問
sys模塊主要是用於提供對python解釋器相關的操做
import random
random.random()
os.remove(path)
面向對象是向現實世界模型的天然延伸,這是一種「萬物皆對象」的編程思想
在現實生活中的任何物體均可以歸爲一類事物,而每個個體都是一類事物的實例
面向對象的編程是以對象爲中心,以消息爲驅動,因此程序=對象+消息
繼承是進一步將一類事物共有的屬性和行爲抽象爲一個父類,而每個子類則繼承了父類的行爲和屬性,也有本身特有的行爲和屬性。擴展代碼,增長複用性