Python_實用入門篇_05

編碼及運算符 html


1.編碼 python

  1.編碼的概念網絡

    計算機硬件中,編碼(coding)是指用代碼來表示各組數據資料,使其成爲可利用計算機進行處理和分析的信息。代碼是用來表示事物的記號,它能夠用數字、字母、特殊的符號或它們之間的組合來表示。函數

  2.編碼的種類(經常使用種類)字體

    ①ASCCI編碼

      1.ASCCI的產生spa

          在計算機中,全部的數據在存儲和運算時都要使用二進制數表示(由於計算機用高電平和低電平分別表示1和0),例如,像a、b、c、d這樣的52個字母(包括大寫)、以及0、1等數字還有一些經常使用的符號(例如*、#、@等)在計算機中存儲時也要使用二進制數來表示,而具體用哪些二進制數字表示哪一個符號,固然每一個人均可以約定本身的一套(這就叫編碼),而你們若是要想互相通訊而不形成混亂,那麼你們就必須使用相同的編碼規則,因而美國有關的標準化組織就出臺了ASCII編碼,統一規定了上述經常使用符號用哪些二進制數來表示。設計

 

          2.ASCCI的表述code

          ASCII 碼使用指定的7 位或8 位二進制數組合來表示128 或256 種可能的字符。標準ASCII 碼也叫基礎ASCII碼,使用7 位二進制數(剩下的1位二進制爲0)來表示全部的大寫和小寫字母,數字0 到九、標點符號, 以及在美式英語中使用的特殊控制字符orm

字母A用ASCII編碼是十進制的65,二進制的01000001;

        ②unicode

      1.Unicode的產生

          unicode碼擴展自ASCII 字元集。在嚴格的ASCII中,每一個字元用7位元表示,或者電腦上廣泛使用的每字元有8位元寬。若是要表示中文,顯然一個字節是不夠的,至少須要兩個字節,並且還不能和ASCII編碼衝突,因此,中國製定了GB2312編碼,用來把中文編進去。相似的,日文和韓文等其餘語言也有這個問題。爲了統一全部文字的編碼,Unicode應運而生。Unicode把全部語言都統一到一套編碼裏,這樣就不會再有亂碼問題了。

          2.Unicode的表述

            Unicode一般用兩個字節表示一個字符,原有的英文編碼從單字節變成雙字節,只須要把高字節所有填爲0就能夠。在Unicode中:漢字「字」對應的數字是23383(十進制),十六進制表示爲5B57。在Unicode中,咱們有不少方式將數字23383表示成程序中的數據

漢字「中」已經超出了ASCII編碼的範圍,用Unicode編碼是十進制的20013,二進制的01001110 00101101。

     ③UTF-8

        1.UTF-8的產生

          事實證實,對能夠用ASCII表示的字符使用Unicode並不高效,由於Unicode比ASCII佔用大一倍的空間,而對ASCII來講高字節的0對他毫無用處。爲了解決這個問題,就出現了一些中間格式的字符集,他們被稱爲通用轉換格式,即UTF(Unicode Transformation Format)。常見的UTF格式有:UTF-7, UTF-7.5, UTF-8,UTF-16, 以及 UTF-32。這裏只介紹UTF-8。

        2.UTF-8的表述

          UTF-8以字節爲單位對Unicode進行編碼。從Unicode到UTF-8的編碼方式以下:

Unicode編碼(十六進制) UTF-8 字節流(二進制)
000000-00007F 0xxxxxxx
000080-0007FF 110xxxxx 10xxxxxx
000800-00FFFF 1110xxxx 10xxxxxx 10xxxxxx
010000-10FFFF 11110xxx10xxxxxx10xxxxxx10xxxxxx

           UTF-8的特色是對不一樣範圍的字符使用不一樣長度的編碼。對於0x00-0x7F之間的字符,UTF-8編碼與ASCII編碼徹底相同。UTF-8編碼的最大長度是4個字節。從上表能夠看出,4字節模板有21個x,便可以容納21位二進制數字。Unicode的最大碼位0x10FFFF也只有21位。

字符    ASCII              Unicode                                      UTF-8
A    01000001         00000000 01000001                               01000001
中       x            01001110 00101101                      11100100 10111000 10101101

注意(你看到不少網頁的源碼上會有相似<meta charset="UTF-8" />的信息,表示該網頁正是用的UTF-8編碼)

 

     ④GBK

      1.GBK的產生

         GBK全稱《漢字內碼擴展規範》(GBK即「國標」、「擴展」漢語拼音的第一個字母,英文名稱:Chinese Internal Code Specification) ,中華人民共和國全國信息技術標準化技術委員會1995年12月1日製訂,國家技術監督局標準化司、電子工業部科技與質量監督司1995年12月15日聯合以技監標函1995 229號文件的形式,將它肯定爲技術規範指導性文件。這一版的GBK規範爲1.0版。由於目前你們使用的主要是GB編碼字庫,此編碼標準只收錄了6763個經常使用漢字,而GB字庫之外大量漢字,只能經過方正女媧補字軟件拼字或其它造字程序補字。儘管補出的漢字在字形上知足須要,但在字體風格、大小、結構方面難以協調統一,而採用手工貼圖的方式補字,更不雅觀。進而言之,若是用戶創建信息系統,或須要查詢新聞、出版內容時,靠補字是沒法實現的。方正開發的GBK字庫,將極大地緩解缺字現象。

        2.GBK的表述

          GBK 亦採用雙字節表示,整體編碼範圍爲 8140-FEFE,首字節在 81-FE 之間,尾字節在 40-FE 之間,剔除 xx7F 一條線。總計 23940 個碼位,共收入 21886 個漢字和圖形符號,其中漢字(包括部首和構件)21003 個,圖形符號 883 個。兼容ASCCI。

2.Python中的編碼轉碼

    1.Python的編碼方式

       由於計算機只能處理數字,若是要處理文本,就必須先把文本轉換爲數字才能處理。最先的計算機在設計時採用8個比特(bit)做爲一個字節(byte),因此,一個字節能表示的最大的整數就是255(二進制11111111=十進制255),若是要表示更大的整數,就必須用更多的字節。好比兩個字節能夠表示的最大整數是65535,4個字節能夠表示的最大整數是4294967295在最新的Python 3版本中,字符串是以Unicode編碼的,也就是說,Python的字符串支持多語言

      2.python中的字符串編碼

        因爲Python的字符串類型是str,在內存中以Unicode表示,一個字符對應若干個字節。若是要在網絡上傳輸,或者保存到磁盤上,就須要把str變爲以字節爲單位的bytes

Python對bytes類型的數據用帶b前綴的單引號或雙引號表示:

x = b'ABC'
>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
>>> '中文'.encode('ascii')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

                   3.Python中的轉碼解碼和len()方法

          encode(轉碼),decode(解碼)。

x = b'ABC'
>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'

         len()函數:計算一個對象長度,若是換成byteslen()函數就計算字節數。

>>> len(b'ABC')
3
>>> len(b'\xe4\xb8\xad\xe6\x96\x87')
6
>>> len('中文'.encode('utf-8'))
6

3.運算符

       1.運算符概念

        運算符用於執行程序代碼運算,會針對一個以上操做數項目來進行運算。例如:2+3,其操做數是2和3,而運算符則是「+」。在vb2005中運算符大體能夠分爲5種類型:算術運算符、鏈接運算符、關係運算符賦值運算符邏輯運算符

    2.Python中的運算符      

運算符優先級 ↓   

 

運算符 描述
** 指數 (最高優先級)
~ + - 按位翻轉, 一元加號和減號 (最後兩個的方法名爲 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法減法
>> << 右移,左移運算符
& 位 'AND'
^ | 位運算符
<= < > >= 比較運算符
<> == != 等於運算符
= %= /= //= -= += *= **= 賦值運算符
is is not 身份運算符
in not in 成員運算符
and or not 邏輯運算符

 

 

       


 

PS(時間緣由,博主沒有對每個運算符介紹,你們自行查閱,養成查找問題習慣)        

相關文章
相關標籤/搜索