Python中單引號,雙引號,3個單引號及3個雙引號的區別【轉】


http://blog.csdn.net/woainishifu/article/details/76105667

 

單引號和雙引號

在Python中我們都知道單引號和雙引號都可以用來表示一個字符串,比如

 
  1. str1 = 'python'  
  2. str2 = "python"   

str1和str2是沒有任何區別的。

 

我們知道Python以其易用性而著名,所以剛開始看教程學習看到單引號和雙引號都可以使用會以為這是Python為了方便程序員,隨便用哪個就好,不用擔心用錯。其實,背后的原因不只是這么簡單。舉個例子,想想I'm a big fans of Python.這個字符串應該怎么定義。

 

單引號版本:

 
  1. str3 = 'I\'m a big fan of Python.'  

可以注意到,原來的字符串中有一個',而Python又允許使用單引號' '來表示字符串,所以字符串中間的'必須用轉移字符\才可以。字符串中間只有一個',這樣寫看起來還好,但是如果是We all know that 'A' and 'B' are two capital letters.這個字符串呢?

 
  1. str4 = 'We all know that \'A\' and \'B\' are two capital letters.'  

怎么樣,是不是看起來就很不好看,而且很容易出錯了?這個時候就是雙引號也可以表示字符串該體現作用的時候了。下面是str4的雙引號版本:

 
  1. str4_ = "We all know that 'A' and 'B' are two capital letters."  

這樣是不是看起來就人性化多了?沒錯,這就是Python支持雙引號和單引號都能用來定義字符串的原因。

 

反之,如果字符串中有雙引號,為了避免使用轉義符,你可以使用單引號來定義這個字符串。比如:

 
  1. str5 = 'The teacher said: "Practice makes perfect" is a very famous proverb.'  

這就是Python易用性和人性化的一個極致體現,當你用單引號' '定義字符串的時候,它就會認為你字符串里面的雙引號" "是普通字符,從而不需要轉義。反之當你用雙引號定義字符串的時候,就會認為你字符串里面的單引號是普通字符無需轉義。

 

3個單引號及3個雙引號

實際上3個單引號和3個雙引號不經常用,但是在某些特殊格式的字符串下卻有大用處。通常情況下我們用單引號或者雙引號定義一個字符串的時候只能把字符串連在一起寫成一行,如果非要寫成多行,就得在每一行后面加一個\表示連字符,比如:

  1. str1 = "List of name:\  
  2.         Hua Li\  
  3.         Chao Deng"  

而且即使你這樣寫也不能得到期望的輸出:

 
  1. List of name:  
  2. Hua Li  
  3. Chao Deng  

 

實際上輸出是下面這樣的:

 
  1. >>> str1 = "List of name:\  
  2. ...         Hua Li\  
  3. ...         Chao Deng"  
  4. >>> print(str1)  
  5. List of name:        Hua Li        Chao Deng  


那么該如何得到我們期望的一行一個名字的輸出格式呢?這就是3個引號的作用了:

  1. >>> str1 = """List of name: 
  2. ... Hua Li 
  3. ... Chao Deng 
  4. ... """  
  5. >>> print(str1)  
  6. List of name:  
  7. Hua Li  
  8. Chao Deng  

 

雖然我們也可以通過給字符串加上\n實現:

 
>>> str1 =  "List of name:\nHua Li\nChao Deng"  
  1. >>> print(str1)  
  2. List of name:  
  3. Hua Li  
  4. Chao Deng  

但是這樣在輸入的時候看起來就亂了很多不是么?所以這種情況下盡量使用3個引號,至於3個單引號還是雙引號都是一樣的,只需要注意如果字符串中包含有單引號就要使用雙引號來定義就好了。

 

而且使用3個引號還有一個特別棒的作用就是:加注釋!

 
  1. >>> str1 = """ 
  2. ... List of name: 
  3. ... Hua Li # LiHua 
  4. ... Chao Deng # DengChao 
  5. ... """  
  6. >>> print(str1)  
  7.   
  8. List of name:  
  9. Hua Li # LiHua  
  10. Chao Deng # DengChao  

如果要實現這種輸出效果,僅僅使用單引號或者雙引號還能實現嗎?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM