2010-06-22 8 views
3

파이썬에서 + \ 연산자는 무엇을합니까? + 파이썬에서 연산자

rows=urllib2.urlopen('http://ichart.finance.yahoo.com/table.csv?'+\ 
's=%s&d=11&e=26&f=2006&g=d&a=3&b=12&c=1996'%t +\ 
'&ignore=.csv').readlines() 

을하고 그것을 설명 참조를 찾을 수 없습니다 -

나는이 코드 조각을 건너왔다.

답변

18

+가 또한있다 뒤에 바로 + 연산자 오퍼레이터 안이다. 행의 끝에있는 \은 현재 명령문이나 표현식을 다음 행에서 계속합니다.

+3

나를 치기 위해 모든 것을 망쳤습니다;) – Eltariel

+7

그리고 재미있는 점은이 경우에도'\\'가 필요 없다는 것입니다. –

+2

사실입니다. 파이썬 파서는 모든 "그룹핑"(이 경우에는 괄호)이 닫혀 있지 않기 때문에 표현식이 다음 줄에서 계속되어야한다는 것을 모호하지 않게 결정할 수 있습니다. –

7

그것은은 줄 연속 \

11

N.B. 식이 괄호 안에 있기 때문에이 경우 연속이 필요하지 않습니다. \ 파이썬은 모든 대괄호, 중괄호 및 괄호가 균형을 이룰 때까지 행이 계속된다는 것을 알기에 충분히 똑똑합니다.

불필요한 연속 문자는 내 작은 버그이며, 모든 기회에 삭제됩니다. 그들은 코드를 혼란스럽게 만들고, 일종의 연산자라고 생각하는 초보자들을 혼란스럽게 만들고 우연히 그들을 뒤쫓아서 눈에 보이지 않게 깨뜨릴 수 있습니다.

또한 첫 번째 + 문자는 필요하지 않습니다. Python은 자동으로 문자열 리터럴을 연결합니다.

나는 또한 표현의 끝에 % 연산자를 이동하고 두 번째 +을 제거하기 때문에 라인으로 다시 작성할 수 있습니다 것입니다 :

rows=urllib2.urlopen('http://ichart.finance.yahoo.com/table.csv?' 
        's=%s&d=11&e=26&f=2006&g=d&a=3&b=12&c=1996' 
        '&ignore=.csv' % t).readlines() 
1

당신은 너무

rows=urllib2.urlopen('http://ichart.finance.yahoo.com/table.csv?' 
        's=%s&d=11&e=26&f=2006&g=d&a=3&b=12&c=1996' 
        '&ignore=.csv'%t).readlines() 
같은 코드를 다시 작성할 수 있습니다

파서는 행을 하나로 결합하므로 런타임시 쓸모없이 문자열을 함께 추가하여 시간을 낭비하지 않습니다.