1 字符串和編碼
捋一捋ASCII編碼和Unicode編碼的區(qū)別
A 用ASCII編碼是十進制的 65,二進制的01000001
O 用ASCII編碼是十進制的48,二進制的00110000
image.png

image.png

image.png
2 python的字符串
- python的字符串是以Unicode編碼的,所以支持多語言
- 單字符與編碼之間的轉(zhuǎn)換函數(shù)
>>> ord('A')
65
>>> ord('中')
20013
>>> chr(65)
A
- 字符串用于網(wǎng)絡(luò)傳輸或者保存到硬盤,需轉(zhuǎn)換為字節(jié)bytes,python對字節(jié)類型的數(shù)據(jù)用
b加引號表示
x = b'ABC'
# 區(qū)分'ABC' 與 b'ABC'的區(qū)別
# 'ABC' 是一個 str,b'ABC'雖然顯示和前者一樣,但事實上bytes的每個字符都只占用一個字節(jié),而python中str每個字符占用3個字節(jié),3*8比特(bit)。
- encode( ) 與 decode( )
# decode()用于將bytes轉(zhuǎn)換為str,errors='ignore'可以忽略錯誤的字節(jié)
>>>b'\xe4\xb8\xad\xff'.decode('utf-8', errors='ignore')
'中'
# 計算字符串長度 len()
>>> len(b'ABC')
3
>>> len(b'\xe4\xb8\xad\xe6\x96\x87')
6
>>> len('中文'.encoding('utf-8'))
6
# encode()恰好相反,將str進行編碼
##注意:由于Python源代碼也是一個文本文件,所以,當(dāng)你的源代碼中包含中文的時候,在保存源代碼時,就需要務(wù)必指定保存為UTF-8編碼。當(dāng)Python解釋器讀取源代碼時,為了讓它按UTF-8編碼讀取,我們通常在文件開頭寫上這兩行
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
- python 字符串格式化 ,%與format()
在Python中,采用的格式化方式和c語言是一致的,用%實現(xiàn),例:
>>> 'Hello, %s' % 'world'
'Hello world'
>>> 'Hi , %s , you should eating %s' % ('girl', 'food') #多個變量必須用小括號
'Hi , girl , you should eating food'
- %d 整數(shù)
- %f 浮點數(shù)
- %s 字符串, %s永遠起作用,可把任何數(shù)據(jù)類型轉(zhuǎn)換為字符串
- %x 十六進制整數(shù)
# 格式化整數(shù)和浮點數(shù)可以指定是否補0和整數(shù)與小數(shù)的位數(shù)
# -*- coding: utf-8 -*-
print('%2d-%2d' % (3,1))
print('%.2f' % 3.141592653)
#打印結(jié)果
3 - 1
3.14
另一種格式化的方法是format(),它會用傳入的參數(shù)依次替換字符串內(nèi)的占位符{0}、{1}......,不過比較麻煩
>>>'Hello, {0}, 成績提升了 {1:.1f}%'.format('小明',17.124)
'Hello, 小明, 成績提升了 17.1%'
ps: 今日問題
解決終端 pyhton 不能輸入中文的問題
原來是終端配置搞的鬼,打開偏好設(shè)置,然后按圖設(shè)置即可解決~

image.png
