작은 따옴표와 큰 따옴표 [닫힘]


79

방금 Java 배경에서 나온 후 Python을 작성하는 작업을 시작했으며 다른 개발자가 큰 따옴표 ( '') 대신 작은 따옴표 ( )를 사용하여 문자열을 인용하는 경향이 있음을 알았습니다 "". 예를 들면 다음과 같습니다.

line1 = 'This is how strings typically look.'
line2 = "Not like this."

개인적인 취향 이외의 특별한 이유가 있습니까? 이것이 문자열을 인용하는 올바른 방법입니까? 특히, 내가 알고 싶은 것은 이러한 유형의 코딩을 주도하는 표준 또는 허용되는 모범 사례가 있는지 여부입니다.


5
만약 당신이 들어갈 경우 Ruby, 실제로 존재 입니다 단일 및 이중 따옴표 사이의 기술적 차이는. 큰 따옴표는 문자열 보간을 지원합니다. 작은 따옴표는 리터럴로 구문 분석합니다.
KChaloux

5
Perl과 대부분의 쉘에서도 마찬가지입니다.
Blrfl

18
이 질문은 어떻게 구성 적이 지 않습니까? 절대적인 파이썬 초보자로서 이것을 알아야합니다. bash 스크립트를 작성하면 큰 차이가 있습니다.
Magicsowon

19
건설적이지 않습니까? 이런. "python single double quotes"에 대한 첫 번째 Google 결과는 빠르게 알아야 할 사항을 알려줍니다. Eric에게 질문하고 답장을 보내 주셔서 감사합니다
aggieNick02

답변:


65

다른 대답은 기술적 인 차이가 없다는 점에서 정확하지만 몇 가지 오픈 소스 프로젝트에서 비공식적 인 스타일 규칙을 보았습니다. 번역) 및 작은 따옴표는 코드 자체의 기능 (예 : dict 키, 정규식, SQL)과 관련된 문자열입니다.

이것은 확실히 보편적 인 규칙이 아니며 (또는 PEP로 체계화되기도 함) 코딩의 다른 임의의 측면과 마찬가지로 로컬 규칙에 따릅니다.

PEP 8 (이 답변을 쓸 때 눈치 채지 못했음) 다음과 같이 말합니다 .

이 PEP는이를 권장하지 않습니다. 규칙을 고르십시오. 그러나 문자열에 작은 따옴표 나 큰 따옴표가 포함 된 경우 다른 문자열을 사용하여 문자열에서 백 슬래시를 피하십시오. 가독성을 향상시킵니다.

주석가가 지적했듯이 "규칙"을 해석하는 방법에 따라 반드시 모순되는 것은 아닙니다. 내가 제안하는 것은 인용의 후반부에서는 실제로 작동하지 않습니다.


1
이는 하우스 스타일 일 수 있지만 PEP 8에 위배됩니다. 컨텐츠에 관계없이 하나를 선택하여 전체 파일에 사용하십시오.
닐스 폰 바스

4
@NilsvonBarth PEP는 "하나의 구분 문자를 선택하고 고수"하지 말고 "규칙을 고른다"라고 말합니다. "사용자가 볼 수있는 텍스트에 대한 이중 따옴표, 기계에서 사용하는 것에 대한 작은 따옴표"는 완벽하게 훌륭한 규칙으로 보입니다.
Tanner Swett

1
@Tanner Swett 죄송합니다. 맞습니다. '파일 내'를 지정하는 것은 Google Python 스타일 가이드입니다. google.github.io/styleguide/pyguide.html#310-strings
Nils von Barth

블랙은 실제로 파이썬 문자열을 큰 따옴표로 묶습니다. jslint조차도 JavaSciprt 문자열을 큰 따옴표로 묶기를 원합니다. 대부분의 오래된 언어는 옵션을 제공하지 않았습니다. 그렇게 할 수 있다고해서 꼭해야하는 것은 아닙니다. 물론 문자열에 따옴표가있을 때와 같이 아주 좋은 경우가 있습니다. 실제로, 대부분의 문자열은 코드베이스에 하드 코딩되지 않은 데이터 세트에서 가져와야합니다.
Bobort

1
@bobort 번역이나 UI 시스템에서 문자열을 찾는 경우에도 종종 코드의 문자열 키가 필요합니다. 그러나 나는 일이 진행되었다는 데 동의하며,이 차이에 실제로 아무런 이점이 없습니다.
detly

21

매우 간단합니다 :

  • 작은 따옴표는 이스케이프 처리되지 않은 큰 따옴표를 포함 할 수 있습니다.
  • 큰 따옴표는 이스케이프 처리되지 않은 작은 따옴표를 포함 할 수 있습니다.

