Saya suka menggunakan tanda kutip ganda di sekitar string yang digunakan untuk interpolasi atau yang merupakan pesan bahasa alami, dan tanda kutip tunggal untuk string mirip simbol, tetapi akan melanggar aturan jika string berisi kutipan, atau jika saya lupa. Saya menggunakan tanda kutip ganda berganda untuk dokumen dan literal string mentah untuk ekspresi reguler bahkan jika itu tidak diperlukan.
Sebagai contoh:
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
Mengutip dokumen resmi di https://docs.python.org/2.0/ref/strings.html :
Jadi tidak ada perbedaan. Sebagai gantinya, orang akan memberitahu Anda untuk memilih gaya mana saja yang cocok dengan konteksnya, dan untuk menjadi konsisten . Dan saya akan setuju - menambahkan bahwa tidak ada gunanya mencoba membuat "konvensi" untuk hal semacam ini karena Anda hanya akan berakhir membingungkan setiap pendatang baru.
sumber
Saya dulu lebih suka
'
, terutama untuk'''docstrings'''
, seperti yang saya temukan"""this creates some fluff"""
. Juga,'
dapat diketik tanpa Shifttombol pada keyboard Swiss Jerman saya.Sejak saat itu saya telah berubah menggunakan tanda kutip tiga untuk
"""docstrings"""
, agar sesuai dengan PEP 257 .sumber
"
hanya memerlukan tombol shift pada keyboard QWERTY PC. Di keyboard saya,"
sebenarnya lebih mudah untuk mengetik.Saya dengan Will:
Saya akan tetap dengan itu bahkan jika itu berarti banyak yang lolos.
Saya mendapatkan nilai terbaik dari pengidentifikasi tunggal dikutip menonjol karena kutipan. Sisa praktik ada di sana hanya untuk memberikan pengidentifikasi tunggal yang dikutip itu beberapa ruang berdiri.
sumber
Jika string yang Anda miliki berisi satu, maka Anda harus menggunakan yang lain. Misalnya
"You're able to do this"
,, atau'He said "Hi!"'
. Selain itu, Anda harus konsisten seperti yang Anda bisa (dalam modul, dalam paket, dalam proyek, dalam organisasi).Jika kode Anda akan dibaca oleh orang-orang yang bekerja dengan C / C ++ (atau jika Anda beralih antara bahasa-bahasa dan Python), maka menggunakan
''
untuk string karakter-tunggal, dan""
untuk string yang lebih lama dapat membantu memudahkan transisi. (Demikian juga untuk mengikuti bahasa lain yang tidak dapat dipertukarkan).Kode Python yang saya lihat di alam cenderung
"
lebih disukai'
, tetapi hanya sedikit. Satu-satunya pengecualian adalah yang"""these"""
jauh lebih umum daripada'''these'''
, dari apa yang saya lihat.sumber
Komentar tiga kutipan adalah subtopik yang menarik dari pertanyaan ini. PEP 257 menetapkan tiga kutipan untuk string dokumen . Saya melakukan pemeriksaan cepat menggunakan Pencarian Kode Google dan menemukan bahwa tanda kutip rangkap tiga dalam Python sekitar 10x sepopuler tanda kutip tunggal rangkap - Kejadian 1,3 juta vs 131 ribu dalam kode indeks Google. Jadi dalam kasus multi-line kode Anda mungkin akan lebih akrab bagi orang-orang jika menggunakan penawaran rangkap tiga.
sumber
Untuk alasan sederhana itu, saya selalu menggunakan tanda kutip ganda di luar. Selalu
Berbicara tentang bulu, apa gunanya merampingkan string literal Anda dengan 'jika Anda harus menggunakan karakter melarikan diri untuk mewakili apostrof? Apakah itu menyinggung coders untuk membaca novel? Saya tidak bisa membayangkan betapa menyakitkannya kelas bahasa Inggris sekolah menengah atas untuk Anda!
sumber
Python menggunakan tanda kutip sesuatu seperti ini:
Yang menghasilkan output sebagai berikut:
sumber
"""This is a string with "quotes""""
memunculkan SyntaxError. Bagaimana situasi ini bisa diselesaikan? (Sama seperti dengan'''This is a string with 'quotes''''
)'''This is a string with "quotes"'''
,.Saya menggunakan tanda kutip ganda secara umum, tetapi tidak untuk alasan tertentu - Mungkin hanya karena kebiasaan dari Jawa.
Saya kira Anda juga lebih cenderung ingin apostrof dalam string literal sebaris daripada Anda ingin tanda kutip ganda.
sumber
Secara pribadi saya tetap dengan satu atau yang lain. Itu tidak masalah. Dan memberikan makna Anda sendiri pada salah satu kutipan itu hanya untuk membingungkan orang lain ketika Anda berkolaborasi.
sumber
Ini mungkin preferensi gaya lebih dari apa pun. Saya baru saja memeriksa PEP 8 dan tidak melihat adanya penawaran tunggal versus ganda.
Saya lebih suka tanda kutip tunggal karena hanya satu penekanan daripada dua. Artinya, saya tidak perlu menekan tombol shift untuk membuat kutipan tunggal.
sumber
PHP membuat perbedaan yang sama dengan Perl: konten dalam tanda kutip tunggal tidak akan ditafsirkan (bahkan \ n tidak akan dikonversi), sebagai kebalikan dari tanda kutip ganda yang dapat berisi variabel untuk memiliki nilai dicetak.
Python tidak, saya takut. Secara teknis terlihat, tidak ada $ token (atau sejenisnya) untuk memisahkan nama / teks dari variabel dengan Python. Kedua fitur membuat Python lebih mudah dibaca, kurang membingungkan. Kutipan tunggal dan ganda dapat digunakan secara bergantian dalam Python.
sumber
r
di depan string literal. Jadiprint 'a\nb'
akan mencetak Anda dua baris, tetapiprint r'a\nb'
akan mencetak Anda satu.Saya memilih menggunakan tanda kutip ganda karena lebih mudah dilihat.
sumber
Saya hanya menggunakan apapun yang sesuai dengan kesukaan saya pada saat itu; akan lebih mudah untuk dapat beralih di antara keduanya sekaligus!
Tentu saja, ketika mengutip kutipan karakter, beralih di antara keduanya mungkin tidak begitu aneh ...
sumber
Selera tim Anda atau pedoman pengkodean proyek Anda.
Jika Anda berada dalam lingkungan multi bahasa, Anda mungkin ingin mendorong penggunaan jenis kutipan yang sama untuk string yang digunakan bahasa lain, misalnya. Selain itu, saya pribadi paling suka tampilan '
sumber
Sejauh yang saya tahu tidak ada. Meskipun jika Anda melihat beberapa kode, "" biasanya digunakan untuk string teks (saya kira 'lebih umum di dalam teks daripada "), dan' 'muncul di hashkeys dan hal-hal seperti itu.
sumber
Saya bertujuan untuk meminimalkan piksel dan kejutan. Saya biasanya lebih suka
'
untuk meminimalkan piksel, tetapi"
sebaliknya jika string memiliki tanda kutip, sekali lagi untuk meminimalkan piksel. Akan tetapi, untuk dokumen, saya lebih suka"""
daripada'''
karena yang terakhir tidak standar, tidak umum, dan karena itu mengejutkan. Jika sekarang saya memiliki banyak string di mana saya menggunakan"
per logika di atas, tetapi juga satu yang bisa lolos dengan'
, saya masih dapat menggunakannya"
untuk mempertahankan konsistensi, hanya untuk meminimalkan kejutan.Mungkin ada baiknya memikirkan filosofi minimisasi piksel dengan cara berikut. Apakah Anda lebih suka karakter bahasa Inggris itu seperti
A B C
atauAA BB CC
? Pilihan terakhir membuang 50% dari piksel yang tidak kosong.sumber
Saya menggunakan tanda kutip ganda karena saya telah melakukannya selama bertahun-tahun di sebagian besar bahasa (C ++, Java, VB ...) kecuali Bash, karena saya juga menggunakan tanda kutip ganda dalam teks normal dan karena saya menggunakan keyboard non-Inggris (dimodifikasi) di mana kedua karakter memerlukan tombol shift.
sumber
'
="
/
=\
=\\
contoh:
Hasilnya sama
= >> tidak, mereka tidak sama. Satu garis miring terbalik akan keluar dari karakter. Anda hanya kebetulan keberuntungan dalam contoh bahwa karena
\k
dan\w
tidak lolos berlaku seperti\t
atau\n
atau\\
atau\"
Jika Anda ingin menggunakan garis miring terbalik tunggal (dan menafsirkannya seperti itu), maka Anda perlu menggunakan string "mentah". Anda dapat melakukan ini dengan meletakkan '
r
' di depan stringSejauh jalur di Windows yang bersangkutan, garis miring diinterpretasikan dengan cara yang sama. Jelas string itu sendiri berbeda. Saya tidak akan menjamin bahwa mereka ditangani dengan cara ini pada perangkat eksternal.
sumber
os.path.join()