문제

이 질문은 이미 여기에 답이 있습니다.

PHP에서 "이중 인용문"으로 둘러싸인 문자열은 변수를 대체 할 수 있도록 구문 분석되는 반면, '단일 따옴표'로 둘러싸인 문자열은 그렇지 않습니다. 파이썬에서는 이것이 또한 적용됩니까?

도움이 되었습니까?

해결책

아니:

2.4.1. 문자열 및 바이트 리터럴

... 평범한 영어 : 두 유형의 리터럴을 일치하는 단일 따옴표로 둘러싸여 있습니다 (') 또는 이중 인용문 ("). 또한 3 개의 단일 또는 이중 인용문의 일치하는 그룹으로 둘러싸여있을 수 있습니다 (일반적으로 트리플 인용 문자열이라고합니다). 백 슬래시 (\) 캐릭터는 Newline, Backslash 자체 또는 인용 문자와 같은 특별한 의미를 가진 캐릭터를 피하는 데 사용됩니다 ...

다른 팁

Python은 몇 안되는 (?) 언어 중 하나와 "동일한 기능을 갖는다. 선택은 일반적으로 내부의 내용에 달려있다. 내 안에 단일 인용문이있는 문자열을 인용하려면 이중 인용문을 사용하겠다. 그리고 비자 Vera, 문자열에서 캐릭터를 탈출 해야하는 것을 줄입니다.

예 :

"this doesn't require escaping the single quote"
'she said "quoting is easy in python"'

이것은 파이썬 문서의 "문자 리터럴"페이지에 문서화되어 있습니다.

다른 언어에서는 단일 따옴표를 사용하는 경우 메타 문자가 해석되지 않습니다. 루비 에서이 예를 들어보세요 :

irb(main):001:0> puts "string1\nstring2"
string1
string2
=> nil
irb(main):002:0> puts 'string1\nstring2'
string1\nstring2
=> nil

파이썬에서 문자 그대로 문자열을 가져 오려면 생 현이 ( 'r'문자 앞에있는 문자열)를 사용할 수 있습니다.

>>> print 'string1\nstring2'
string1
string2
>>> print r'string1\nstring2'
string1\nstring2

파이썬의 단일 및 이중 인용 문자열은 동일합니다. 유일한 차이점은 단일 크기의 문자열에 에스카로운 이중 인용 문자가 포함될 수 있으며 그 반대도 마찬가지입니다. 예를 들어:

'a "quoted" word'
"another 'quoted' word"

다시, 트리플 인용 문자열이 있으며, 이는 인용문과 신어 라인이 모두 에스코지를받지 못하게합니다.

명명 된 지정자와 locals () 내장을 사용하여 문자열로 변수를 대체 할 수 있습니다.

name = 'John'
lastname = 'Smith'
print 'My name is %(name)s %(lastname)s' % locals()  # prints 'My name is John Smith'

대화식 Python 통역사는 단일 인용문을 선호합니다.

>>> "text"
'text'

>>> 'text'
'text'

이것은 초보자에게 혼란 스러울 수 있으므로 코딩 표준이 다르지 않는 한 단일 인용문을 고수합니다.

"과 '문자열 인용의 차이점은 스타일입니다. 하나는 문자열 내용 내부의 다른 사람을 탈출 할 필요성을 제거한다는 점을 제외하고.

스타일

pep8 일관된 규칙을 권장하고 PEP257 docstrings는 트리플 이중 인용문을 사용한다고 제안합니다.

파이썬에서는 단일 크기의 문자열과 이중 인용 문자열이 동일합니다. 이 PEP는 이에 대한 추천을하지 않습니다. 규칙을 선택하고 고수하십시오. 그러나 문자열에 단일 또는 이중 인용 문자가 포함 된 경우 다른 하나를 사용하여 문자열의 백 슬래시를 피하십시오. 가독성을 향상시킵니다.

트리플 인용 문자열의 경우 항상 PEP 257의 DOCSTRING Convention과 일치하기 위해 항상 이중 인용 문자를 사용하십시오.

그러나 널리 사용되는 것은 자연 언어 문자열 (보간 포함)을 선호하는 관행입니다. 기술 문자열에 대한 단일 따옴표 : 기호, 숯, 경로, 명령 줄 옵션, 기술적 인 regexes, ...

(예를 들어, i18N에 대한 코드를 준비 할 때, 나는 반자동 리그 즈를 실행하여 이중 인용 문자열을 빨리 사용하여 EG를 사용합니다. gettext)

파이썬에서 문자열을 Qoute 할 수있는 3 가지 방법이 있습니다 : "String" 'String' "" "String String" ""모두 동일한 결과를 생성합니다.

파이썬에는 차이가 없으며 XML을 생성 할 때 실제로 유리하게 사용할 수 있습니다. 올바른 XML 구문은 속성 값에 대한 이중 인용물이 필요하며 Java와 같은 많은 언어로서 다음과 같은 문자열을 만들 때이를 피할 수 있습니다.

String HtmlInJava = "<body bgcolor=\"Pink\">"

그러나 Python에서는 단순히 다른 견적을 사용하고 일치하는 최종 인용문을 사용해야합니다.

html_in_python = '<body bgcolor="Pink">'

꽤 좋은 응? EOL은 다음과 같이 포함하여 3 개의 이중 인용문을 사용하여 멀티 라인 문자열을 시작하고 종료 할 수 있습니다.

multiline_python_string = """
This is a multi-line Python string which contains line breaks in the 
resulting string variable, so this string has a '\n' after the word
'resulting' and the first word 'word'."""

예. 단일 및 이중 인용문을 주장하는 것은 파이썬에서 동일합니다.

그렇지 않으면 다음 코드에서는 두 배가 인용 문자열이 Python이 처리하는 데 4.5% 더 오래 걸리지 않았습니다.

import time

time_single = 0
time_double = 0

for i in range(10000000):
    # String Using Single Quotes
    time1 = time.time()
    str_single1 = 'Somewhere over the rainbow dreams come true'
    str_single2 = str_single1
    time2 = time.time()
    time_elapsed = time2 - time1
    time_single += time_elapsed

    # String Using Double Quotes 
    time3 = time.time()
    str_double1 = "Somewhere over the rainbow dreams come true"
    str_double2 = str_double1
    time4 = time.time()
    time_elapsed = time4 - time3
    time_double += time_elapsed

print 'Time using single quotes: ' + str(time_single)
print 'Time using double quotes: ' + str(time_double)

산출:

>python_quotes_test.py
Time using single quotes: 13.9079978466
Time using double quotes: 14.5360121727

따라서 물건을 아는 것처럼 빠른 깨끗한 존경할만한 코드를 원한다면 실용적 일 때마다 문자열에 대한 단일 따옴표를 사용하십시오. 또한 시프트 키를 건너 뛰면 에너지가 적습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top