『壹』 python123漢字的unicode編碼值
python的默認編碼是ascii,可以通過sys.setdefaultencoding('utf-8')函數設置python的默認編碼。
python中可以通過encode和decode的方式改變數據的編碼,比如:
>>> u'漢字'
u'\u6c49\u5b57'
>>> u'漢字'.encode('utf-8')
'\xe6\xb1\x89\xe5\xad\x97'
>>> u'漢字'.encode('utf-8').decode('utf-8')
u'\u6c49\u5b57'
我們可以通過這兩個函數設置編碼。
那麼,python中的str是什麼類型?
>>> import binascii
>>> '漢字'
'\xba\xba\xd7\xd6'
>>> type('漢字')
>>> print binascii.b2a_hex('漢字')
babad7d6
>>> print binascii.b2a_hex(u'漢字')
Traceback (most recent call last):
File "", line 1, in
UnicodeEncodeError: 'ascii' codec can't encode characters in
position 0-1: ordinal not in range(128)
>>> print binascii.b2a_hex(u'漢字'.encode('utf-8'))
e6b189e5ad97
>>> print binascii.b2a_hex(u'漢字'.encode('gbk'))
babad7d6
binascii是將數據的二進制轉換成ascii,上面的解釋是:『漢字'的類型是str,二進制是babad7d6,u『漢字'是無法轉換成ascii,這樣就報出了開頭的第一個錯誤。解決辦法就是把它.encode(『utf-8')成str類型。因為我命令行是windows默認的GBK編碼,所有u'漢字'.encode(『gbk')的時候,輸出結果和『漢字'結果一樣。
『貳』 python編程(三級)1、編碼、數制
在計算機中使用的是二進制,(為什麼呢,因為二進制計算簡單,可以用電路表示等等很多優點)。但是二進制對閱讀和使用是不友好的,因此需要將二進制轉換為人類使用的語言,英語,中文等,這就是編碼。
最初的編碼就是ASCII編碼,美國信息交換碼。它使用一個位元組,8位二進制,可以表示128個符號。常用的1-9,26個字母以及一些英語符號等。
ascii表是不能表示中文的,因此中文也有專門的編碼,諸如GB2312,GBK等。其它國家也有類似編碼,因此為了方便信息的交流,也就有了統一編碼,Unicode,又叫萬國碼。unicode用0-65535來表示所有字元,Unicode用2-4個位元組存儲。不同的存儲方式,又不同的編碼,這就是UTF-8,UTF-16,UTF-32。utf-8根據字元數字的大小,來決定存儲位元組,存儲英文字元時用1個位元組,存儲漢字時用2個位元組。utf-16,兩個位元組,utf-32,四個位元組。
python3 在內存中使用的是Unicode,萬國碼,默認的編碼是utf-8。
chr() ,轉換為對應Unicode表字元
ord(),轉換為對於Unicode表數字
encode(),編碼,將str轉換為位元組流
decode(),解碼,將位元組流轉換為str
計算機存儲數據的格式是二進制,日常和數學中使用的數字是十進制,為了表達簡化,因此有了十六進制、八進制。
二進制---->十進制---->八進制---》十六進制
10000001 ---》129 ---》201---》81
從上式可以看出來,進制越大,表達更大數時更簡化。
二進制轉十進制 ,按權展開相加
十進制轉二進制,除基取余
二進制轉八進制 ,從右往左,取3位轉換為十進製得到即為8進制,不足3位左邊補0。
八進制轉二進制,每位展開得到3個二進制位
二進制轉十六進制,,從右往左,取4位轉換為十進製得到即為16進制,不足3位左邊補0。
十六進制轉二進制,每位展開得到四個二進制位
int() ,
hex(),轉換為16進制
bin(),轉換為二進制
oct(),轉換為八進制
『叄』 python3字元串都是什麼編碼
編碼
字元串是一種數據類型,但是,字元串比較特殊的是還有一個編碼問題。
因為計算機只能處理數字,如果要處理文本,就必須先把文本轉換為數字才能處理。最早的計算機在設計時採用8個比特(bit)作為一個位元組(byte),所以,一個位元組能表示的最大的整數就是255(二進制11111111=十進制255),如果要表示更大的整數,就必須用更多的位元組。比如兩個位元組可以表示的最大整數是65535,4個位元組可以表示的最大整數是4294967295。
由於計算機是美國人發明的,因此,最早只有127個字母被編碼到計算機里,也就是大小寫英文字母、數字和一些符號,這個編碼表被稱為ASCII編碼,比如大寫字母A的編碼是65,小寫字母z的編碼是122。
Unicode
Unicode把所有語言都統一到一套編碼里,這樣就不會再有亂碼問題了。
Unicode標准也在不斷發展,但最常用的是用兩個位元組表示一個字元(如果要用到非常偏僻的字元,就需要4個位元組)。現代操作系統和大多數編程語言都直接支持Unicode。
現在,捋一捋ASCII編碼和Unicode編碼的區別:ASCII編碼是1個位元組,而Unicode編碼通常是2個位元組。
字母A用ASCII編碼是十進制的65,二進制的01000001;
字元0用ASCII編碼是十進制的48,二進制的00110000,注意字元'0'和整數0是不同的;
漢字已經超出了ASCII編碼的范圍,用Unicode編碼是十進制的20013,二進制的01001110 00101101。
如果把ASCII編碼的A用Unicode編碼,只需要在前面補0就可以,因此,A的Unicode編碼是00000000 01000001。
新的問題又出現了:如果統一成Unicode編碼,亂碼問題從此消失了。但是,如果你寫的文本基本上全部是英文的話,用Unicode編碼比ASCII編碼需要多一倍的存儲空間,在存儲和傳輸上就十分不劃算。
所以,又出現了把Unicode編碼轉化為「可變長編碼」的UTF-8編碼。UTF-8編碼把一個Unicode字元根據不同的數字大小編碼成1-6個位元組,常用的英文字母被編碼成1個位元組,漢字通常是3個位元組,只有很生僻的字元才會被編碼成4-6個位元組。如果你要傳輸的文本包含大量英文字元,用UTF-8編碼就能節省空間:
字元
ASCII
Unicode
UTF-8
A 01000001 00000000 01000001 01000001
中 x 01001110 00101101 11100100 10111000 10101101
從上面的表格還可以發現,UTF-8編碼有一個額外的好處,就是ASCII編碼實際上可以被看成是UTF-8編碼的一部分,所以,大量只支持ASCII編碼的歷史遺留軟體可以在UTF-8編碼下繼續工作。
搞清楚了ASCII、Unicode和UTF-8的關系,我們就可以總結一下現在計算機系統通用的字元編碼工作方式:
在計算機內存中,統一使用Unicode編碼,當需要保存到硬碟或者需要傳輸的時候,就轉換為UTF-8編碼。
用記事本編輯的時候,從文件讀取的UTF-8字元被轉換為Unicode字元到內存里,編輯完成後,保存的時候再把Unicode轉換為UTF-8保存到文件:
瀏覽網頁的時候,伺服器會把動態生成的Unicode內容轉換為UTF-8再傳輸到瀏覽器:
所以你看到很多網頁的源碼上會有類似<meta charset="UTF-8" />的信息,表示該網頁正是用的UTF-8編碼。
Python的字元串
在最新的Python 3版本中,字元串是以Unicode編碼的,也就是說,Python的字元串支持多語言,例如:
>>> print('包含中文的str')
包含中文的str
對於單個字元的編碼,Python提供了ord()函數獲取字元的整數表示,chr()函數把編碼轉換為對應的字元:
1個中文字元經過UTF-8編碼後通常會佔用3個位元組,而1個英文字元只佔用1個位元組。
在操作字元串時,我們經常遇到str和bytes的互相轉換。為了避免亂碼問題,應當始終堅持使用UTF-8編碼對str和bytes進行轉換。
Python源代碼也是一個文本文件,所以,當你的源代碼中包含中文的時候,在保存源代碼時,就需要務必指定保存為UTF-8編碼。當Python解釋器讀取源代碼時,為了讓它按UTF-8編碼讀取,我們通常在文件開頭寫上這兩行
#!/usr/bin/env python3# -*- coding: utf-8 -*-
第二行注釋是為了告訴Python解釋器,按照UTF-8編碼讀取源代碼,否則,你在源代碼中寫的中文輸出可能會有亂碼。
格式化:
在Python中,採用的格式化方式和C語言是一致的,用%實現,舉例如下:
format % (...params)
>>> 'Hello, %s' % 'world''Hello, world'>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)'Hi, Michael, you have $1000000.'
%運算符就是用來格式化字元串的。在字元串內部,%s表示用字元串替換,%d表示用整數替換,%x表示16進制整數,有幾個%?佔位符,後面就跟幾個變數或者值,順序要對應好。如果只有一個%?,括弧可以省略。
格式化整數和浮點數還可以指定是否補0和整數與小數的位數:
>>> '%2d-%02d' % (3, 1)' 3-01'>>> '%.2f' % 3.1415926'3.14'
有些時候,字元串裡面的%是一個普通字元怎麼辦?這個時候就需要轉義,用%%來表示一個%:
>>> 'growth rate: %d %%' % 7'growth rate: 7 %'
『肆』 python語言支持中文嗎
這個問題非常好,貌似以前遇到過。
python使用UTF-8編碼,是可以支持雙位元組的語言,不論法語、德語、西班牙語、俄語、中文。只要操作系統能夠顯示該語言,python就能支持。
『伍』 python3.3中文亂碼與默認編碼格式設定。
我這邊輸出沒有什麼問題。
下面是輸出:
i = 1
s['statuses'][0]['text'] = 出軌是男人的天性,防小三是女人一生的戰役。
s['statuses'][1]['text'] = 漂亮女孩有時候比普通女孩更可憐。男人可以很坦然的拒絕普通女孩的感情和身體,但是男人會欺騙漂亮女孩的感情從而得到她的身體。這就是為什麼古人說紅顏命薄,你們感受一下。
s['statuses'][2]['text'] = 留幾手教你如何利用空閑時間學習
。。。
i = 2
s['statuses'][20]['text'] = 罵人,其實內容並不重要,一個小蘿莉,滿嘴臟話,也嚇不住人。
。。。
i = 3
s['statuses'][40]['text'] = 我不就是在你家住的時候吃了幾只燒雞沒給你錢么?至於這么編排我么?這情節都是你在哪本言情小說里扒出來的吧?
後面省略了。
前提就是這個樣子的
『陸』 如何用python 輸出對應的俄文
a = '俄文字母或者文字'
a..decode('utf-8').encode('koi8_u')
附錄:
各國語言編碼對照表
網頁鏈接
『柒』 python中的sys.setdefaultencoding('utf8')是什麼呢
設置默認的編碼方式 為utf-8 支持中文的。
『捌』 求幫助,編碼轉換的問題 python 3.4.0
一 預備知識
字元集
1, 常用字元集分類
ASCII及其擴展字元集
作用:表語英語及西歐語言。
位數:ASCII是用7位表示的,能表示128個字元;其擴展使用8位表示,表示256個字元。
范圍:ASCII從00到7F,擴展從00到FF。
ISO-8859-1字元集
作用:擴展ASCII,表示西歐、希臘語等。
位數:8位,
范圍:從00到FF,兼容ASCII字元集。
GB2312字元集
作用:國家簡體中文字元集,兼容ASCII。
位數:使用2個位元組表示,能表示7445個符號,包括6763個漢字,幾乎覆蓋所有高頻率漢字。
范圍:高位元組從A1到F7, 低位元組從A1到FE。將高位元組和低位元組分別加上0XA0即可得到編碼。
BIG5字元集
作用:統一繁體字編碼。
位數:使用2個位元組表示,表示13053個漢字。
范圍:高位元組從A1到F9,低位元組從40到7E,A1到FE。
GBK字元集
作用:它是GB2312的擴展,加入對繁體字的支持,兼容GB2312。
位數:使用2個位元組表示,可表示21886個字元。
范圍:高位元組從81到FE,低位元組從40到FE。
GB18030字元集
作用:它解決了中文、日文、朝鮮語等的編碼,兼容GBK。
位數:它採用變位元組表示(1 ASCII,2,4位元組)。可表示27484個文字。
范圍:1位元組從00到7F; 2位元組高位元組從81到FE,低位元組從40到7E和80到FE;4位元組第一三位元組從81到FE,第二四位元組從30到39。
UCS字元集
作用:國際標准 ISO 10646 定義了通用字元集 (Universal Character Set)。它是與UNICODE同類的組織,UCS-2和UNICODE兼容。
位數:它有UCS-2和UCS-4兩種格式,分別是2位元組和4位元組。
范圍:目前,UCS-4隻是在UCS-2前面加了0×0000。
UNICODE字元集
作用:為世界650種語言進行統一編碼,兼容ISO-8859-1。
位數:UNICODE字元集有多個編碼方式,分別是UTF-8,UTF-16和UTF-32。
2 ,按所表示的文字分類
語言 字元集 正式名稱
英語、西歐語 ASCII,ISO-8859-1 MBCS 多位元組
簡體中文 GB2312 MBCS 多位元組
繁體中文 BIG5 MBCS 多位元組
簡繁中文 GBK MBCS 多位元組
中文、日文及朝鮮語 GB18030 MBCS 多位元組
各國語言 UNICODE,UCS DBCS 寬位元組
編碼
UTF-8:採用變長位元組 (1 ASCII, 2 希臘字母, 3 漢字, 4 平面符號) 表示,網路傳輸, 即使錯了一個位元組,不影響其他位元組,而雙位元組只要一個錯了,其他也錯了,具體如下:
如果只有一個位元組則其最高二進制位為0;如果是多位元組,其第一個位元組從最高位開始,連續的二進制位值為1的個數決定了其編碼的位元組數,其餘各位元組均以10開頭。UTF-8最多可用到6個位元組。
UTF-16:採用2位元組,Unicode中不同部分的字元都同樣基於現有的標准。這是為了便於轉換。從 0×0000到0×007F是ASCII字元,從0×0080到0×00FF是ISO-8859-1對ASCII的擴展。希臘字母表使用從0×0370到 0×03FF 的代碼,斯拉夫語使用從0×0400到0×04FF的代碼,美國使用從0×0530到0×058F的代碼,希伯來語使用從0×0590到0×05FF的代 碼。中國、日本和韓國的象形文字(總稱為CJK)佔用了從0×3000到0×9FFF的代碼;由於0×00在c語言及操作系統文件名等中有特殊意義,故很 多情況下需要UTF-8編碼保存文本,去掉這個0×00。舉例如下:
UTF-16: 0×0080 = 0000 0000 1000 0000
UTF-8: 0xC280 = 1100 0010 1000 0000
UTF-32:採用4位元組。
優缺點
UTF-8、UTF-16和UTF-32都可以表示有效編碼空間 (U+000000-U+10FFFF) 內的所有Unicode字元。
使用UTF-8編碼時ASCII字元只佔1個位元組,存儲效率比較高,適用於拉丁字元較多的場合以節省空間。
對於大多數非拉丁字元(如中文和日文)來說,UTF-16所需存儲空間最小,每個字元只佔2個位元組。
Windows NT內核是Unicode(UTF-16),採用UTF-16編碼在調用系統API時無需轉換,處理速度也比較快。
採用UTF-16和UTF-32會有Big Endian和Little Endian之分,而UTF-8則沒有位元組順序問題,所以UTF-8適合傳輸和通信。
UTF-32採用4位元組編碼,一方面處理速度比較快,但另一方面也浪費了大量空間,影響傳輸速度,因而很少使用。
『玖』 python3.4 編碼有哪些
Python3中的編碼問題前,第一個段落對位元組、ASCII與Unicode與UTF-8等進行基本介紹,如果不對這幾種編碼犯頭暈,可直接跳過。
ASCII與Unicode與UTF-8與GBK
首先從老大哥說起。跟很多人一樣,大學讀了這么久,久仰ASCII編碼的大名。要說這個老大哥,我們再先從位元組說起。一個位元組包括八個比特位,每個比特位表示0或1,一個位元組即可表示從00000000到11111111共2^8=256個數字。一個ASCII編碼使用一個位元組(除去位元組的最高位作為作奇偶校驗位),ASCII編碼實際使用一個位元組中的7個比特位來表示字元,共可表示2^7=128個字元。比如那時寫C語言的程序,就經常要背下ASCII編碼中的01000001(即十進制的65)表示字元『A』,01000001加上32之後的01100001(即十進制的97)表示字元『a』。現在打開Python,調用chr和ord函數,我們可以看到Python為我們對ASCII編碼進行了轉換。
第一個00000000表示空字元,因此ASCII編碼實際上只包括了
字母、標點符號、特殊符號等共127個字元。因為ASCII是在美國出生的,對於由字母組成單詞進而用單詞表達的英文來說也是夠了。但是中國人、日本人、
韓國人等其他語言的人不服了。中文是一個字一個字,ASCII編碼用上了渾身解數256個字元都不夠用。
因此後來出現了Unicode編碼。Unicode編碼通常由兩個位元組組成,共表示256*256個字元,即所謂的UCS-2。某些偏僻字還會用到四個位元組,即所謂的UCS-4。也就是說Unicode標准也還在發展。但UCS-4出現的比較少,我們先記住:最原始的ASCII編碼使用一個位元組編碼,但由於語言差異字元眾多,人們用上了兩個位元組,出現了統一的、囊括多國語言的Unicode編碼。
在Unicode中,原本ASCII中的127個字元只需在前面補一個全零的位元組即可,比如前文談到的字元『a』:01100001,在Unicode中變成了00000000 01100001。不久,美國人不開心了,吃上了世界民族之林的大鍋飯,原本只需一個位元組就能傳輸的英文現在變成兩個位元組,非常浪費存儲空間和傳輸速度。
人們再發揮聰明才智,於是出現了UTF-8編碼。因為針對的是空間浪費問題,因此這種UTF-8編碼是可變長短的,從英文字母的一個位元組,到中文的通常的三個位元組,再到某些生僻字的六個位元組。解決了空間問題,UTF-8編碼還有一個神奇的附加功能,那就是兼容了老大哥的ASCII編碼。一些老古董軟體現在在UTF-8編碼中可以繼續工作。
注意除了英文字母相同,漢字在Unicode編碼和UTF-8編碼中通常是不同的。比如漢字的『中』字在Unicode中是01001110
00101101,而在UTF-8編碼中是11100100 10111000
10101101。
我們祖國母親自然也有自己的一套標准。那就是GB2312和GBK。當然現在挺少看到。通常都是直接使用UTF-8。記得我唯一一次看到GB編碼的網頁,是一個成人網站。
Python3中的默認編碼
Python3中默認是UTF-8,我們通過以下代碼:
import sys
sys.getdefaultencoding()
可查看Python3的默認編碼。
Python3中的encode和decode
Python3中字元編碼經常會使用到decode和encode函數。特別是在抓取網頁中,這兩個函數用的熟練非常有好處。我的理解,encode的作用,使我們看到的直觀的字元轉換成計算機內的位元組形式。decode剛好相反,把位元組形式的字元轉換成我們看的懂的、直觀的、「人模人樣」的形式。如下圖。
\x表示後面是十六進制,\xe4\xb8\xad即是二進制的11100100 10111000
10101101。也就是說漢字『中』encode成位元組形式,是11100100 10111000
10101101。同理,我們拿11100100
10111000 10101101也就是\xe4\xb8\xad來decode回來,就是漢字『中』。完整的應該是b'\xe4\xb8\xad',在Python3中,以位元組形式表示的字元串則必須加上前綴b,也就是寫成上文的b'xxxx'形式。
前文說的Python3的默認編碼是UTF-8,所以我們可以看到,Python處理這些字元的時候是以UTF-8來處理的。因此從上圖可以看到,就算我們通過encode('utf-8')特意把字元encode為UTF-8編碼,出來的結果還是相同:b'\xe4\xb8\xad'。
明白了這一點,同時我們知道UTF-8兼容ASCII,我們可以猜想大學時經常背誦的『A』對應ASCII中的65,在這里是不是也能正確的decode出來呢。十進制的65轉換成十六進制是41,我們嘗試下:
b'\x41'.decode()
結果如下。果然是字元『A』
Python3中的編碼轉換
據說字元在計算機的內存中統一是以Unicode編碼的。只有在字元要被寫進文件、存進硬碟或者從伺服器發送至客戶端(例如網頁前端的代碼)時會變成utf-8。但其實我比較關心怎麼把這些字元以Unicode的位元組形式表現出來,露出它在內存中的廬山正面目的。這里有個照妖鏡:
xxxx.encode/decode('unicode-escape')
輸出如下
b'\\u4e2d'還是b'\u4e2d,一個斜杠貌似沒影響。同時可以發現在shell窗口中,直接輸'\u4e2d'和輸入b'\u4e2d'.decode('unicode-escape')是相同的,都會列印出漢字『中』,反而是'\u4e2d'.decode('unicode-escape')會報錯。說明說明Python3不僅支持Unicode,而且一個『\uxxxx』格式的Unicode字元可被辨識且被等價於str類型。
如果我們知道一個Unicode位元組碼,怎麼變成UTF-8的位元組碼呢。懂了以上這些,現在我們就有思路了,先decode,再encode。代碼如下:
xxx.decode('unicode-escape').encode()
測試如下:
可以看到最後輸出的UTF-8位元組與上面的相同。嘗試成功。所以其他的編碼之間的轉換,大概也是如此。
最後的擴展
還記得剛剛那個ord嗎。時代變遷,老大哥ASCII被人合並,但ord還是有用武之地。試試ord('中'),輸出結果是20013。20013是什麼呢,我們再試試hex(ord('中')),輸出結果是'0x4e2d',也就是20013是我們在上文見面了無數次的x4e2d的十進制值。這里說下hex,是用來轉換成十六進制的函數,學過單片機的人對hex肯定不會陌生。
最後的擴展,在網上看到的他人的問題。我們寫下類似於'\u4e2d'的字元,Python3知道我們想表達什麼。但是讓Python讀取某個文件的時候出現了'\u4e2d',是不是計算機就不認識它了呢?後來下文有人給出了答案。如下:
import codecs
file = codecs.open( "a.txt", "r", "unicode-escape" )
u = file.read()
print(u)
『拾』 day-04 總結python字元串
1.什麼是字元串
序列,有序,不可變的
用單引號或者雙引號任意字元集,
2,字元串中的字元
普通字元:ན', 'sdfsdfsd', '+ + (**&^%$#@@', '發技術規范舉案說法'
'''
python中的字元採用的是unicode編碼
1.什麼是編碼
就是數字和字元的一一對應的,其中字元對應的數字就是字元的編碼
a - 97
b - 98
2.編碼方式
ASCII碼表 :針對數字字元,字母字元(26個小寫字母和26個大寫字母),一些英文中對應的符號進行編碼
小寫字母要大於大寫字母的編碼值,採用一個位元組對字元進行編碼,只能對128個字元進行編碼
Unicode碼 :Unicode碼包含了ASCII碼表,同時能夠對世界上所有語言對應的符號進行編碼,
採用兩個位元組進行編碼,能夠編碼65536個字元
3.兩個函數
chr(編碼值)--將字元編碼值轉化為字元
ord(字元)-- 獲取字元對應的編碼值
中文編碼范圍 0x4e00~~~~~0x9fa5
一旦一個字元串確定了,那麼字元串中每個字元的位置就確定了,而且每個字元會對應一個表示其位置和順序的下標值
1,下標(索引)
字元串中的每一個字元都有一個下標,代表在字元串中的位置
下標范圍是:0到字元串長度---1 0(代表第一個字元的位置)
-1 ~ 字元串長度 -1(代表字元串中最後一個字元的位置)
'abc' # ''
獲取單個字元
語法:字元串[下標]--獲取字元串中指定下標對應的字元
說明 字元串--可以是字元串常量,也可以是字元串變數
[]---固定寫法
下標--字元的下標,不能越界。
獲取部分字元
語法:字元串[開始下標:結束下標:步長]
步長-- 一個整數
功能: 從開始下標獲取到結束下標前位置,每次下標值增加步長,結果是字元串
注意:當步長是整數,開始下標對應的字元要在結束下標的前面
當步長是負數,開始下標對應的字元要在結束下標的後面
方法2:字元串[開始下表:結束下標](相當於步長是一)
獲取部分字元,省略下標
獲取部分字元的時候開始下標和結束下標都可以省略
a.開始下標省略
字元串[:結束下標:步長] 或者字元串[:結束下表]
字元串是正數:從字元串開頭開始往後獲取
字元串是負數:從字元串結尾開始往前獲取
結束下標省略
字元串[開始下標::步長]
步長是正數,從開始下標從前往後獲取到字元串最後
步長是負數,從開始下標從後往前獲取到字元串開始
,加法運算
字元串1 + 字元串2 將兩個字元串拼接在一起,產生一個新的字元串
乘法運算
字元串 * n(正整數):字元串中的內容重復n次產生一個新的字元串
比較運算符
a. == !=
字元串1 == 字元串2 ---------判斷兩個字元串是否相等
b.> ,< , >= ,<= (所有的大寫字母編碼都比小寫的編碼小)
兩個字元串比較大下:從第一個開始,找到第一對不同的字元,然後比較他們的編碼值的大小
in 和 not in
字元串1 in 字元串2 :判斷字元串2是否包含字元串1
字元串1 not in 字元串2 :判斷字元串2是否不包含字元串1
len函數
len(序列)------- 獲取序列的長度
len(字元串)----獲取字元串中字元的個數
str函數
str(數據): 將數據轉換成字元串
其他數據轉換成字元串
所有的數據都可以轉換成字元串,轉換的時候就是在數據的值的最外面加引號
補充:系統對應的類型名不能用來給變數命名
字元串轉其他類型
字元串轉整數: int(字元串) 去掉引號後本身就是個整數的字元串才能轉
字元串轉浮點型: Float(字元串)
字元串轉布爾: boll(字元串) ,除了空串會轉化成False,其他的都會轉化成True
格式字元串
指的是字元串中通過格式佔位符來表示字元串中變化,然後後面再通過其他的值來給佔位符賦值
含有格式佔位符的字元串 % (佔位符對應的值)
說明:
含有格式佔位符有固定寫法,可以有多個
%----固定寫法
()----裡面值 的個數要和前面的格式佔位符一一對應
%d--整數
%s--字元串
%f--小數
%c--字元(可以將數字轉換成字元)
字元串.capitalize() - 將字元串第一個字元轉換成大寫
2.字元串對齊
字元串.center(width, fillchar) - 居中
字元串.ljust(width, fillchar) - 左對齊
字元串.rjust(width, fillchar) - 右對齊
width - 正整數,表示新的字元串的寬度
fillchar - 字元, 填充字元串
字元串.isalpha 若字元串至少有一個字元,並且所有字元都是字母就返回True,否則返回False
字元串。isdigit() 若字元串中只包含數字就返回True,否則返回False
若字元串中只包含數字字元,則返回True,否則返回 False
3.join(seq)
字元串1.join(字元串2): 將字元串1的內容插入到字元串2的每個字元之間
max(字元串) 編碼最大
min(字元串)
count(str)|返回 str 在 string 裡面出現的次數
|islower()|如果字元串中包含至少一個區分大小寫的字元,並且所有這些(區分大小寫的)字元都是小寫,則返回 True,否則返回 False
expandtabs(tabsize=8)|把字元串 string 中的 tab 符號轉為空格,tab 符號默認的空格數是 8 。
|isspace()|如果字元串中只包含空白,則返回 True,否則返回 False
endswith(suffix)|檢查字元串是否以 obj 結束,如果beg 或者 end 指定則檢查指定的范圍內是否以 obj 結束,如果是,返回 True,否則返回 False.