python概念知識點筆記?前面我們簡單地介紹了python的曆史、為什麼要學python,python的開發環境的安裝,這一節我們來介紹一些基本概念,接下來我們就來聊聊關于python概念知識點筆記?以下内容大家不妨參考一二希望能幫到您!
前面我們簡單地介紹了python的曆史、為什麼要學python,python的開發環境的安裝,這一節我們來介紹一些基本概念。
進制轉換什麼是進制呢,學過計算機基礎的,大家對這個概念應該不陌生。進制數也就是進位計數制數,是人為定義的帶進位的計數方法。 對于任何一種進制,就表示每一位置上的數運算時都是逢X進一位。 十進制是逢十進一,十六進制是逢十六進一,二進制就是逢二進一,以此類推,x進制就是逢x進位;其中可以使用數字符号的數目稱為基數,基數為n就稱為n進制。舉個簡單的例子,生活中我們使用的是十進制,用數字0-9表示,共計10個數字,故稱作十進制,逢10就向上進一位。
上面講了生活中我們用十進制來進行計算,那麼計算機通信則是采用二進制,顧名思義二進制用兩個數字表示(0和1),逢二進一。
根據以上原則16進制,應該由16個數字和符号表示的,數字世界都是由0-9組成,那麼超過數字9怎麼辦呢,聰明的人類想了一個辦法,用大寫的A、B、C。。。字母表示。因此16進制,就用0-9和A-F表示,共計16個基數,即A表示16進制的10,F表示16進制的15,超過部分向上進一,如16進制的16則表示為10。
pyhon語言中用以下方式表示進制:
python語言中的進制轉換:
#将十進制數字12使用bin内置函數可以将數字轉換成二進制
print(bin(12)) # 0b1100
# 将十進制數字12使用oct内置函數可以将數字轉換成八進制
print(oct(12)) # 0o14
# 将十進制數字12使用hex内置函數可以将數字轉換成十六進制
print(hex(12)) # 0xc
#使用内置函數eval,将其他進制轉為十進制,注意裡面寫字符串,輸出的是int類型
a = eval('0b1100100') # 二進制轉化為十進制
b = eval('0o1102') # 八進制轉化為十進制
c = eval('0xAD') # 十六進制轉化為十進制
#也可以使用int()将其他進制轉化為十進制
a1 = int('1100100', 2) # 二進制轉化為十進制,2可以寫成0
b1 = int('1102', 8) # 八進制轉化為十進制
c1 = int('AD', 16) # 十六進制轉化為十進制
什麼是編碼呢,在計算機曆史的早期,以美國為代表的英語系國家主導了整個計算機行業,26個英文字母組成了多樣的英語單詞、語句、文章。因此,最早的字符編碼規範是ASCII碼,一種8位即1個字節的編碼規範,它可以涵蓋整個英語系的編碼需要。編碼就是把一個字符串用二進制表示,計算機在存儲和讀取的過程中,處理的都是010101這樣的二進制比特流。
後來随着計算機的大量普及,中、日、韓等國家的文字在計算機内表示,ASCII的255位遠遠不夠,于是标準組織就制定了叫做Unicode的萬國碼,他規定任何一個字符至少以2個字節表示,例如英文字母用2個字節表示,而漢字就用3個字節表示。這種編碼雖好,滿足了所有文字的要求,但是他不兼容ASCII,同時還占用最多的内存空間,英文字母明明1個字節就能表示,非要用2個,于是UTF-8編碼應用而生,它規定英文字母系列用1個字節表示,漢字用3個字節表示等等。因此,它兼容ASCII,可以解碼早期的文檔。UTF-8很快就得到了廣泛的應用。
在編碼的發展曆程中,我國還創造了自己的編碼方式,例如GBK,GB2312,BIG5。他們隻局限于在國内使用,不被國外認可。在GBK編碼中,中文漢字占2個字節。
python2.7和python3在字符編碼上存在的差異字符編碼表示:b代表bytes類型,x代表編碼是16進制的,u表示編碼是Unicode的
s='中文'
# 将s轉為Unicode編碼(16進制)
print(s.encode('unicode-escape')) #b'\\u4e2d\\u6587'
s1=b'\\u4e2d\\u6587'
# 将16進制的Unicode解碼為中文
print(s1.decode('unicode-escape')) #中文
# 将s轉為GBK編碼(16進制)
print(s.encode('gbk')) #b'\xd6\xd0\xce\xc4'
s1=b'\xd6\xd0\xce\xc4'
# 将16進制的gbk解碼為中文
print(s1.decode('gbk')) #中文
# 将s轉為utf-8編碼(16進制)
print(s.encode('utf-8')) #b'\xe4\xb8\xad\xe6\x96\x87'
s1=b'\xe4\xb8\xad\xe6\x96\x87'
# 将16進制的gbk解碼為中文
print(s1.decode('utf-8')) #中文
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!