python是解釋型語言,你的**在執行時會一行一行地翻譯成cpu能理解的機器碼,這個翻譯過程非常耗時,所以很慢。而c程式是執行前直接編譯成cpu能執行的機器碼,所以非常快
如果字串內部既包含』又包含」怎麼辦?可以用轉義字元\來標識,比如:
『i\』m \」ok\」!』
表示的字串內容是:
i』m 「ok」!
python還允許用r」表示」內部的字串預設不轉義,可以自己試試:
print 『\\t\』\ \
print r』\\t\』
\\t\
print 」』line1空值… line2
… line3」』
line1
line2
line3
空值是python裡乙個特殊的值,用none表示。
普通的字串』abc』在python內部都是ascii編碼的。python提供了ord()和chr()函式,可以把字母和對應的數字相互轉換:
ord(『a』)65 chr(65)
『a』
python在後來新增了對unicode的支援,以unicode表示的字串用u』…』表示,比如:
print u』中文』中文 u』中』
u』\u4e2d』
寫u』中』和u』\u4e2d』是一樣的,\u後面是十六進製制的unicode碼。因此,u』a』和u』\u0041』也是一樣的。
兩種字串如何相互轉換?字串』***』雖然是ascii編碼,但也可以看成是utf-8編碼,而u』***』則只能是unicode編碼。
把u』***』轉換為utf-8編碼的』***』用encode(『utf-8』)方法:
u』abc』.encode(『utf-8』)『abc』
u』中文』.encode(『utf-8』)
『\xe4\xb8\xad\xe6\x96\x87』
反過來,把utf-8編碼表示的字串』***』轉換為unicode字串u』***』用decode(『utf-8』)方法:
『abc』.decode(『utf-8』)u』abc』
『\xe4\xb8\xad\xe6\x96\x87』.decode(『utf-8』)
u』\u4e2d\u6587』
print 『\xe4\xb8\xad\xe6\x96\x87』.decode(『utf-8』)
中文
但是,要定義乙個只有1個元素的tuple,如果你這麼定義:
t = (1)t 1
定義的不是tuple,是1這個數!這是因為括號()既可以表示tuple,又可以表示數學公式中的小括號,這就產生了歧義,因此,python規定,這種情況下,按小括號進行計算,計算結果自然是1。
所以,只有1個元素的tuple定義時必須加乙個逗號,,來消除歧義:
t = (1,)t (1,)
如果要計算1-100的整數之和,從1寫到100有點困難,幸好python提供乙個range()函式,可以生成乙個整數序列,比如range(5)生成的序列是從0開始小於5的整數:
range(5)[0, 1, 2, 3, 4]
0到4的乙個list
set可以看成數學意義上的無序和無重複元素的集合,因此,兩個set可以做數學意義上的交集、並集等操作:
s1 = set([1, 2, 3])s2 = set([2, 3, 4])
s1 & s2
set([2, 3])
s1 | s2
set([1, 2, 3, 4])
list 中括號[ ] list是可變物件
dic 大括號
set 小括號裡包含乙個集合:s = set([1, 2, 3]) 元素不可重複
tuple 小括號 元素不可變的list
函式名其實就是指向乙個函式物件的引用,完全可以把函式名賦給乙個變數,相當於給這個函式起了乙個「別名」:
a = abs # 變數a指向abs函式a(-1) # 所以也可以通過a呼叫abs函式
1
空函式如果想定義乙個什麼事也不做的空函式,可以用pass語句:
def nop():
pass
pass語句什麼都不做,那有什麼用?實際上pass可以用來作為佔位符,比如現在還沒想好怎麼寫函式的**,就可以先放乙個pass,讓**能執行起來。
pass還可以用在其他語句裡,比如:
if age >= 18:
pass
缺少了pass,**執行就會有語法錯誤。
函式可以同時返回多個值,但其實就是乙個tuple。
x,y=(54,13)
python的函式具有非常靈活的引數形態,既可以實現簡單的呼叫,又可以傳入非常複雜的引數。
預設引數一定要用不可變物件,如果是可變物件,執行會有邏輯錯誤!
要注意定義可變引數和關鍵字引數的語法:
*args是可變引數,args接收的是乙個tuple;
**kw是關鍵字引數,kw接收的是乙個dict。
以及呼叫函式時如何傳入可變引數和關鍵字引數的語法:
可變引數既可以直接傳入:func(1, 2, 3),又可以先組裝list或tuple,再通過args傳入:func((1, 2, 3));
關鍵字引數既可以直接傳入:func(a=1, b=2),又可以先組裝dict,再通過kw傳入:func()。
使用*args和**kw是python的習慣寫法,當然也可以用其他引數名,但最好使用習慣用法。
IS IS 簡單實用小知識
is指路由器.isis屬於大型內部閘道器路由協議類似ospf,多用於運營商,普通企業網很少使用.使用spf演算法,鏈路狀態類路由協議.isis最早是基於osi模型設計,而ospf,rip 以及常見的乙太網資料報封裝都是基於tcp ip模型.isis劃分區域是基於路由器的.即乙個路由器只能屬於乙個區域...
python小知識 Python小知識
1 python是一種解釋性語言,當程式執行時,一行一行的解釋,並執行 優點 除錯 很方便,開發效率高,並且可以跨平台 不但入門容易,而且將來深入下去,可以編寫那些非常非常複雜的程式。缺點 執行速度慢。python的種類 cpython ipython pypy jython ironpython ...
python小知識 python小知識
一 列表 l 1,2 m l l和m同時指向列表物件,內容為 1,2 l l 3,4 系統新增了乙個物件,內容為 1,2,3,4 l,m 1,2,3,4 1,2 l 1,2 m l l 3,4 對列表在原處做修改 l,m 1,2,3,4 1,2,3,4 二 python程式設計中的中文編碼問題 問題...