1. 程式人生 > >Python2與3的一些注意要點(後期持續更新)

Python2與3的一些注意要點(後期持續更新)

1.Linux指令碼的申明:

如果使用該申明:#!/usr/bin/ python 代表是系統自帶的python.2.7來解釋你的指令碼。如果你安裝一個高版本 是在usr/local/python3.5目錄下,由於一般情況下不可以替換系統自帶的Python怕發生其他問題。

所以我們寫指令碼的時候用該申明:#!/usr/bin/env python這樣解析該指令碼的就是高版本(加上解析申明就代表檔案本身只要具備執行許可權也可以直接執行)

 

2.字串和2進位制:

Python2的字串和二進位制是自動互相轉換,

Python3需要進行encode才可以把字串轉換成二進位制型別(bytes),二進位制需要進行decode才可以轉成字串型別(str)

 

3.請求輸入(標準輸入)的區別:

print('Hi, %s!' %input('Please enter your name: ')) python3.*版本用input

print('Hi, %s!' %raw_input('Please enter your name: ')) #python2.*版本用raw_input

 

4.字符集的區別

python3:python 3統程式預設和檔案編碼是unicode字符集不管是GBK 還是utf-8最終要顯示中文就必須要解碼unicode字符集才可以顯示 (一個文字內容統一顯示某一字符集顯示,如果存在其他字符集需轉換否則以bytes型別顯示)

python2:python2:統程式預設和檔案編碼是ascii字符集指令碼需要宣告字符集如:-*- coding:utf-8 -*- or -*- coding:gbk -*-.一個檔案包含gbk utf-8的字符集,只需要切換會話視窗對應的字符集就可以顯示 如:會話視窗是GBK ,那麼utf-8的字符集就會出現亂碼,如會話串列埠是utf-8,那麼其他字符集就會出現亂碼或者空

 

5.提示輸入

Python2:raw_input

Python3:input

 

5.類的區別查詢方式

 

  py2經典類是按深度優先來繼承的,新式類是按廣度優先繼承的

  py3全是按廣度優先繼承

6.socket區別:

python 2

     1.增加指令碼申明:-*-coding:utf-8-*-

     2.server.listen()#監聽埠  ==== server.listen(5): 監聽一定要寫數量否則出錯

     傳送資料無需轉換資料型別

Python3

     所有資料必須要.encode(‘utf-8’) 編碼成bytes型別才可進行傳送資料和接收資料

     然後在本地如果要檢視恢復就.decode(‘utf-8’)解碼就可以了