這一篇文章主要介紹python字元串相關知識。 單引號字元串及對單引號的轉義 **字元串(String)**就是一段文本,幾乎在所有的Python程式中都有字元串的身影。 字元串可以用單引號表示,也可以用雙引號表示,但是輸出一般為單引號: >>> 'Hello World!' 'Hello Worl ...
這一篇文章主要介紹python字元串相關知識。
單引號字元串及對單引號的轉義
字元串(String)就是一段文本,幾乎在所有的Python程式中都有字元串的身影。
字元串可以用單引號表示,也可以用雙引號表示,但是輸出一般為單引號:
>>> 'Hello World!'
'Hello World!'
>>>
>>> "Hello World!"
'Hello World!'
>>>
如果字元串中有單引號,我們就需要用雙引號表示字元串;同樣如果字元串中有雙引號,我們就需要用單引號表示字元串。否則,會報錯
>>> "Let's go!"
"Let's go!"
>>>
>>> '"Hello, world!" she said'
'"Hello, world!" she said'
>>>
>>> 'Let's go!'
File "<stdin>", line 1
'Let's go!'
^
SyntaxError: invalid syntax
>>>
>>> ""Hello, world!" she said"
File "<stdin>", line 1
""Hello, world!" she said"
^^^^^
SyntaxError: invalid syntax
>>>
可以通過轉義符\
的使用表示字元串裡面的引號:
>>>
>>> "\"Hello, world!\" she said"
'"Hello, world!" she said'
>>> 'Let\'s go!'
"Let's go!"
>>>
- 這樣對引號轉義很有作用,且在有些情況下必須這樣做,例如字元串同時包含單引號和雙引號時
字元串拼接
>>>
>>> "Let's say " '"Hello , world!"'
'Let\'s say "Hello , world!"'
>>>
>>> x = "Hello, "
>>> y = "world!"
>>> x y
File "<stdin>", line 1
x y
^
SyntaxError: invalid syntax
>>>
>>> x + y
'Hello, world!'
>>>
- 同時依次輸入兩個字元串,Python會自動將他們拼接起來,這是一種輸入字元串的特殊方式,而非通用的字元串拼接方法
- 正確的拼接字元串的方法是藉助於+,將字元串拼接起來
字元串的str和repr
>>>
>>> "Hello, world!"
'Hello, world!'
>>> print("Hello, world!")
Hello, world!
>>>
>>> "Hello, \nworld!"
'Hello, \nworld!'
>>> print("Hello, \nworld!")
Hello,
world!
>>>
>>> print(repr("Hello, \nworld!"))
'Hello, \nworld!'
>>> print(str("Hello, \nworld!"))
Hello,
world!
>>>
- Python列印會儘量保留在代碼中的樣子
- print列印的結果是希望用戶看到的樣子
- print+repr函數的效果就是python列印效果
- print+str類就是列印出字元串的用戶效果
長字元串
要表示很長的字元串(跨越多行的字元串),可以使用三引號(而不是普通的引號):
>>>
>>> print('''This is a very long string. It continues here.
... And it's not over yet. "Hello, world!"
... Still here.''')
This is a very long string. It continues here.
And it's not over yet. "Hello, world!"
Still here.
>>>
>>> 1 + 2 + \
... 4 + 5
12
>>>
>>> print\
... ('Hello, world!')
Hello, world!
>>>
- 也可以使用三個雙引號表示長字元串
- 註意:長字元串本身包含單引號或雙引號無需使用反斜杠轉義。因為三引號讓解釋器能夠識別表示字元串的開始和結束位置,不衝突。區別於引號表示的字元串。
- 常規字元串也可以 橫跨多行,只要在行尾加上反斜杠,反斜杠和換行符將被轉義,即被忽略
原始字元串
原始字元串不以特殊方式處理反斜杠,因此在有些情況下很有用,例如正則表達式中。
因為反斜杠對字元進行轉義,可以表達字元串中原本無法包含的字元,但是如果字元中本身就有反斜杠或包含反斜杠的組合,就會出問題。這個時候有兩種方案:
- 用反斜杠轉義反斜杠
- 用原始字元串表示——在字元串前面用r表示
例如我們想要表達文件路徑:
>>>
>>> print('C:\Program Files\fnord\foo\baz')
C:\Program Files
nord
oaz
>>>
>>> print('C:\\Program Files\\fnord\\foo\\baz')
C:\Program Files\fnord\foo\baz
>>>
>>> print(r'C:\Program Files\fnord\foo\baz')
C:\Program Files\fnord\foo\baz
>>>
>>> print(r'Let\'s go!')
Let\'s go!
>>>
>>> print(r'C:\Program Files\fnord\foo\baz' '\\' )
C:\Program Files\fnord\foo\baz\
>>>
- 原始字元串不能以單個反斜杠結尾,因為python無法判斷其是否結束。如果要表示這種字元串可以拼接一個反斜杠轉義的斜杠。