1
import numpy as np
import matplotlib.pyplot as plt
print("FUNCTION GRAPHER")
def graph(formula,domain):
    x = np.array(domain)
    y = eval(formula)
plt.plot(x, y)
plt.show()
formula=input("Function: ")
domainmin=float(input("Min X Value: "))
domainmax=float(input("Max X Value: "))
graph(formula, range(domainmin,domainmax))

これは、グラファーを作成するための私のコードです。ご覧のとおり、ユーザーは関数とドメインを入力できます。単純な y=x 関数でテストしていますが、これがエラーです。入力の設定方法に関係があると思います。

FUNCTION GRAPHER
Function: x
Min X Value: -1
Max X Value: 10
Traceback (most recent call last):
  File "/Users/William/Documents/Science/PYTHON/Grapher.py", line 12, in <module>
    graph(formula, range(domainmin,domainmax))
TypeError: 'float' object cannot be interpreted as an integer

エラーが発生した後、次のように入力します。

graph('x', range(-1,10))

そして、グラフがポップアップします。Python 3.4 を使用しています。

4

1 に答える 1

2

ドキュメントから:

範囲コンストラクターへの引数は整数でなければなりません

したがってrange、この場合に使用するには、コードを次のように変更する必要があります。

domainmin=int(input("Min X Value: "))
domainmax=int(input("Max X Value: "))

または、おそらく意図したものに近い場合は、代わりにnumpy.arangeまたはを使用numpy.linspaceできるため、範囲を使用できます。グラニュレーション パラメーター ( for ) またはステップ数( for )floatをさらに追加する必要があります。steparangenumlinspace

于 2014-01-01T20:01:50.030 に答える