# 字符串
字符串是 字符的序列 。字符串基本上就是一組單詞。
我幾乎可以保證你在每個Python程序中都要用到字符串,所以請特別留心下面這部分的內容。下面告訴你如何在Python中使用字符串。
* **使用單引號(')**
你可以用單引號指示字符串,就如同`'Quote me on this'`這樣。所有的空白,即空格和制表符都照原樣保留。
* **使用雙引號(")**
在雙引號中的字符串與單引號中的字符串的使用完全相同,例如`"What's your name?"`。
* **使用三引號('''或""")**
利用三引號,你可以指示一個多行的字符串。你可以在三引號中自由的使用單引號和雙引號。例如:
`'''This is a multi-line string. This is the first line.
This is the second line.
"What's your name?," I asked.
He said "Bond, James Bond."
'''`
* **轉義符**
假設你想要在一個字符串中包含一個單引號('),那么你該怎么指示這個字符串?例如,這個字符串是`What's your name?`。你肯定不會用`'What's your name?'`來指示它,因為Python會弄不明白這個字符串從何處開始,何處結束。所以,你需要指明單引號而不是字符串的結尾。可以通過 轉義符 來完成這個任務。你用`\'`來指示單引號——注意這個反斜杠。現在你可以把字符串表示為`'What\'s your name?'`。
另一個表示這個特別的字符串的方法是`"What's your name?"`,即用雙引號。類似地,要在雙引號字符串中使用雙引號本身的時候,也可以借助于轉義符。另外,你可以用轉義符`\\`來指示反斜杠本身。
值得注意的一件事是,在一個字符串中,行末的單獨一個反斜杠表示字符串在下一行繼續,而不是開始一個新的行。例如:
```
"This is the first sentence.\
This is the second sentence."
```
等價于`"This is the first sentence. This is the second sentence."`
* **自然字符串**
如果你想要指示某些不需要如轉義符那樣的特別處理的字符串,那么你需要指定一個自然字符串。自然字符串通過給字符串加上前綴`r`或`R`來指定。例如`r"Newlines are indicated by \n"`。
* **Unicode字符串**
Unicode是書寫國際文本的標準方法。如果你想要用你的母語如北印度語或阿拉伯語寫文本,那么你需要有一個支持Unicode的編輯器。類似地,Python允許你處理Unicode文本——你只需要在字符串前加上前綴`u`或`U`。例如,`u"This is a Unicode string."`。
記住,在你處理文本文件的時候使用Unicode字符串,特別是當你知道這個文件含有用非英語的語言寫的文本。
* **字符串是不可變的**
這意味著一旦你創造了一個字符串,你就不能再改變它了。雖然這看起來像是一件壞事,但實際上它不是。我們將會在后面的程序中看到為什么我們說它不是一個缺點。
* **按字面意義級連字符串**
如果你把兩個字符串按字面意義相鄰放著,他們會被Python自動級連。例如,`'What\'s' 'your name?'`會被自動轉為`"What's your name?"`。
給C/C++程序員的注釋
在Python中沒有專門的`char`數據類型。確實沒有需要有這個類型,我相信你不會為此而煩惱。
給Perl/PHP程序員的注釋
記住,單引號和雙引號字符串是完全相同的——它們沒有在任何方面有不同。
給正則表達式用戶的注釋
一定要用自然字符串處理正則表達式。否則會需要使用很多的反斜杠。例如,后向引用符可以寫成`'\\1'`或`r'\1'`。
- 版權信息
- 前言
- 本書的由來
- 本書目前的狀況
- 約定條款
- 反饋
- 值得思考的一些東西
- 第1章 介紹
- Python的特色
- 為什么不使用Perl?
- 程序員的話
- 第2章 安裝Python
- Windows?用戶
- 概括
- 第3章 最初的步驟
- 使用帶提示符的解釋器
- 挑選一個編輯器
- 使用源文件
- 可執行的Python程序
- 獲取幫助
- 概括
- 第4章 基本概念
- 數
- 字符串
- 變量
- 標識符的命名
- 數據類型
- 對象
- 邏輯行與物理行
- 縮進
- 概括
- 第5章 運算符與表達式
- 運算符
- 運算符優先級
- 表達式
- 概括
- 第6章 控制流
- if語句
- while語句
- for循環
- break語句
- continue語句
- 概括
- 第7章 函數
- 函數形參
- 局部變量
- 默認參數值
- 關鍵參數
- return語句
- DocStrings
- 概括
- 第8章 模塊
- 字節編譯的.pyc文件
- from..import語句
- 模塊的name
- 制造你自己的模塊
- dir()函數
- 概括
- 第9章 數據結構
- 列表
- 元組
- 字典
- 序列
- 參考
- 更多字符串的內容
- 概括
- 第10章 解決問題——編寫一個Python腳本
- 解決方案
- 軟件開發過程
- 概括
- 第11章 面向對象的編程
- self
- 類
- 對象的方法
- __init__方法
- 類與對象的方法
- 繼承
- 概括
- 第12章 輸入/輸出
- 儲存器
- 概括
- 第13章 異常
- try..except
- 引發異常
- try..finally
- 概括
- 第14章 Python標準庫
- sys模塊
- os模塊
- 概括
- 第15章 更多Python的內容
- 單語句塊
- 列表綜合
- 在函數中接收元組和列表
- lambda形式
- exec和eval語句
- assert語句
- repr函數
- 概括
- 第16章 接下來學習什么?
- 探索更多內容
- 概括
- 附錄A 自由/開放源碼軟件(FLOSS)
- 附錄B 關于本書
- 關于作者
- 關于譯者
- 關于簡體中文譯本
- 附錄C 修訂記錄
- 術語表