## 說明
字符串`字面量`:把文本放入單引號/雙引號/三引號中,單雙引號混合時使用**3單引號**。
python2 使用`unicode`編碼,使用u進行標識, 如u'hiyang',python3自動支持。
文檔字符串:模塊/類或者函數的`第一條語句`是一個字符的話,該字符串成為`文檔字符串`,可以使用__doc__引用。
## 索引和切片
索引運算符:`[i]`
切片運算符:`[i:j]`
切片運算符**擴展**:[i:j:stride],`[::1]`正向顯示` [::-1]`倒序顯示
## 字符串操作符

## 內置函數
~~~
min(s) 字符串中的最小值
max(s) 字符串中的最大值
sum() 只適用于數字序列
all(s) 檢查所有項是否都為True
any(s) 檢查任意項是否為為True
~~~
### 字符串填充
~~~
S.center(width[, fillchar]) -> string 將字符串放到中心
S.[l|r]just(width[, fillchar]) -> string 從左或右側進行填充
S.zfill(width) -> string 以字符0進行填充,在輸出數值時比較常用
S.expandtabs([tabsize]) -> string tabsize默認為8,字符串中的制表符tab轉換為適當數量的空格
~~~
### 刪除指定字符串兩端字符
~~~
S.strip([chars]) -> string or unicode 刪除字符串兩端的字符,默認為空格
S.[l|r]strip([chars]) -> string or unicode 刪除字符串左或右側的字符,默認為空格
~~~
### 字符串變形
~~~
S.capitalize() 首字母大寫
S.lower() 字符轉化為小寫
S.upper() 字符轉化為大寫
S.swapcase() 大小寫互換
S.title() 將每一個單詞的首字母大寫,并將單詞中的非首字母轉換為小寫
~~~
>[danger] string 模塊中的capwords()函數,去除兩端的空白符,再將連續的空白符用一個空格代替。
### 分切
~~~
S.[r]partition(sep) -> (head, sep, tail) 將字符串按指定字符從左邊(默認)切片
S.[r]split([sep [,maxsplit]]) -> list 字符串切割為列表,sep為分隔符(從左,右邊開始)maxsplit 是分切的次數
S.splitlines(keepends=False) -> list of strings 將多行按行切為字符串列表,keepends表示是否包含行結束符
~~~
### 連接
`S.join(iterable) -> string 功用是將可迭代的字符串序列連接成一條長字符串`
``` python
>>> conf = {'host':'127.0.0.1',
'db':'spam',
'user':'sa',
'passwd':'eggs'}
>>> ';'.join("%s=%s" % (k, v) for k, v in conf.iteritems())
'passswd=eggs;db=spam;user=sa;host=127.0.0.1'
```
### 判斷
~~~
S.isdigit() 判斷S是否為數字
S.isalpha() 判斷S是否為字母
S.isalnum() 判斷S是否為字母或數字
S.islower() S.isupper()判斷S是否為大,小寫
S.isspace() 判斷S是否為空格
S.istitle() 判斷S是否為標題
S.startswith(prefix[, start[, end]]) -> bool
S.endswith() S.endswith(suffix[, start[, end]]) -> bool是否以suffix結束
~~~
~~~
a = 'hiyang'
a.endswith('ng',-2)
True
~~~
### 查找
~~~
S.count() 統計子串
S.[r]find(sub [,start [,end]]) -> int 查找字符串首次出現的位置,默認找最小的位置,找不到時返回-1
S.[r]index(sub [,start [,end]]) -> int 查找字符串首次出現的位置,默認找最小的位置,找不到時拋出ValueError異常
~~~
>[danger]index找不到時拋出ValueError異常
### 替換
~~~
S.replace(old, new[, maxcount]) -> string 替換指定字符串
S.translate(table [,deletechars]) -> string translate() 對 unicode 對象的支持并不完備,建議不要使用
~~~
~~~
p = str.maketrans('abc', '123')
'hiyang'.translate(p)
~~~
### 編碼
> decode encode 這是一對互逆操作的方法,用以編碼和解碼字符串。因為str是平臺相關的,它使用的內碼依賴于操作系統環境,而unicode是平臺無關的,是Python內部的字符串存儲方式。unicode可以通過編碼(encode)成為特定編碼的str,而str也可以通過解碼(decode)成為unicode。
### python3
python3解碼時會將數據轉化為bytes類型,編碼時,會把bytes轉化為字符串。

