파이썬 프로그래머는 공백 문제가 불편하다고 생각합니까? [닫은]


11

파이썬을 처음 접했을 때 많은 프로그래머들은 공백의 중요성에 의해 즉시 연기됩니다. 이것이 불편하다는 여러 가지 이유를 들었지만 파이썬 프로그래머의 불만은 들어 본 적이 없습니다.

물론 Java 세계에서 경력을 쌓았으므로 많은 Python 프로그래머를 만나지 못했습니다.

그래서 내 질문은 큰 파이썬 프로젝트에 참여한 사람들 (3 개월 이상, 파이썬이 기본 언어가 사용됨)에 대한 것입니다. 공백 문제가 불편하고 지속적으로 성가신 것으로 나타 났습니까? 아니면 흐름에 들어가면 문제가 아닌가?

파이썬을 위해 또는 반대하거나 공백을 사용하거나 반대하기 때문에 질문을하지 않습니다. 나는 파이썬을 좋아하지만 큰 것을 위해 결코 사용하지 않았습니다.

파이썬에 익숙하지 않은 경우 추측을 제공하지 마십시오.


2
그들이 사용했다면 언어를 사용하고 있었습니까? 나는하지 않을 것입니다. 귀찮고 혼란스러운 구문 요구 사항은 프로젝트에 대해 다른 언어를 선택할 수있는 것 중 하나입니다 (물론 선택할 수 있다고 가정).

공백은 언제 문제입니까? :-)
Kugel

22
우리는 다른 사람들이 계속 가져 오는 것이 불편하다는 것을 알게되었습니다. 우리는 그것에 대해 결코 생각하지 않습니다.
Winston Ewert

공백 문제는 몇 년 전과 다르지 않습니다. OCCAM2에는 상당한 공백이있었습니다. 별거 아니었다.
quick_now

4
내가 성가 시게 한 것은 탭 대신 공백을 사용하여 온라인에서 코드를 복사하여 붙여 넣을 때 (또는 그 반대로) 문자 그대로 보이지 않는 구문 오류를 일으키는 경우입니다.
Cameron

답변:


14

공백이 성가신 것으로 판명되는 경우는 한 가지뿐입니다. 기존 코드를 수정하여 코드 블록을 이전보다 들여 쓰기 해야하는 경우가 있습니다 (예 : if:코드 앞에 추가 또는 삭제 ). C와 같은 언어로 쓸 때 if중괄호와 괄호를 추가 하고 (Emacs에서는 편집기가 좋을 것 같습니다) Tab을 눌러 편집기가 들여 쓰기를 자동으로 수정하도록하십시오. 파이썬에서는 직접해야합니다. 물론, 직접 편집 할 수있는 바로 가기가 있으므로 그렇게 나쁘지는 않지만 중복성 손실로 인해 프로그래머에게 약간의 추가 부담이 발생합니다.

화면의 절반이 다음과 같은 줄로 채워지지 않도록 막는 것이 전체적으로는 승리입니다.

         }
      }
   }
}

1
파이썬을 사용하는 합리적인 편집기에는 코드 블록을 다시 작성하는 매우 쉬운 방법이 있습니다. Wing IDE에서 블록을 선택하고 Tab (또는 들여 쓰기 레벨을 줄이려면 Shift-Tab)을 누르십시오.
Adam Crossland

1
예, Emacs에서 블록을 선택하고 C-c >또는을 누르십시오 C-c <. 그래도 여전히 스스로해야합니다. 다시 말해 공백과 코드 로직이 중복되지 않기 때문에 거대한 블록을 선택하고 M-x indent-region모든 "올바른"들여 쓰기를 호출 할 수는 없습니다 .
dfan

6
@Adam, 훌륭한 편집자는 들여 쓰기 레벨을 쉽게 변경할 수 있습니다. 그러나 중괄호 언어에서는 새 코드를 붙여넣고 좋아하는 키 입력을 눌러 파일을 다시 들여 쓸 수 있습니다. 타다! 들여 쓰기가 정확합니다. 파이썬에서는 붙여 넣기, 선택, 들여 쓰기 / 들여 쓰기해야합니다. 그다지 많지 않지만 여기서는 중괄호로 작은 승리가 있습니다.
Winston Ewert

