2015-01-31 6 views
2

프로그래밍 경험이 없으며 수업을 위해 Python을 배우고 있습니다. 이제 조건문을 살펴보고 그 원인을 이해하지 못하는 문제가 있습니다.왜 범위가 정의되지 않았습니까?

저는 기본적으로 x가 음수가 아니라는 제한하에 x의 원하는 간격 내에 x^2를 그려 보려고합니다. 사용자가 음수 입력을 입력하면 허용되지 않는다는 메시지가 표시됩니다. 그렇지 않으면, x 대 x^2가 그려 져야합니다.

NameError: name 'arange' is not defined 

arange()는 일반적으로 내 (거의) 이해에서 정의되어 있기 때문에 이해가 안 :

N = input('Enter upper limit of x:'); 
if N < 0: 
    print "Negative input isn't allowed." 
else: 
    x = arange(N) 
    y = x*x 
    plot(x,y) 

위는 나에게 오류를 제공합니다.

+2

'from numpy import *'? – L3viathan

+0

질문 제목에 오타가 있습니다. –

답변

4

대화 형 셸 ipython을 통해 python에 노출 되셨습니까? ipython과 함께 사용하면 더 이상 사용되지 않는 명령 줄 스위치 -pylab을 사용하여 matplotlib.pyplot 모듈과 numpy 라이브러리의 matplotlib 대화식 명령을 사용자에게 노출 할 수 있습니다.

당신은 당신이 일을 더 복잡 것을 발견 할 것이다 첫 번째 파이썬 프로그램을 작성하는 이러한 습관을 가지고

...

당신은 기본적으로 두 가지 솔루션을 가지고, 첫 번째는 수

from pylab import * 
... 

입니다 하나

import numpy as np 
import matplotlib.pyplot as plt 
# ... 
x = np.arange(N) 
# ... 
plt.plot(x, x*x) 

경우에도 t 둘째, 스크립트 및에서 arangeplot 같은 비정규 함수 이름을 호출 두 번째 가능성은 첫 번째 것보다 더 길다. 권장 사항이다. 정규화되지 않은 가져 오기는 스크립트의 네임 스페이스를 오염시키기 때문에 나쁜 습관으로 간주되며, 특히 matplotlib.pyplotnumpy과 같은 대형 모듈에서는 수백 가지 이름을 정의한다.

npplt의 이름을 사용하면 이러한 선택 사항은 넷과 SO 1000의 예제에서 볼 수 있듯이 채택하는 것이 가장 좋습니다. 이러한 이름을 정확하게 사용하여 플로팅 및 숫자 라이브러리에 액세스합니다.

import numpy as np 
import matplotlib.pyplot as plt 

그것이 당신이해야 할 조언 것입니다 소위 일반적인 관용구이다 사용, 요약하면.

1

"arange"는 Numpy에서 나온 것 같습니다. 내장 파이썬 기능을 원하면 "xrange"를 사용해야합니다. 만약 당신이 Numpy를 "arange"로 원한다면, Numpy를 가져와야 할 것입니다. 코드의 당신 싹둑을 바탕으로, 당신은 NumPy와 이렇게 추가 사용 :

from numpy import *

+0

Numpy가 정확히 무엇인지 찾아야하지만, arange 대신 xrange를 넣으려고 시도했는데 TypeError : * : 'xrange'및 'xrange'에 대해 지원되지 않는 피연산자 유형 – BRamses

+0

matplotlib 또는 제발? – Nope

+0

Matplotlib가 벨을 울리지 만 솔직히 확신 할 수 없습니다. 우리 수업에서 캐노피 패키지를 다운로드 할 수있게되었고, 필자는 그것을 통해 편집기를 열었습니다. 코드 잘라내기를 추가 했는데도 여전히 TypeError를 제공합니다. – BRamses

7

파이썬 명령 내장을 많이했다. 그러나 arangeplot은 그 중 일부가 아닙니다. 이들은 numpymatplotlib에 의해 제공됩니다.

당신은 추가 할 수 있습니다 작동하도록 코드를 얻으려면 :

from numpy import * 
from matplotlib import * 

을 코드의 상단에. 그러나 이것은 권장 된 방법이 아닙니다. 가끔 그 기능

x=numpy.arange(N) 

matplotlib.plot(x,y) 

을이 권장하는 이유입니다 호출 할 때 다음이를 다른 모듈이있을 수 있습니다

import numpy 
import matplotlib 

과 : 그것은 어떻게하는 것이 좋습니다 동일한 함수 이름. 더 나은입니다

A는 (아주) 약간 더 고급 버전과 같은 것입니다 : 명령 plot 실제로이다 인 (

import numpy as np 
import matplotlib.pyplot as plt 
x=np.arange(N) 
plt.plot(x,y) 

npnumpy위한 표준 약자로 pltmatplotlib.pyplot의 표준 약어입니다 한정된). 이것들은 표준 약어이며, matplotlib의 일부만 가져 오면 오버 헤드를 줄일 수 있습니다.

평범한 파이썬 목록과 비교할 때 numpy 배열을 읽어야합니다.

+0

감사합니다. 차이점을 찾아 조금 더 강하게 이해할 수 있는지 알아 보겠습니다. – BRamses

관련 문제