這一篇文章主要介紹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無法判斷其是否結束,如果要表示這種字串可以拼接一個反斜杠轉義的斜杠,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/531799.html
標籤:Python
