轉義與不轉義:
字元串是以單引号
'
或雙引号
"
括起來的任意文本,\轉義,Python還允許用
r''
表示
''
内部的字元串預設不轉義
換行:\n
指令行中輸入print('''回車表示開始換行輸入,提示符由
>>>
變為
...,
當輸入完結束符
```
和括号
)
後,執行該語句并列印結果
在最新的Python 3版本中,字元串是以Unicode編碼的,對于單個字元的編碼,Python提供了
ord()
函數擷取字元的整數表示,
chr()
函數把編碼轉換為對應的字元。
>>> ord('A')
65
以Unicode表示的
str
通過
encode()
方法可以編碼為指定的
bytes,
純英文的
str
可以用
ASCII
編碼為
bytes
,内容是一樣的,含有中文的
str
可以用
UTF-8
編碼為
bytes
。含有中文的
str
無法用
ASCII
編碼,因為中文編碼的範圍超過了
ASCII
編碼的範圍,Python會報錯
>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
如果我們從網絡或磁盤上讀取了位元組流,那麼讀到的資料就是
bytes
。要把
bytes
變為
str
,就需要用
decode()
方法
>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
要計算
str
包含多少個字元,可以用
len()
函數
>>> len('ABC')
3
>>> len('中文')
2
在操作字元串時,我們經常遇到
str
和
bytes
的互相轉換。為了避免亂碼問題,應當始終堅持使用UTF-8編碼對
str
和
bytes
進行轉換。
由于Python源代碼也是一個文本檔案,是以,當你的源代碼中包含中文的時候,在儲存源代碼時,就需要務必指定儲存為UTF-8編碼。當Python解釋器讀取源代碼時,為了讓它按UTF-8編碼讀取,我們通常在檔案開頭寫上這兩行:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
第一行注釋是為了告訴Linux/OS X系統,這是一個Python可執行程式,Windows系統會忽略這個注釋;
第二行注釋是為了告訴Python解釋器,按照UTF-8編碼讀取源代碼,否則,你在源代碼中寫的中文輸出可能會有亂碼。
申明了UTF-8編碼并不意味着你的
.py
檔案就是UTF-8編碼的,必須并且要確定文本編輯器正在使用UTF-8 without BOM編碼:
格式化:
1.在Python中,采用的格式化方式和C語言是一緻的,用
%
實作,舉例如下:
>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'
你可能猜到了,
%
運算符就是用來格式化字元串的。在字元串内部,
%s
表示用字元串替換,
%d
表示用整數替換,有幾個
%?
占位符,後面就跟幾個變量或者值,順序要對應好。如果隻有一個
%?
,括号可以省略。
常見的占位符有:
占位符 | 替換内容 |
---|---|
%d | 整數 |
%f | 浮點數 |
%s | 字元串 |
%x | 十六進制整數 |
有些時候,字元串裡面的
%
是一個普通字元怎麼辦?這個時候就需要轉義,用
%%
來表示一個
%
:
2.format()