【轉自:】http://hi.baidu.com/autoitcn/blog/item/5f41973294b5fc4fac4b5f77.htmlhtml
補充:python
2.0 print u ‘ip’ =》 3.0 print("ip")編程
2.0 urllib2 => urllib.request 或者urllib.parse數組
2.0 raw_input=>input函數
python 2.4 與 python 3.0 的比較編碼 1、 print 從語句變爲函數url 原: print 1, 2+3code 改成: print ( 1, 2+3 )htm 2、range 與 xrange對象 原 : range( 0, 4 ) 結果 是 列表 [0,1,2,3 ] 改成:list( range(0,4) ) 原 : xrange( 0, 4 ) 適用於 for 循環的變量控制 改成:range(0,4) 3、字符串 原: 字符串以 8-bit 字符串存儲 改成: 字符串以 16-bit Unicode 字符串存儲
4、try except 語句的變化 原: try: ...... except Exception, e : ...... 改成 try: ...... except Exception as e : ...... 5、打開文件 原: file( ..... ) 或 open(.....) 改成: 只能用 open(.....) 6、從鍵盤錄入一個字符串 原: raw_input( "提示信息" ) 改成: input( "提示信息" ) 7、bytes 數據類型
A bytes object is an immutable array. The items are 8-bit bytes, represented by integers in the range 0 <= x < 256. bytes 能夠當作是「字節數組」對象,每一個元素是 8-bit 的字節,取值範圍 0~255。 因爲在 python 3.0中字符串以 unicode 編碼存儲,當寫入二進制文件時,字符串沒法直接寫入(或讀取),必須以某種方式的編碼爲字節序列後,方可寫入。 (一)字符串編碼(encode) 爲 bytes 例: s = "張三abc12" b = s.encode( 編碼方式) # b 就是 bytes 類型的數據 # 經常使用的編碼方式爲 : "uft-16" , "utf-8", "gbk", "gb2312", "ascii" , "latin1" 等 # 注 : 當字符串不能編碼爲指定的「編碼方式」時,會引起異常 (二) bytes 解碼(decode)爲字符串 s = "張三abc12" b = s.encode( "gbk") # 字符串 s 編碼爲 gbk 格式的字節序列 s1 = b.decode("gbk") # 將字節序列 b以gbk格式 解碼爲字符串 # 說明,當字節序列不能以指定的編碼格式解碼時會引起異常 (三)使用方法舉例 #coding=gbk f = open("c:\\1234.txt", "wb") input("?") 讀取該文件的例子: #coding=gbk f = open("c:\\1234.txt", "rb") 運行後應顯示: 張三李四abcd1234
(四) bytes序列,一但造成,其內容是不可變的 例: s="ABCD" b=s.encode("gbk") print b[0] # 顯示 65 b[0] = 66 # 執行該句,出現異常: 'bytes' object does not support item assignment
8、 chr( K ) 與 ord( c ) python 2.4.2之前 chr( K ) 將編碼K 轉爲字符,K的範圍是 0 ~ 255 ord( c ) 取單個字符的編碼, 返回值的範圍: 0 ~ 255 python 3.0 chr( K ) 將編碼K 轉爲字符,K的範圍是 0 ~ 65535 ord( c ) 取單個字符的編碼, 返回值的範圍: 0 ~ 65535 9、 除法運算符 python 2.4.2之前 10/3 結果爲 3 python 3.0 10 / 3 結果爲 3.3333333333333335 10 // 3 結果爲 3 10、字節數組對象 --- 新增 (一) 初始化 a = bytearray( 10 ) # a 是一個由十個字節組成的數組,其每一個元素是一個字節,類型借用 int # 此時,每一個元素初始值爲 0 (二) 字節數組 是可變的 a = bytearray( 10 ) a[0] = 25 # 能夠用賦值語句更改其元素,但所賦的值必須在 0 ~ 255 之間 (三) 字節數組的切片還是字節數組 (四) 字符串轉化爲字節數組 #coding=gbk s ="你好" b = s.encode( "gbk") # 先將字符串按某種「GBK」編碼方式轉化爲 bytes c = bytearray( b ) #再將 bytes 轉化爲 字節數組 也能夠寫做 c = bytearray( "你好", "gbk")
(五) 字節數組轉化爲字符串 c = bytearray( 4 ) c[0] = 65 ; c[1]=66; c[2]= 67; c[3]= 68 s = c.decode( "gbk" ) print ( s ) # 應顯示: ABCD
(六) 字節數組可用於寫入文本文件 #coding=gbk f = open("c:\\1234.txt", "wb") f.write( b ) input("?") |
RookieDong的補充
1,「import thread」問題,2.x中的模塊thread在3.x中編程"_thread"(須要在前面加一個下劃線).不然會出現「ImportError: No module named thread