@Winston-편집자 여야합니다. 붙여 넣은 코드 자체가 제대로 들여 쓰기가되어 있지 않으면 오른쪽 / 왼쪽으로 너무 멀면 (SHIFT +) Tab 만 입력하면됩니다. 키를 누르는 것과의 차이는 아닙니다. 파일을 다시 들여 쓰기하십시오. 게다가-코드를 복사 / 붙여 넣기하지 말아야합니다 :)
Ingo

1
@Winston : Tab과 Shift-Tab을 사용할 때 메모장 ++ 들여 쓰기 블록조차도 vim 지름길을 찾지 못했지만 충분히 사용하지는 않습니다 : p
Matthieu M.

50

나는 파이썬의 중요한 공백을 좋아합니다. 나에게 그것은 구문 수준에서 DRY의 완벽한 예입니다. 코드 블록이 시작하고 끝나는 위치를 나타내는 사람이 읽을 수있는 방법은 들여 쓰기입니다. 코드를 읽을 수있게하려면 언어에 관계없이 들여 쓰기를해야합니다. 프로그래머가이 정보를 컴파일러 / 통역사와 인간에 대해 한 번씩 두 번 지정하도록하는 것은 어리석은 일입니다. 또한 C와 같은 언어의 들여 쓰기는 주석과 유사합니다. 이해를 향상시키기위한 것이지만 그 의미는 컴파일러 / 인터프리터에 의해 시행되지 않으며 실제 의미 (중괄호가있는 위치)와 매우 쉽게 일치 할 수 있습니다. 명확하게하기보다는 난독 처리하기.


8
스스로 반복하지 않음 +1 어쨌든 블록 구조를 반영하기 위해 코드를 들여 쓰는 것이 좋습니다. 왜 시작 / 끝 마커가 있습니까?
Steve314

12

중요한 공백은 실제로 나에게 편리 합니다. 입력이 줄어 듭니다. 깔끔하고 명확하게 코드를 포맷합니다. 이로 인해 코드를 더 읽기 쉽게 만듭니다.

(저도 같은 이유로 Haskell에서 중요한 공백을 좋아합니다.)


1
필자는 Haskell 공백과의 긍정적 인 경험을 공유했지만 FarmBoy는 Python에 대해 3 개월의 경험이 있어야한다고 주장했습니다. 다른 것은 추측이었습니다. :-)
Ingo

1
1998 년부터 파이썬 우리와 내 경험, 내 대답은 아마도 :) 자격 때문에 (너무의 나쁜 하스켈 내 경험이 훨씬 짧습니다.)
9000

@ 9000 Haskell이 Python보다 먼저 왔지만! : D
pradyunsg

8

내가 처음 파이썬을 사용했을 때, 공백은 새롭고 성가신 제한이었습니다.

이제는 눈치 채지 못합니다. 나는 11 개월 동안 파이썬을 사용 해왔다.


5

먼저 빵과 버터 언어는 Python, SQL 및 Java입니다. 나는 파이썬의 공백을 좋아한다-구문과 타이핑이 적으며 사람들이 읽을 수 있고 깔끔한 형식의 코드를 작성하도록 강요한다. OTOH, Java의 장황함을 싫어합니다. 실제로 파이썬 을 사용 하여 Java로 작성해야하는 모든 상용구를 생성 하므로 생산성에 놀라워하는 모든 Java 동료들에게 깊은 인상을줍니다.

그러나 웹에서 코드를 복사 / 붙여 넣을 때주의해야 할 한 가지 큰 단점은 공간과 탭이 혼합되어 정리하는 데 추가 단계가 필요한 경우가 많으며 일반적으로 런타임 예외 후에 만 ​​발생합니다.


