### **字符串**
字符串本質是:字符序列,python的字符串是不可改變的,我們無法對原字符串進行任何修改,但可以將字符串的一部分復制到新建的字符串,達到看起來修改的效果
<br>
**字符串的編碼**
python3直接支持unicode, 可以標識世界上任何書面語言的字符,python3的字符默認就是16位unicode編碼, ASII碼是Unicode編碼的子級
使用內置函數ord()可以把字符串轉換成對應的Unicode碼,
使用內置函數chr()可以把十進制數字轉換成對應的字符
字符串 的定義 可以使用" "、' '、''' '''來定義
<br>
**轉義字符**
我們可以使用“、+特殊字符”,實現某些使用字符表示的效果
轉義字符
| 轉義字符 | 描述 |
| --- | --- |
| \ 在行尾 | 續行符 |
| \b | 退格 |
| \n | 換行 |
| \t | 橫向制表符 |
| \r | 回車 |
```
# \n使用
>>>a = 'i\nlove\nyou'
>>>print(a)
i
love
you
# \使用
>>>b='i\'m a teacher'
>>>print(b)
i'm a teacher
# \ 續行符
>>>print('asdfasdfasdfasd\
fasdfasdfasdf')
asdfasdfasdfasdfasdfasdfasdf
```
<br>
**字符串拼接**
可以使用 + 將多個字符串拼接起來。 例:'aa' + 'bb' = 'aabb'
* 如果 + 兩邊都是字符串,則拼接
* 如果 + 兩邊都是數字,則加法運算
* 如果 + 兩邊類型不同,則拋出異常
可以將多個字符串直接放到一起實現拼接。例 'aa' 'bb' = 'aabb'
```
>>>a = 'asdf'+'awsdf'
>>>a
'asdfawsdf'
>>>b = 'dfgsd''asdfasdf'
>>>b
'dfgsdasdfasdf'
```
<br>
**字符串復制**
使用 * 可以實現字符串復制
```
>>>a = 'abc'*3
>>>a
abcabcabc
```
<br>
**不換行打印**
正常使用print時,會自動加上一個換行符,可以通過參數 end = '任意內容' 實現末尾添加任何內容
創建python
print('abc', end=' ')
print('abc', end='##')
pring('abc)
運行結果: abc abc##abc
<br>
**從控制臺讀取字符串**
我們可以使用 input() 從控制臺讀取鍵盤輸入的內容
```
>>>myname = input('請輸入名字:')
請輸入名字:浩哥
>>>myname
'浩哥'
```
<br />
**使用 [] 提取字符**
我們可以通過在字符串后面加 [] ,提取單個字符
```
>>>a = 'abcdefghijklmnopqrstuvwxyz'
>>>a[0]
'a'
>>>a[26-1] # 可以使用運算符
'z'
>>>a[-2] # 可以從后往前找
'y'
>>>a[-26]
'a'
```
<br>
**字符串駐留機制和字符串比較**
字符串駐留:只保存一份字符串對象,如果新定義字符串相同的變量則直接引用 不會創建新的對象。
python支持字符串駐留機制,對于符合標識符規則的字符串(僅包含數字、字母、_)會啟用字符串駐留機制。
```
>>>a='01_abc'
>>>b='01_abc'
>>>a is b
True
>>>a='sc#01'
>>>b='sc#01'
>>>a is b
False
>>>a = 'abc'
>>>b= 'abc'
>>>a is b
True
>>>a = '123'
>>>b = '123'
>>>a is b
True
```