本節主要內容:
1. is和==的區別
2. 編碼的問題
⼀
. is和==
的區別1. id()
通過id()我們可以檢視到⼀個變數表⽰的值在記憶體中的位址
注 ----《在python中,命令⾏**和py⽂
件中的**運⾏的效果可能是不⼀樣的
說了這麼多. 這個id()和is有什麼關係呢. 注意. is⽐較的就是id()計算出來的結果. 由於id是幫我
們檢視某資料(物件) 的記憶體位址. 那麼is⽐較的就是資料(物件)的記憶體位址.
最終我們通過is可以檢視兩個變數使⽤的是否是同⼀個物件.
== 雙等表⽰的是判斷是否相等, 注意. 這個雙等⽐較的是具體的值.
⽽不是記憶體位址
總結:
is ⽐較的是位址
== ⽐較的是值
⼆. 編碼的補充
1. python2中預設使⽤的是ascii碼. 所以不⽀持中⽂. 如果需要在python2中更改編碼.
需要在⽂件的開始編寫:
# -*- encoding:utf-8 -*-
2. python3中: 記憶體中使⽤的是unicode碼.
編碼回顧:
1. ascii : 最早的編碼. ⾥⾯有英⽂⼤寫字⺟, ⼩寫字⺟, 數字, ⼀些特殊字元. 沒有中⽂,
8個01**, 8個bit, 1個byte
2. gbk: 中⽂國標碼, ⾥⾯包含了ascii編碼和中⽂常⽤編碼. 16個bit, 2個byte
3. unicode: 萬國碼, ⾥⾯包含了全世界所有國家⽂字的編碼. 32個bit, 4個byte, 包含了
ascii
4. utf-8: 可變⻓度的萬國碼. 是unicode的⼀種實現. 最⼩字元佔8位
1.英⽂: 8bit 1byte
2.歐洲⽂字:16bit 2byte
3.中⽂:24bit 3byte
綜上, 除了ascii碼以外, 其他資訊不能直接轉換.
在python3的記憶體中. 在程式運⾏階段. 使⽤的是unicode編碼. 因為unicode是萬國碼. 什麼內
容都可以進⾏顯⽰. 那麼在資料傳輸和儲存的時候由於unicode⽐較浪費空間和資源. 需要把
unicode轉存成utf-8或者gbk進⾏儲存. 怎麼轉換呢. 在python中可以把⽂字資訊進⾏編碼.
編碼之後的內容就可以進⾏傳輸了. 編碼之後的資料是bytes型別的資料.其實啊. 還是原來的
資料只是經過編碼之後表現形式發⽣了改變⽽已.
記住: 英⽂編碼之後的結果和源字串⼀致. 中⽂編碼之後的結果根據編碼的不同. 編碼結果
也不同. 我們能看到. ⼀個中⽂的utf-8編碼是3個位元組. ⼀個gbk的中⽂編碼是2個位元組.
06 python的基礎 編碼小知識
1 編碼型別ascii a 00000010 8位 乙個位元組 unicode a 00000000 00000001 00000010 00000100 32位 四個位元組 中 00000000 00000001 00000010 00000110 32位 四個位元組 utf 8 a 001000...
Python基礎06 迴圈
迴圈用於重複執行一些程式塊。從上一講的選擇結構,我們已經看到了如何用縮進來表示程式塊的隸屬關係。迴圈也會用到類似的寫法。for迴圈需要預先設定好迴圈的次數 n 然後執行隸屬於for的語句n次。基本構造是 for 元素 in 序列 statement 舉例來說,我們編輯乙個叫fordemo.py的檔案...
Python基礎06 迴圈
迴圈用於重複執行一些程式塊。從上一講的選擇結構,我們已經看到了如何用縮進來表示程式塊的隸屬關係。迴圈也會用到類似的寫法。for迴圈 for迴圈需要預先設定好迴圈的次數 n 然後執行隸屬於for的語句n次。基本構造是 for 元素 in 序列 statement舉例來說,我們編輯乙個叫fordemo....