'큰 따옴표가 필요할 때까지 (작은 따옴표) 를 사용하는 것이 가장 Pythonic 입니다.

다음 인용문은 문자열 리터럴에 대한 문서에서 직접 인용 한 것입니다.

유니 코드 문자열로 제공됩니다. 파이썬 2에서는 접두사 'b'또는 'B'가 무시됩니다. 이는 리터럴이 파이썬 3에서 바이트 리터럴이되어야 함을 나타냅니다 (예 : 코드가 2to3으로 자동 변환 될 때). 'u'또는 'b'접두어 뒤에 'r'접 두부가 올 수 있습니다.

삼중 따옴표로 묶인 문자열에서 이스케이프 처리되지 않은 줄 바꿈과 따옴표는 허용되며 유지됩니다. 단, 행에서 3 개의 이스케이프 처리되지 않은 따옴표는 문자열을 종료합니다. ( "quote"는 문자열을 여는 데 사용되는 문자입니다 (예 : '또는 ").)


15
물론 다른 모든 언어가 큰 따옴표를 사용할 때 작은 따옴표를 선호하는 이유는 무엇입니까?
Martin Beckett

13
@MartinBeckett because

3
Ahh 물론 ;-)
Martin Beckett

6
@JarrodRoberson : PEP (또는 이와 유사한)로 파이썬 방식으로 작성된 "because"(또는 "because")는 올바른 답 이라고 생각합니다 . 그렇지 않으면 그것은 단지 개인적인 선택입니다.
Joachim Sauer

5
작은 따옴표는 더
깔끔해 보이고

17

기술적 인 관점에서 보면 스타일 관점에서 몇 가지 생각은 차이가 없습니다.

  • 대부분의 다른 프로그래밍 언어는 큰 따옴표를 사용합니다.
  • 영어로 쓸 때 일반적으로 큰 따옴표가 사용됩니다.
  • 작은 따옴표는 더 자연스럽고 큰 따옴표를 사용할 수 있기 때문에 응용 프로그램에 비 기술적 / 설명 적 텍스트가 많은 경우 유용합니다. bar = '"It\'s awesome" he said.'
  • 반면에 작은 따옴표 문자는 영어에서 몇 번 사용되기도합니다. bar = "\"It's awesome\" he said."

"는 종종 기술 문자열에도 사용됩니다."{dumb_thing}을 (를) 제출 했는데도 우리에게는 너무 바보입니다! '
Christian Sauer

4

파이썬에서 작은 따옴표와 큰 따옴표를 사용하는 것에는 차이가 없습니다. 실제적인 용어로 작업하는 데이터의 종류에 따라 하나 또는 다른 스타일이 더 편리 할 수 ​​있습니다.

"기본적으로"사용 된 따옴표 유형 (둘 중 하나를 사용해야 할 이유가없는 경우)은 개인적인 취향의 문제입니다.

자세한 내용 은 Python 설명서의 문자열 리터럴 섹션을 참조하십시오 .


4

작은 따옴표 또는 큰 따옴표를 정기적으로 사용할지 습관을 개발할 때 고려해야 할 사항.

큰 따옴표에는 두 손가락 키잉이 필요합니다. 따라서 입력 오류와 속도 감소 가능성이 더 높습니다

편집자는 한 캐릭터보다 다른 캐릭터를 더 잘 보여줄 수 있습니다. 보다 쉬운 시각적 구문 디버깅

독 스트링은 삼중 문자를 사용합니다. "" "" ""또는 '' '' ''

Windows OS에서는 이것을 보지 못했지만 일부 구문 또는 설명서 도구에는 큰 따옴표가 필요합니다.

내가 본 대부분의 파이썬 튜토리얼에서 나는 당신의 경험과 반대되는 것을 본다. 일반적으로 큰 따옴표가 사용됩니다.


4

제 생각 에는 문자열에 큰 따옴표 를 사용하는 것을 선호 합니다.

왜? 다른 언어의 프로그래머는 신속하게 적응하고 코드를 더 쉽게 이해할 수 있습니다.

C 프로그래머가 다음을 참조하십시오.

'Writing "It\'s big?" No.'

다음 대신에 망설입니다.

"Writing \"It's big?\" No."

3
"쓰기" "큰가요?"
야수

@Lucio 그것은 내가하고있는 일이며, 내가 확립 한 파이썬 표준을 위반하고 있는지 여부는 알지 못했습니다.
Eric Hydrick

@EricHydrick 아니요, 둘 중 하나를 선택할 수 있습니다.
Lucio
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.