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

來源:互聯網
上載者:User

標籤:keyword   一起   start   str   each   不用   輸入   string   comm   

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  

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

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.