<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
“深入認識Python內建型別”這部分的內容會從原始碼角度為大家介紹Python中各種常用的內建型別。
在介紹常用型別str之前,在上一篇部落格:Python原始碼學習筆記:深入認識Python內建型別——bytes已經為大家介紹了和str息息相關的bytes的原始碼知識。這篇部落格回味大家分析str相關的原始碼。
計算機儲存的基本單位是位元組,由8個位元位組成。由於英文只由26個字母加若干符號組成,因此英文字元可以直接用位元組來儲存。但是其他語言(例如中日韓等),由於字元眾多,不得不使用多個位元組來進行編碼。
隨著計算機技術的傳播,非拉丁文字元編碼技術不斷髮展,但是仍然存在兩個比較大的侷限性:
由於編碼方式不統一,開發人員就需要在不同編碼之間來回轉換,不可避免地會出現很多錯誤。為了解決這類不統一問題,Unicode標準被提出了。Unicode對世界上大部分文字系統進行整理、編碼,讓計算機可以用統一的方式處理文字。Unicode目前已經收錄了超過14萬個字元,天然地支援多語言。(Unicode的uni就是“統一”的詞根)
Python在3之後,str物件內部改用Unicode表示,因此在原始碼中成為Unicode物件。使用Unicode表示的好處是:程式核心邏輯統一使用Unicode,只需在輸入、輸出層進行解碼、編碼,可最大程度地避免各種編碼問題。
圖示如下:
問題:由於Unicode收錄字元已經超過14萬個,每個字元至少需要4個位元組來儲存(這裡應該是因為2個位元組不夠,所以才用4個位元組,一般不會使用3個位元組)。而英文字元用ASCII碼錶示僅需要1個位元組,使用Unicode反而會使頻繁使用的英文字元的開銷變為原來的4倍。
首先我們來看一下Python中不同形式的str物件的大小差異:
>>> sys.getsizeof('ab') - sys.getsizeof('a') 1 >>> sys.getsizeof('一二') - sys.getsizeof('一') 2 >>> sys.getsizeof('
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45