最近私に尋ねた後、申し訳ありません。私はこの問題を解決しようと太陽の下ですべてを試みましたが、私はそれを修正することはできません。あなたが私が何を試してきたのか分かっていれば、私はこのエラーを修正しようとしたすべての作業の後に私の頭が回転しているので、私の答えは「わからない」だろう。Python:グローバル名は定義されていません(しかし、グローバル変数ではありません)
def function1():
if driver == "Steve Park" and season == "2000"
averageFinish = 10.0
return averageFinish
def function2():
momentum = int (input ("Enter the momentum for the driver: "))
global driver, season
if driver == "Steve Park" and season == "2000" and momentum == "5"
newAverageFinish == function1() - 2.0
print(newAverageFinish)
return newAverageFinish
def main():
global driver
driver = input ("Enter a driver: ")
global season
season = int (input ("Enter a season: "))
function1()
function2()
# Output should be 8.0
出力は次のようになります。
Enter a driver: Steve Park
Enter a season: 2000
Traceback (most recent call last):
File "<stdin>", line1, in <module>
File "<stdin>", line6, in main
File "<stdin>", line5, in function1
Name Error: global name 'averageFinish' is not defined
私はそれが平均的な仕上がりがグローバルであると考える理由はわかりません。また、ノートパソコンで使用しているキーボードが機能しないため、タブレットのコードを入力しました。私はアンドロイドアプリQPython3を使用しています。コンピュータのPythonインタプリタと比べて異なるエラーメッセージを生成するかどうかはわかりません。私がキーボードを手に入れるまで待たずにいる理由は、私の個人的なプログラムのアルゴリズムの仕上げを本当に心配しているからです。私のキーボードが来るまでQPython3で計画しているアルゴリズムをテストしています。
'if'ステートメントにセミコロンがありません。そのコードはまったく動くべきではありません。 – tdelaney
あなたの他の関数の引数として戻り値を使用し、グローバルで混乱を避け、非常にクリーンで簡単に従うことができます。 –
このコードは、実行したことではありません。構文エラーがあり、 'function1'には5行がありません。私は、あなたのコードパスのすべてが値を設定するわけではないことに気付きます(driver == "Steve Park"とseason == "2000")がFalseならば、変数を決して設定しませんが、しかし、それは 'UnboundLocalError'となります。私はそれが実際のコードをその中の 'global'ステートメントと考えています。 – tdelaney