<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ### 2.3.3 字符的機內表示 和數值一樣,字符在計算機內部也是用二進制數表示的,這個二進制數稱為該字符的編碼。于是,字符串在計算機內自然就用二進制數的序列表示。可以推知,對字符和字符串的 所有操作,實質上都是對二進制數的運算。我們在屏幕上看到各個字符有各自的形狀,這只 是計算機的顯示系統將字符的編碼映射到特定屏幕像素組合的結果。 表示每個字符的二進制編碼具體等于幾并不重要,我們可以用(1111)2 表示字符 A,也可 以用(0000)2 表示字符 A,這不會帶來什么本質的不同,事實上只要確保不同字符有不同的 編碼即可。但是,為了在不同計算機之間能夠交換信息,避免發生一臺計算機上的字符 A(假設編碼是(0000)2)傳給另一臺計算機后被解釋成字符 B(假設(0000)2 在這臺機器上恰 好是 B 的編碼),我們需要統一字符編碼。基于這個思想,人們制定了字符集編碼標準—— 定義所支持的字符集以及每個字符的二進制編碼。 由于計算機是美國人發明的,所以較早出現的一個編碼標準是根據美國的使用情況制定 的標準,稱為 ASCII①。這個標準也是最重要的,幾乎所有計算機都支持 ASCII 的字符編碼。 ASCII 使用一個字節的 7 位二進制位來表示字符(最高位恒為 0),這樣就只能支持 27 = 128 個字符,各字符的編碼如果用十進制表示就是 0~127。ASCII 所定義的字符包括大小寫英 文字母、阿拉伯數字、標點符號、空格、回車、換行等,它們分為可打印字符和控制字符兩 類。 > ① American Standard Code for Information Interchange 的首字母縮寫。 Python 中提供了兩個與字符編碼有關的函數:ord()函數用于從字符得到其編碼,chr() 函數用于從編碼得出對應的字符。例如: ``` >>> ord('A') 65 >>> ord('a') 97 >>> ord('8') 56 >>> ord(' ') 32 >>> chr(64) '@' >>> chr(10) '\n' >>> chr(13) '\r' ``` 對此例有幾點說明:第四個例子是求空格字符的編碼(32);第六個例子說明編碼 10 對應的 字符可以用轉義字符\n 表示,它其實就是換行字符;第七個例子說明編碼 13 對應的字符可 以用轉義字符\r 表示,它其實就是回車字符。換行和回車都是控制字符的例子,控制字符 不像字母數字那樣有可打印、顯示的形狀,但在程序中可以用轉義字符來表示某些控制字符。 ASCII 編碼的一個問題是支持的字符太少,對美國人來說夠用,但對其他國家來說遠遠 不夠。因此產生了各種對 ASCII 的擴充標準。例如針對歐洲語言的 Latin-1 標準將一個字節 的最高位也用上,從而在 ASCII 的基礎上增加了 128 個字符。 中國的漢字也是字符,并且數量很大,用一個字節編碼是遠遠不夠的。較早的國家標準 GB2312 采用兩個字節來對漢字編碼,共定義了 6763 個漢字。后來產生了 GBK 規范,仍然 用兩個字節編碼,但支持 2 萬多個漢字。最新的國家標準是 GB18030,它最多可用四個字 節編碼,支持 7 萬多個漢字。 為了將全世界的字符編碼統一起來,國際標準化組織 ISO 制定了一個龐大的字符編碼 標準 Unicode。Unicode 最多用四個字節的編碼,因此可以囊括地球上所有語言所用到的所 有字符,目前已經得到廣泛支持。較新版本的 Python 語言(包括 2.7 版)都支持 Unicode。 下面我們舉例說明 Python 對非 ASCII 字符的處理方法。最簡單的方法是使用 Unicode 字符串。Python 語言中,在字符串前面加個前綴 u 就表示 Unicode 字符串,其中可以使用 任意 Unicode 字符。例如: ``` >>> print u'A\xc4B' A?B ``` 在這個例子中,字符串由三個字符構成:頭尾兩個字符分別是 A、B,可以從鍵盤直接 輸入;中間的字符是 Latin-1 字符集中的字符 ?,無法從鍵盤直接輸入,但可以通過輸入十 六進制編碼(即 c4,另外\x 是十六進制數的標志)的方式來輸入。 再看漢字的例子: ``` >>> '漢' \xba\xba >>> print '漢' 漢 >>> print '\xba\xba' 漢 ``` 從第一條語句可以看出,我們輸入的“漢”字在機器內部被表示成了兩個字節的編碼,該編碼按十六進制表示等于 baba,亦即 GBK 規范中“漢”的編碼①。接下來兩條 print 語句 表明,字符“漢”和編碼“\xba\xba”作用是一樣的。 如果需要將漢字和 ASCII 字符、Latin-1 字符等混合在一起構成字符串,那就只能用 Unicode 字符串。例如,“漢”在 Unicode 中的編碼是 6c49,在 Unicode 字符串中可以用\u6c49 代表“漢”。結合前面的例子,讀者應能理解下面這條語句的結果: ``` >>> print u'A\u6c49\xc4B' A 漢 腂 ``` 如果希望 Python 程序能夠處理包含漢字的字符串,用 Unicode 字符串是最可靠的做法。 具體細節在此從略。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看