單引號和雙引號
在Python中我們都知道單引號和雙引號都可以用來表示一個字串,比如
str1 = "python"
str2 = "python"
str1和str2是沒有任何區別的。
我們知道Python以其易用性而著名,所以剛開始看教程學習看到單引號和雙引號都可以使用會以為這是Python為了方便程式設計師,隨便用哪個就好,不用擔心用錯。其實,背後的原因不只是這麼簡單。舉個例子,想想I"m a big fans of Python.這個字串應該怎麼定義。
單引號版本:
str3 = "I\"m a big fan of Python."
可以注意到,原來的字串中有一個",而Python又允許使用單引號" "來表示字串,所以字串中間的"必須用轉移字元\才可以。字串中間只有一個",這樣寫看起來還好,但是如果是We all know that "A" and "B" are two capital letters.這個字串呢?
str4 = "We all know that \"A\" and \"B\" are two capital letters."
怎麼樣,是不是看起來就很不好看,而且很容易出錯了?這個時候就是雙引號也可以表示字串該體現作用的時候了。下面是str4的雙引號版本:
str4_ = "We all know that "A" and "B" are two capital letters."
這樣是不是看起來就人性化多了?沒錯,這就是Python支援雙引號和單引號都能用來定義字串的原因。
反之,如果字串中有雙引號,為了避免使用轉義符,你可以使用單引號來定義這個字串。比如:
str5 = "The teacher said: "Practice makes perfect" is a very famous proverb."
這就是Python易用性和人性化的一個極致體現,當你用單引號" "定義字串的時候,它就會認為你字串裡面的雙引號" "是普通字元,從而不需要轉義。反之當你用雙引號定義字串的時候,就會認為你字串裡面的單引號是普通字元無需轉義。
3個單引號及3個雙引號
實際上3個單引號和3個雙引號不經常用,但是在某些特殊格式的字串下卻有大用處。通常情況下我們用單引號或者雙引號定義一個字串的時候只能把字串連在一起寫成一行,如果非要寫成多行,就得在每一行後面加一個\表示連字元,比如:
str1 = "List of name:\
Hua Li\
Chao Deng"
而且即使你這樣寫也不能得到期望的輸出:
List of name:
Hua Li
Chao Deng
實際上輸出是下面這樣的:
>>> str1 = "List of name:\
... Hua Li\
... Chao Deng"
>>> print(str1)
List of name: Hua Li Chao Deng
那麼該如何得到我們期望的一行一個名字的輸出格式呢?這就是3個引號的作用了:
>>> str1 = """List of name:
... Hua Li
... Chao Deng
... """
雖然我們也可以透過給字串加上\n實現:
>>> str1 = "List of name:\nHua Li\nChao Deng"
但是這樣在輸入的時候看起來就亂了很多不是麼?所以這種情況下儘量使用3個引號,至於3個單引號還是雙引號都是一樣的,只需要注意如果字串中包含有單引號就要使用雙引號來定義就好了。
而且使用3個引號還有一個特別棒的作用就是:加註釋!
>>> str1 = """
... List of name:
... Hua Li # LiHua
... Chao Deng # DengChao
Hua Li # LiHua
Chao Deng # DengChao
單引號和雙引號
在Python中我們都知道單引號和雙引號都可以用來表示一個字串,比如
str1 = "python"
str2 = "python"
str1和str2是沒有任何區別的。
我們知道Python以其易用性而著名,所以剛開始看教程學習看到單引號和雙引號都可以使用會以為這是Python為了方便程式設計師,隨便用哪個就好,不用擔心用錯。其實,背後的原因不只是這麼簡單。舉個例子,想想I"m a big fans of Python.這個字串應該怎麼定義。
單引號版本:
str3 = "I\"m a big fan of Python."
可以注意到,原來的字串中有一個",而Python又允許使用單引號" "來表示字串,所以字串中間的"必須用轉移字元\才可以。字串中間只有一個",這樣寫看起來還好,但是如果是We all know that "A" and "B" are two capital letters.這個字串呢?
str4 = "We all know that \"A\" and \"B\" are two capital letters."
怎麼樣,是不是看起來就很不好看,而且很容易出錯了?這個時候就是雙引號也可以表示字串該體現作用的時候了。下面是str4的雙引號版本:
str4_ = "We all know that "A" and "B" are two capital letters."
這樣是不是看起來就人性化多了?沒錯,這就是Python支援雙引號和單引號都能用來定義字串的原因。
反之,如果字串中有雙引號,為了避免使用轉義符,你可以使用單引號來定義這個字串。比如:
str5 = "The teacher said: "Practice makes perfect" is a very famous proverb."
這就是Python易用性和人性化的一個極致體現,當你用單引號" "定義字串的時候,它就會認為你字串裡面的雙引號" "是普通字元,從而不需要轉義。反之當你用雙引號定義字串的時候,就會認為你字串裡面的單引號是普通字元無需轉義。
3個單引號及3個雙引號
實際上3個單引號和3個雙引號不經常用,但是在某些特殊格式的字串下卻有大用處。通常情況下我們用單引號或者雙引號定義一個字串的時候只能把字串連在一起寫成一行,如果非要寫成多行,就得在每一行後面加一個\表示連字元,比如:
str1 = "List of name:\
Hua Li\
Chao Deng"
而且即使你這樣寫也不能得到期望的輸出:
List of name:
Hua Li
Chao Deng
實際上輸出是下面這樣的:
>>> str1 = "List of name:\
... Hua Li\
... Chao Deng"
>>> print(str1)
List of name: Hua Li Chao Deng
那麼該如何得到我們期望的一行一個名字的輸出格式呢?這就是3個引號的作用了:
>>> str1 = """List of name:
... Hua Li
... Chao Deng
... """
>>> print(str1)
List of name:
Hua Li
Chao Deng
雖然我們也可以透過給字串加上\n實現:
>>> str1 = "List of name:\nHua Li\nChao Deng"
>>> print(str1)
List of name:
Hua Li
Chao Deng
但是這樣在輸入的時候看起來就亂了很多不是麼?所以這種情況下儘量使用3個引號,至於3個單引號還是雙引號都是一樣的,只需要注意如果字串中包含有單引號就要使用雙引號來定義就好了。
而且使用3個引號還有一個特別棒的作用就是:加註釋!
>>> str1 = """
... List of name:
... Hua Li # LiHua
... Chao Deng # DengChao
... """
>>> print(str1)
List of name:
Hua Li # LiHua
Chao Deng # DengChao