2017-11-06 5 views
2

(A)는이 작품 :빈 줄은 파이썬 함수에서 허용되지 않습니까?

def func(): 
    x = 1 
    print(x)  
    return 

(B)이 작동하지 않습니다

def func(): 
    x = 1 

    print(x)  
    return 

(C)를이 또한 작동하지 않습니다 여기에 (내가 사용하고 '_'에 표시 공백)

def func(): 
    x = 1 
____ 
    print(x)  
    return 

은 (D)는이 작품 :

def func(): 
    x = 1 
____# some comment 
    print(x)  
    return 
0 모두 (B) 및 In

(C) 나는 다음과 같은 오류를 얻을 :

  • 나가서 설명하자면 NameError : 이름을 'X'
  • 구문 에러 정의되지 않은 : 함수 외부 '반환'

내가 Eclipse와 PyDev 플러그인을 사용합니다. Python 버전은 3.5이고 PyDev 버전은 4.5입니다.

---------- 업데이트 ----------

  1. 문제는 Jupyter 노트북 및 PyCharm에서 재현되지 않습니다.

  2. Eclipse에서 "공백 문자 표시"를 켰습니다. (C)의 들여 쓰기는 실제로 편집기에서 4 개의 점으로 표시되는 4 개의 공백으로 구성됩니다. 탭인 경우 Eclipse 편집기에서 ">>"로 표시됩니다.

내 조사 및 아래의 의견/대답을 감안할 때, 나는 이것이 Eclipse 및/또는 PyDev의 어리석은 버그라고 확신합니다.

도움 주셔서 감사합니다.

+0

물론 (B)는 Python에서 작동합니다. 오류는 다른 곳에서 발생합니다. – VPfB

+1

내 코드에서 _을 사용하지 않습니다. 나는 명확성을 위해이 질문에 그것을 사용하고있다. – Jimbo

+8

재현 할 수 없습니다. 들여 쓰기에 탭과 공백이 혼합되어있을 수 있습니다. – DavidG

답변

2

귀하의 교장 질문에 대답 : 빈 줄은 파이썬 기능에서 허용되지 않습니까?

빈 줄 은 확실히 파이썬 기능에서이 허용됩니다.

모든 예제 (A, B, C, D)가 작동해야하며 문제는 "Eclipse 및 PyDev 플러그 인"과 관련이 있습니다.

같은 다른 IDE로 마이그레이션 고려 :

그리고 개발을 돕기 위해 Jupyter Notebook을 사용하는 것이 좋습니다.

(_ 있습니다 가지 공간)

def func(): 
____x = 1 
____ 
____print(x) 
____return 

그것은

가 동일하지 않습니다 잘 작동합니다

4

그들이 그렇게, 동일하지 않습니다, 탭과 공백주의

def func(): 
++x = 1 
__ 
++print(x) 
++return 
(+ _ 탭, 공백이다)3210

작동하지 않음

+0

고맙습니다. 이것은 나와 같은 파이썬을 처음 접하는 다른 누구에게나 매우 유용한 정보입니다. 그러나 이것이 내 문제의 원인은 아닙니다. 나는 투표 할 것이지만 대답으로 다른 하나를 선택할 것입니다. – Jimbo