次のような関数を定義することを含むpythonでプログラムを作成しています:
def GetNumbers():
print('What is the coefficient of x^2?')
global xsqurd = int(input)
しかし、この関数を呼び出すと、構文エラーが返され、「=」は無効な構文であると表示されます。私は何を間違えましたか?
このようにする必要があります:
def GetNumbers():
global xsqurd
xsqurd = int(input('What is the coefficient of x^2? '))
Python 2.x の場合、raw_input
の代わりに使用する必要があることに注意してくださいinput
。
グローバルを使用しないでください。ほとんどの場合、それは悪い解決策です。代わりに値を返すことを検討してください。そうは言っても、そのエラーが表示される理由は次のとおりです。
global
そのキーワードと名前だけを取るステートメントの一部です。を使用するglobal
には、分割する必要があります。
global xsqurd
xsqurd = int(input)
もちろん、これは入力が他のグローバル変数であることを前提としています。Claudiu が以下で指摘したように、おそらくinput()
.
あなたが間違っていたのは、有効な構文ではないものを書いたことです。
global
ステートメントは、一連の変数名を取り、それらがグローバルであることを宣言するだけです。他の構文をランダムにスローすることはできません。
グローバルであることを宣言しようとしxsqurd
ていて、同じステートメントでそれを更新しようとしていた場合、それを行う方法はありません。次の 2 つのステートメントを記述します。
global xsqurd
xsqurd = int(input)
これを試して:
xsqurd = None
def GetNumbers():
print('What is the coefficient of x^2?')
global xsqurd
xsqurd = int(22)
GetNumbers()
print xsqurd
global xsqurd
ステートメントは割り当ての前にあることに注意してください。