Właśnie zacząłem pracę, w której piszę Python po pochodzeniu z języka Java i zauważam, że inni programiści często cytują łańcuchy używając pojedynczych cudzysłowów ( ''
) zamiast podwójnych cudzysłowów ( ""
). Na przykład:
line1 = 'This is how strings typically look.'
line2 = "Not like this."
Czy jest jakiś szczególny powód tego, poza osobistymi preferencjami? Czy to właściwy sposób na cytowanie ciągów? W szczególności chcę wiedzieć, czy istnieje jakiś typ standardowych lub przyjętych najlepszych praktyk, które napędzają ten styl kodowania.
python
coding-style
coding-standards
Eric Hydrick
źródło
źródło
Ruby
, że faktycznie jest różnica techniczna między pojedyncze i podwójne cudzysłowy. Podwójne cudzysłowy obsługują interpolację ciągów - pojedyncze cudzysłowy są traktowane jak literały.Odpowiedzi:
Pozostałe odpowiedzi są poprawne, ponieważ nie ma to żadnej różnicy technicznej, ale widziałem jedną nieformalną regułę stylu w kilku projektach typu open source: podwójne ciągi znaków są używane dla ciągów, które mogą być ostatecznie widoczne dla użytkownika (niezależnie od tego, czy potrzebują tłumaczenie), a pojedyncze cudzysłowy dotyczą ciągów, które odnoszą się do funkcjonalności samego kodu (np. klucze dict, wyrażenia regularne, SQL).
Z pewnością nie jest to reguła uniwersalna (ani nawet skodyfikowana w PEP), więc jak każdy inny arbitralny aspekt kodowania sprowadza się do lokalnych zasad.
Zauważ, że PEP 8 (którego nie zauważyłem, kiedy napisałem tę odpowiedź) mówi :
Jak zauważa komentator, niekoniecznie jest to sprzeczne, w zależności od tego, jak interpretujesz „zasadę”. Sugeruję, że tak naprawdę nie działa z drugą połową cytatu.
źródło
To bardzo proste:
Najbardziej Pythonic jest używany
'
(pojedyncze cudzysłowy), dopóki nie potrzebujesz podwójnych cudzysłowów.Poniższy cytat pochodzi bezpośrednio z dokumentacji literałów łańcuchowych.
źródło
Z technicznego punktu widzenia nie ma to znaczenia, z perspektywy stylu kilka myśli:
bar = '"It\'s awesome" he said.'
bar = "\"It's awesome\" he said."
źródło
Nie ma różnicy między używaniem pojedynczych i podwójnych cudzysłowów w Pythonie. W praktyce, w zależności od rodzaju danych, z którymi pracujesz, jeden lub drugi styl może być wygodniejszy.
Rodzaj cudzysłowów używany „domyślnie” (gdzie nie ma ważnego powodu, aby użyć jednego lub drugiego), jest raczej kwestią osobistych preferencji.
Aby uzyskać więcej informacji, zobacz sekcję dotyczącą literałów łańcuchowych w dokumentacji języka Python.
źródło
Rozważając kilka nawyków, czy regularnie stosować pojedyncze czy podwójne cudzysłowy, należy wziąć pod uwagę kilka rzeczy.
Podwójne cudzysłowy wymagają kluczowania dwoma palcami; i dlatego bardziej prawdopodobne są błędy w pisaniu, a także zmniejszenie prędkości
Twój edytor może pokazywać jedną postać lepiej niż inną; dla łatwiejszego debugowania składni wizualnej.
Dokumenty używają potrójnych znaków: Który wygląda lepiej? „” „” „” lub „” „”
Chociaż nie widziałem tego w systemie operacyjnym Windows, niektóre narzędzia składni lub dokumentacji mogą oczekiwać podwójnych wierszy pojedynczych cudzysłowów.
W przypadku większości samouczków w języku Python widziałem coś przeciwnego do twoich doświadczeń. Zazwyczaj widzę używane podwójne cudzysłowy.
źródło
Moim zdaniem wolę używać podwójnych cudzysłowów dla ciągu.
Dlaczego? Dla programistów innych języków można szybko dostosować i łatwiej zrozumieć kod.
Jeśli programista C zobaczy:
Będzie się wahał, zamiast:
źródło