편집기에 오류 강조 표시 탭을 구문 오류로 알려 주면 많은 도움이 될 수 있습니다. highlight link RedundantSpaces Error | au BufEnter,BufRead * match RedundantSpaces "\t" | au BufEnter,BufRead * match RedundantSpaces "[[:space:]]\+$"vimrc에서 사용하는 vim의 경우
Daenyth

4

공백의 중요성으로 프로그래머가 짜증 나면 아마도 파이썬 프로그래머가되지 않을 것입니다.


1
나는 파이썬을 설교하는 사람들이 The Whitespace Thing (tm)에 문제가 있다고 말했지만 얼마 후에 좋아하게되었다고 들었습니다. 내 관찰에 따르면, 더 많은 사람들이이 주제에 대한 토론에 참여할수록 그러한 이야기를하는 사람들 중 하나의 가능성이 하나에 접근하는 것 같습니다. (편집 : 두 번째 답변으로 즉시 입증 ...)

@delnan, 나는 이것을 구독 할 수 있습니다.
Ingo

3

중요한 공백에 문제가있는 사람들과 Emacs와 같은 훌륭한 프로그래머의 텍스트 편집기에 경험이없는 사람들과 관련없이 대부분의 들여 쓰기를 처리하는 사람들 사이에 상당한 겹침이있을 것입니다.

어쨌든 파이썬을 내면화하면 더 이상 문제가되지 않습니다. 실제로 화면의 간결함과 화면에 차지하는 작은 공간은 가독성에 큰 이점이됩니다. 필자는 주로 파이썬을 사용하고 있었기 때문에 스스로 작성하는 데 어려움이 더 많은 언어 (예 : Java 및 C #)가있는 언어를 발견했습니다. 들여 쓰기가 이미 구조를 명확하게 만드는 코드 주위에 중괄호를 넣으면 내 신경이 삐걱 거립니다.


3

실제 코딩의 경우 전혀 불편하지 않지만 실제로는 이점이 있습니다 (dsimcha의 답변 참조).

많은 프로그래밍 지향적 인 웹 포럼과 같은 주요 공백을 존중하지 않는 통신 기술을 처리하고 HTML 템플릿 언어와 같은 다른 언어에 Python 코드를 포함시킬 때 성가신 일이 있습니다. 파이썬의 결함보다 선행 공백을 제거하는 도구의 결함이 많을수록 코드 구조를 두 번 표현하는 중복 언어가 그러한 파괴적인 환경을 처리하는 데 더 적합하다는 것이 사실입니다 (코드를 편집기에 붙여 넣고 자동으로 명시 적 구조적 마커를 기반으로 다시 들여 쓰거나 코드가 사람이 읽지 않고 실행되고 있는지 신경 쓰지 마십시오).


2

공백이 성 가시지 않습니다. 다른 언어에서는 들여 쓰기가 부족하거나 일관성이 없습니다. 이 문제는 스타일이 해결하려는 문제 중 하나라는 것을 알고 있습니다.

파이썬은 나의 주요 언어 중 하나가 아닙니다.

가끔 들여 쓰기로 탭과 공백을 처리하는 것을 발견했습니다. 편집기를 한 편집에서 다른 편집으로 전환하거나 다른 사람이 작성한 코드를 편집 할 때 문제가 발생할 수 있습니다. 일반적으로 해결하기가 쉽지 않습니다.


1
파이썬 들여 쓰기에서 탭과 공간을 혼합하는 것은 지옥으로가는 가장 짧은 길입니다. p
Matthieu M.

@Mattieu : 확실히, 그것은 저의 성가심입니다.
BillThor

1

나는 C # / Javascript / XBase 배경에서 특별한 순서로 나오지 않으며 파이썬을 사용하는 데는 전혀 고려되지 않습니다. 그것은 다른 언어의 괄호와 같습니다. 그것이 작동하는 방식이고, 규칙이 말하는 것처럼 물건을 넣고 눈을 건조시키는 것이 저의 태도입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.