python基礎-06

來源:互聯網
上載者:User

標籤:編寫   ==   ascii   檔案中   底線   檔案的   情況下   小數   儲存   

is 和 == 的區別

is 比較的是記憶體位址

== 比較的是值

id(變數)  返回給你這個變數的記憶體位址

 

例子:s="周杰倫"

     s1=s

     print(id(s),id(s1))

     

特殊的: lst1=[1,4,7]

       lst2=[1,4,7]

       lst1.append("小白")

       print(lst1,lst2)

       print(id(lst1),id(lst2))  #記憶體位址不同

   

小資料池(常量池): 把我們使用過的值儲存在小資料池中.供其他的變數使用.

小資料池給數字和字串使用, 其他資料類型不存在.

對於數字: -5~256是會被加到小資料池中的. 每次使用都是同一個對象.

對於字串:

1. 如果是純文字資訊和底線. 那麼這個對象會被添加到小資料池.

2. 如果是帶有特殊字元的. 那麼不會被添加到小資料池. 每次都是新的.

3. 如果是單一字母*n的情況. ‘a‘*20, 在20個單位內是可以的. 超過20個單位就不會添加到小資料池中.

 

注意(一般情況下): 在py檔案中. 如果你只是單純的定義一個字串. 那麼一般情況下都是會

被添加到小資料池中的. 我們可以這樣認為: 在使用字串的時候, python會幫我們把字串

進行緩衝, 在下次使用的時候直接指向這個字串即可. 可以節省很多記憶體.

      

編碼

ASCII    8bit 1byte  英文小寫大寫字母,特殊字元,數字

GBK       16bit 2byte  中文  相容ASCII

UNICODE    32bit 4byte   萬國碼  占空間

UTF-8         UNICODE升級版   英文 1byte  中文 3byte

 

1. python2中預設使用的是ASCII碼. 所以不支援中文. 如果需要在Python2中更改編碼,需要在檔案的開始編寫:# -*- encoding:utf-8 -*-

2. python3中:記憶體中使用的是unicode碼

 

傳輸過程中用UTF-8或者GBK.  

記憶體中,程式啟動並執行過程中,編碼是UNICODE.

 

在程式中,字串可以編碼成bytes類型的資料.

編碼encode

編碼之後的結果和原來的結果其實是一樣的,只是看著不一樣.

python基礎-06

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.