python dize iyi uygulama: 'vs'

Olası Kopyalama:
   Python'da çift tırnak ve çift tırnak işareti

Python'da string ile çalışmam gerektiğinde, aşağıdaki sintaksın her ikisinin de kabul edildiğini gördüm:

mystring1  = "here is my string 1"
mystring2  = 'here is my string 2'

Her halükarda bir fark var mı?

Herhangi bir sebeple diğerinden daha iyi bir çözüm kullanmak daha iyi midir?

Alkış,

6
Kesinlikle bir kopyası. Haydi adamım, arama fonksiyonunu bile kullanmadın mı?
katma yazar e-satis, kaynak
Sizce en popüler yol hangisidir?
katma yazar Stefano, kaynak
İşi yapan kişi. :) Tek tırnak içine almak gerektiğinde, çift alıntı ve tersi. Günlük kullanım için tercih ettiğinizi kullanın.
katma yazar AlG, kaynak
' kullanmayı tercih ediyorum çünkü iki yerine yalnızca bir tuşa basmayı gerektiriyor
katma yazar Rob Cowie, kaynak

7 cevap

Hayır, yok. Dize tek bir alıntı içerdiğinde, onu çift tırnak içine almak daha kolaydır ve bunun tersi de geçerlidir. Bunun dışında benim tavsiyem bir stil seçmek ve ona bağlı kalmak.

Dize değişmezlerinin bir başka yararlı türü, birden çok satıra yayılabilen üç tırnaklı dizgilerdir:

s = """string literal...
...continues on second line...
...and ends here"""

Yine, bunun için tek veya çift tırnak kullanmanız size kalmış.

Son olarak, "ham dize edebi" lerden bahsetmek istiyorum. Bunlar r "..." veya r '...' şeklinde eklenmiştir ve çıkış dizilerinin ( \ n gibi) olmasını engellemektedir. böyle ayrıştırıldı. Diğer şeylerin yanı sıra, ham dizgi değişmezleri düzenli ifadeleri belirtmek için çok kullanışlıdır.

Python dize değişmezleri hakkında daha fazla bilgi için burayı okuyun.

5
katma
Ham dizgilerle ilgili bir kafa karışıklığı, insanların bazen özel bir tür dize olduğunu düşünmeleridir. Öyle değil, önde gelen 'r', yorumcunun sadece sıradan karakterler gibi ters eğiklikleri tedavi edip takip eden farklı bir tür işlem yapmasını söyler. Sonuç, düz bir eski sıradan dizedir. "Ham" kısmı, sonuç değil, değişmezdir. Bu yüzden her zaman "ham dize değişmezleri" terimini kullanıyorum, bence bu, geri dönüşünüzün üzerinde değil, harflerin üzerindeki arsızlığı odaklıyor.
katma yazar PaulMcG, kaynak

Biriyle diğeri arasında bir fark olmadığı doğru olsa da, açık kaynak topluluğunda aşağıdaki davranışların çoğuna rastladım:

  • " for text that is supposed to be read (email, feeback, execption, etc)
  • ' for data text (key dict, function arguments, etc)
  • triple " for any docstring or text that includes " and '
3
katma
Yapmamak için bir sebep yok. Ben hiç görmedim. Ancak, QWERTY klavyesinde sadece dünyadaki her klavyede değil, daha az tuş vuruşu var. Klavyemde '' 'kullanımı daha kolay.
katma yazar e-satis, kaynak
Lol. Sadece Python kaynak kodunu çektim. '' ' dolu. Tamam, sanırım şu iddiayı kaldırmalıyım :-p
katma yazar e-satis, kaynak
Hedefe dayalı ' ve " kullanma düşüncesi için +1, gerçekten yararlı olduğunu söylemem ama kavramdan hoşlanıyorum ve bununla neler yapabileceğimi göreceğim :-)
katma yazar Joël, kaynak
Yazmak için daha az bir tuşa ihtiyaç duyduklarından, her zaman '' ' kullanırım. Umarım bu benim projelerimi daha az ciddiye almaz :)
katma yazar Xion, kaynak

Python, en fazla etkiyi elde etmek için en az miktarda kod ile ilgilidir. Daha kısa olan daha iyi. Ve ', bir şekilde değerinden daha kısa bir nokta, bu yüzden tercih ediyorum.

1
katma

Hayır. Sadece bir stil meselesi. Sadece tutarlı ol.

1
katma

Fark yok.

Daha iyi ne tartışılabilir. Metin dizgileri için "..." ve karakterler için '...' kullanıyorum, çünkü bu diğer dillerle tutarlı ve size/tuşlarına aktarırken bazı tuşlara basmanıza neden olabilir farklı dil. Normal ifadeler ve SQL sorguları için her zaman r '' '...' '' kullanırım, çünkü bunlar genellikle ters eğik çizgi ve her iki tırnak türünü içerir.

1
katma

" kullanma eğilimindeyim çünkü diğer programlama dillerinin çoğu budur.

Yani, alışkanlık, gerçekten.

1
katma
'' i tercih ediyorum çünkü klavyemde Shift tuşuna gerek yokken " ihtiyaç duyuyor. Bu gerçekten alışkanlık meselesi!
katma yazar heltonbiker, kaynak

Herkesin işaret ettiği gibi, işlevsel olarak özdeştirler. Ancak, PEP 257 (Docstring Conventions) her zaman "" kullanılmasını önerir. ", yalnızca tutarlılık amacıyla docstrings çevresinde.Yoksa kimse size bağırmaya ya da siz istemezseniz, kötü düşünmenize yarayacaktır.

0
katma