2016-08-06 4 views
1

나는 최근에 파이썬을 배우기 시작하고 난 당신이 날 귀찮게 된 질문으로 나를 도울 수있을 것으로 기대하고있다. 저는 Learn Python The Hard Way으로 파이썬 온라인을 배우고 있습니다. 운동 6에서, 나는 내가 %r 문자열 포맷 작업을 사용하여 한 문제를 가로 질러 와서 두 개의 서로 다른 문자열의 결과였다. 한 문자열을 인쇄 할 때 작은 따옴표 (' ')가 포함 된 문자열이 있습니다. 다른 사람과 나는 큰 따옴표 (" ")를 얻고 있었다. 여기 이 두 문자열의 차이점은 무엇입니까?

코드이다

x = "There are %d types of people." % 10 
binary = "binary" 
do_not = "don't" 
y = "Those who know %s and those who %s." % (binary, do_not) 

print "I said: %r." % x 
print "I also said: %r." % y 

제 프린트 명령문의 결과 :

I said: 'There are 10 types of people.'.

번째 프린트 명령문의 결과 :

I also said: "Those who know binary and those who don't.".

나는 싶다. 문 중 하나가 (" ")와 작은 따옴표 (' ')와 서로 결과를 가지고 이유를 알고있다. ] P.S. 파이썬 2.7을 사용하고 있습니다.

답변

1

%r 문자열의 repr 버전 얻고있다 : 당신이 볼

>>> x = 'here' 
>>> print repr(x) 
'here' 

을, 작은 따옴표는 일반적으로 사용되는 것입니다. 그러나 y의 경우 문자열 내에 작은 따옴표 (아포스트로피)가 있습니다. 음, 객체의 repr은 종종 코드로 평가하는 것이 원래의 객체와 동일하도록 정의됩니다. 파이썬이 작은 따옴표를 사용한다면, 에러가 발생합니다 :

>>> x = 'those who don't' 
    File "<stdin>", line 1 
    x = 'those who don't' 
       ^
SyntaxError: invalid syntax 

그래서 이중 따옴표를 대신 사용합니다.

1

공지 사항이 라인 ->do_not = "don't". 이 문자열에는 작은 따옴표가 있습니다. 즉, 작은 따옴표를 이스케이프해야 함을 의미합니다. 문자열 을 시작 을 종료 어디 다른 곳 인터프리터는 알고 것? 파이썬은 ""을 사용하여이 문자열 리터럴을 나타냅니다.

do_not = "dont"

>>> I also said: 'Those who know binary and those who dont.'.

Single vs. double quotes in python.

: 우리가 '을 제거하면

는, 우리는 문자열을 둘러싼 작은 따옴표를 기대할 수 있습니다

관련 문제