~~~
b="ddefdsdff_哈哈"
b.isidentifier() #檢測一段字符串可否被當作標志符,即是否符合變量命名規則
~~~
## 適用于字符串的操作
## 補充說明
Python自動在任意表達式中合并相鄰的字符串
```python
title = 'This' 'is' 'me'
title
'Thisisme'
```
**raw字符串抑制轉義**
```python
fd = open(r'C:\new\text.dat', 'w')
```
注意:
```python
len(repr('spam'))
Out[60]: 6
```
join方法--將子字符串放置到可迭代對象中包含字符串之間
```
'&&'.join(open('bash.py'))
'hiyang\n&&hiyan\n&&123\n&&\n'
```
## 字符串逆序
\b 回退一格 \n換行 \r 回車 光標移到本行行首
## 星座
~~~
In [8]: for i in range(12):
...: print(chr(9800 + i))
~~~
- 前言
- 環境搭建
- pypi
- 打包
- Python 2 和 Python 3 的版本之間差別
- 項目
- 第一部分
- 第1章 基礎
- Python安裝
- python代碼文件類型
- python對象
- 核心數據類型
- 核心數據類型--整型和浮點型
- 核心數據類型--字符串
- str.format
- 核心數據類型--列表
- 核心數據類型--元組
- 核心數據類型--字典
- 核心數據類型--集合
- 核心數據類型--文件對象
- 調用bash
- 標準輸入輸出
- str-repr
- 字符編碼
- 迭代器和生成器
- 第2章 語句和語法
- 賦值語句
- if語句
- while語句
- for語句
- assert
- 第3章 函數
- 函數作用域
- 工廠函數
- 內置函數
- 遞歸
- 嵌套作用域和lambda
- 參數傳遞
- 函數式編程
- property可寫與可讀
- 第5章 模塊
- 模塊導入
- 模塊命名空間
- 相對導入和絕對導入
- 模塊重載
- 在模塊中隱藏數據
- 過渡性重載
- 第6章 類
- 面向對象還是面向過程?
- 構造函數 析構函數
- call
- 運算符重載
- str()
- 待定
- 即時生成屬性
- 多態
- 線程和進程
- thread模塊
- threading模塊
- threading線程鎖
- 糖果機
- multiprocessing
- 阻塞非阻塞同步異步
- 單線程和多線程對比
- 生產者消費者模型
- 第二部分
- 獲取系統資源信息
- 獲取進程所占的物理內存
- dmidecode獲取系統信息
- 網絡編程
- 網絡基礎
- python中的套接字
- socket模塊
- 第三部分 高級功能
- 閉包入門
- 閉包的應用
- 裝飾器入門
- 裝飾器應用
- 第四部分 項目實戰
- graphite
- 模塊
- collections
- datetime
- Enum
- faker
- fabric
- fileinput
- fire
- fnmatch
- getpass
- glob
- hashlib
- heapq
- json模塊
- log
- os
- Paramiko
- parser
- platform
- pyyaml
- Queue
- random
- re
- 特殊符號和字符
- re模塊
- shelves
- subprocess
- time
- urllib_urllib2_requests
- urllib urllib2
- requests
- 標準模塊ConfigParser
- 擴展模塊Mysqldb
- 擴展模塊dns
- 擴展模塊request
- uuid
- cacheout 緩存庫
- delorean 時間
- 附錄
- 內置函數
- python實現各種排序算法
- 常見報錯
- pymongo
- pyrocksdb
- 常用
- ERROR