pep8是什麼 - style guide for python code中文




單引號與Python中的雙引號 (13)

在Perl中,如果有一個字符串不需要插入變量或\ n,\ t,\ r等轉義字符,則希望使用單引號。

PHP與Perl有著同樣的區別:單引號中的內容不會被解釋(即使\ n也不會被轉換),而不是雙引號,它可以包含變量來打印出它們的值。

恐怕,Python不會。 從技術上看,沒有$ token(或類似)將Python中的名稱/文本與變量分開。 畢竟,這兩個特性都使得Python更具可讀性,而且更容易混淆。 單引號和雙引號可以在Python中互換使用。

根據文檔,它們幾乎可以互換。 是否有一種文體上的理由相互使用?


Python使用如下所示的引號:

mystringliteral1="this is a string with 'quotes'"
mystringliteral2='this is a string with "quotes"'
mystringliteral3="""this is a string with "quotes" and more 'quotes'"""
mystringliteral4='''this is a string with 'quotes' and more "quotes"'''
mystringliteral5='this is a string with \"quotes\"'
mystringliteral6='this is a string with \042quotes\042'
mystringliteral6='this is a string with \047quotes\047'

print mystringliteral1
print mystringliteral2
print mystringliteral3
print mystringliteral4
print mystringliteral5
print mystringliteral6

其中給出了以下輸出:

this is a string with 'quotes'
this is a string with "quotes"
this is a string with "quotes" and more 'quotes'
this is a string with 'quotes' and more "quotes"
this is a string with "quotes"
this is a string with 'quotes'


你的團隊的口味或你的項目的編碼準則。

例如,如果您處於多語言環境中,則可能希望鼓勵使用與其他語言使用的字符串相同類型的引號。 否則,我個人最喜歡'


如果你有的字符串包含一個,那麼你應該使用另一個。 例如, "You're able to do this" ,或者'He said "Hi!"' 。 除此之外,您應該盡可能保持一致(在模塊內,在包內,在項目內,在組織內)。

如果你的代碼將被使用C / C ++的人閱讀(或者如果你在這些語言和Python之間切換),那麼使用''作為單字符串,使用""作為更長的字符串可能有助於簡化轉換。 (對於下面的其他語言,它們不可互換)。

我在野外看到的Python代碼往往傾向於" over ' ,但只是稍微有點用處,但有一個例外是"""these"""'''these'''更普遍,從我所擁有的看到。


我使用雙引號,因為除了Bash之外,我在多數語言(C ++,Java,VB ...)中這樣做了多年,因為我在正常文本中也使用雙引號,並且因為我使用了(修改的)非英文鍵盤兩個字符都需要shift鍵。


我只是使用當時想要的任何東西; 能夠隨心所欲地在兩者之間切換很方便!

當然,在引用引號的時候,兩者之間的切換可能並非如此怪異......


我喜歡在用於插值的字符串或自然語言消息中使用雙引號,並且對於小符號類型的字符串使用單引號,但如果字符串包含引號或者如果我忘記了,則會打破規則。 對於正則表達式,我使用三重雙引號作為docstrings和原始字符串文字,即使它們不是必需的。

例如:

LIGHT_MESSAGES = {
    'English': "There are %(number_of_lights)s lights.",
    'Pirate':  "Arr! Thar be %(number_of_lights)s lights."
}

def lights_message(language, number_of_lights):
    """Return a language-appropriate string reporting the light count."""
    return LIGHT_MESSAGES[language] % locals()

def is_pirate(message):
    """Return True if the given message sounds piratical."""
    return re.search(r"(?i)(arr|avast|yohoho)!", message) is not None

我與威爾:

  • 文本的雙引號
  • 任何行為像標識符的單引號
  • 用於正則表達式的雙引號原始字符串文字
  • 文檔三倍雙引號

即使這意味著很多逃跑,我仍會堅持。

由於引號,我從單引號標識符中獲得最大價值。 其餘的做法只是為了給那些單引號的標識符一些常設空間。


我通常使用雙引號,但不是出於任何具體原因 - 可能只是出於Java的習慣。

我想你也更希望在內聯文字字符串中使用撇號,而不是想要雙引號。


我選擇使用雙引號,因為它們更容易看到。


據我所知,沒有。 雖然如果你看一些代碼,“”通常用於字符串文本(我猜'在文本內部比在內部更常見“),而''出現在散列鍵和類似的東西中。


"If you're going to use apostrophes, 
       ^

you'll definitely want to use double quotes".
   ^

出於這個簡單的原因,我總是在外面使用雙引號。 總是

說起絨毛,有什麼好處是用'如果你將不得不使用轉義字符來表示撇號來簡化字符串文字? 它是否會冒犯編碼人員閱讀小說? 我無法想像高中英語課對你來說有多痛苦!







coding-style