Python簡介及編碼

2022-03-17 23:40:11 字數 2861 閱讀 1146

首先python是一種語言,因此根據其實現的不同,有cpython, jython, ironpython, pypy等。

python執行流程

$ python /home/hello.py    當在終端上執行py檔案,流程圖如下:

字符集

記憶體讀寫資訊是以byte為單位.

編碼和解碼(encode==編碼,decode==解碼)

為什麼要編碼和解碼?

答案是:便於儲存和傳輸。因為計算機底層只能識別0和1的二進位制資料,encode就是把邏輯上的字元變成二進位制資料,以便儲存和傳輸,使用decode把二進位制資料解碼成邏輯的字元便於使用者理解和操作。至於編碼前和解碼後的字元是怎麼儲存的,是python的內部實現,只有 python 自己需要操心,使用者不用管,就像你不用管整數在 python 記憶體里長什麼樣一樣,但是你把整數存起來或者傳輸到網路上時就得考慮,是轉成十進位制字串表示呢,還是轉成32位無符號小端序表示呢,還是64位有符號網路序表示呢……

python 2.x 預設編碼(ascii)

在python2中預設是ascii編碼,所以不支援中文,如果要支援中文就必須宣告為unicode字串,即在字串前面加個u。

>>> str1 = '

my name is ray'#

ascii字串

>>> str2 = u'

我的名字是ray'#

unicode字串

>>>

>>>type(str1)

'str

'>

>>>type(str2)

'unicode

'>

view code

非unicode字串需要先解碼為unicode字符集才能編碼為其他字符集,unicode字符集起到乙個中介作用。

>>> str1 = '

my name is ray

'>>> str2 = u'

我的名字是ray

'>>>

>>>str1.decode()u'

my name is ray

'>>>

>>> str1.decode().encode('

utf-8')

'my name is ray

'>>>

>>> str2.encode('

gbk')'

\xce\xd2\xb5\xc4\xc3\xfb\xd7\xd6\xca\xc7ray

'

view code

python直譯器在載入 .py 檔案中的**時,會對內容進行編碼(預設ascill),如果有檔案中有非ascii字元出現,則需要申明utf-8編碼,讓直譯器以utf-8編碼,不然會報錯。

#!/usr/bin/env python

# -*- coding: utf-8 -*-

python 3.x 預設編碼(unicode)

在python3中字串都是str型別,編碼之後變成byte型別(二進位制,輸出時一般以16進製制或者10進製表示,方便檢視),str型別使用encode編碼為byte型別,byte型別使用decode解碼為str型別,也可以使用str()和bytes()方法對兩種型別進行轉換,效果是一樣的。

>>> str1 = '

hello china

'>>> str2 = '

你好中國

'>>>

>>>type(str1)

'str

'>

>>>type(str2)

'str

'>

>>>

>>> str1.encode('

utf-8')

b'hello china

'>>> str2.encode('

gbk')b

'\xc4\xe3\xba\xc3\xd6\xd0\xb9\xfa

'>>>

>>> s3 = str1.encode('

utf-8')

>>> s4 = str2.encode('

gbk'

)>>>

>>>type(s3)

'bytes

'>

>>>type(s4)

'bytes

'>

>>>

>>> for i in

str2:

...

print

(i)...你好

>> for j in

s4:...

print

(j)...

196227

186195

214208

185250

>>>

#使用str()和bytes()轉換,效果是一樣的

>>> str(s4, '

gbk')'

你好中國

'>>> bytes(str2, '

gbk')b

'\xc4\xe3\xba\xc3\xd6\xd0\xb9\xfa

'>>>

view code

python簡介及安裝

python是一種解釋型 物件導向 動態資料型別的高階程式語言。解釋型 開發過程沒有編譯 互動型 可以在python 提示符 後直接執行 物件導向 python支援物件導向的風格或 封裝在物件的程式設計技術 針對不同的作業系統,對應不同的安裝包 本文只介紹在windows上的安裝 點選 點選安裝包,...

python變數及字元編碼

變數和字元編碼 使用pycharm的優點 1.自動補全 2.可以除錯 3.開發效率高 首先create project location 3.x 選擇3.x版本 new direcory new python file python預設模板配置viem tool bar file and code ...

python編碼及型別轉換

使用chardet模組來判斷資料的編碼 輸入引數為str型別。coding utf 8 import chardet f open hadoop.txt r 開啟文字檔案,唯讀 about f.read 讀取文字內容 print cchardet.detect about 判斷字串編碼 將字串的原編...