python中字符串可以(且僅可以)使用成對的單引號、雙引號、三個雙引號(文檔字符串)包圍:
'this is a book'
"this is a book"
"""this is a book"""
可在單引號包圍的字符串中包含雙引號,三引號等,但不能包含單引號自身(需轉義)
'this is a" book'
'this is a"" book'
'this is a""" book'
'this is a\' book'
也可多單引號中的雙引號轉義,但通常沒什么必要和意義
'this is a\" book'
同理,雙引號中可包含單引號,但不能包含雙引號以及由雙引號構成的三引號
"this is a' book"
"this is a\" book"
也可對雙引號中的單引號進行轉義,但同樣,這通常沒有必要也沒有意義
"this is a\' book"
現在還有一個問題,如果我想在單引號包圍的字符串中顯示“\'”呢,答案是分別對“\”和“'”進行轉義,也即要想在字符串中顯示“\”這個特殊字符,需對特殊字符本身進行轉義,其他特殊字符類似。
>>> s='this is a\' book'
>>> print s
this is a' book
>>> s='this is a\\\' book'
>>> print s
this is a\' book
要顯示多少次“\”就要對“\”進行多少次轉義:
>>> s='this is a\\\\\' book'
>>> print s
this is a\\' book
同樣,想在雙引號包圍的字符串中顯示“\"”也要分別對“\”和“"”進行轉義。
>>> s="this is a\\\" book"
>>> print s
this is a\" book
說到這里,有必要談一談字符串中“\'”和“\"”的替換問題,也即字符串本身是包含這樣的子串的,比如:
>>> s='this is a\\\' book'
>>> s
"this is a\\' book"
>>> print s
this is a\' book
這里的字符串中包含“\'”這樣一個子串,現在想把這個子串替換為“@@@”
>>> s=s.replace('\\\'','@@@')
>>> s
'this is a@@@ book'
>>> print s
this is a@@@ book
也即在書寫將被替換的子串時,也需對特殊的字符進行轉義,s=s.replace('\\\'','@@@')中經轉義后,最終的字符串中將被替換掉的子串為“\'”.
雙引號中含有特殊字符的子串的替換遵循同樣的原理。
另外需要注意的是,想要知道字符串最終的樣子則應當使用print函數將其打印出來,以免混淆。
>>> s='this is a\\\' book'
>>> s
"this is a\\' book"
>>> print s
this is a\' book
以上這篇python字符串中的單雙引就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。