4

私は今年の秋に Uni で Comp Sci コースを開始する予定です (プログラミングの知識がない状態から開始します)。私は本に従っていて、いくつかのコードをコピーして貼り付けようとしましたが、うまくいきません。これが私が試したことです:

>>> def function(x):
    return x+2
function(2)
SyntaxError: invalid syntax

「機能」という言葉が強調されました。まったく同じ例が本で使用されており、機能しているように見えるため、混乱していますが、最後にそのエラーが発生します。何が起きてる?

4

4 に答える 4

6

関数定義をその実行から分離する必要があります。また、Python は行頭の空白に敏感です。これを試してください(正確に):

def function(x):
    return x+2
function(2)

または、1 行で (これは行うべきではありません。スタイル ガイドライン を参照してください):

def function(x): return x+2; function(2)

または、Python シェルで:

>>> def function(x):
    return x+2

>>> function(2)
4

関数定義とその使用の間の空白行に注意してください。関数を定義したら、Enter キーを 1 回押してプロンプトに戻ります。

于 2012-08-09T19:01:50.133 に答える
3

タイトルにPythonを入れるつもりだったと思います。Python には興味深い構文規則があり、プログラムを解析するときに実際に空白を意味のあるものとしてカウントします。私が言いたいのは、余分なスペース、改行、タブなどがあると、実際にはプログラムの意味が変わるということです。本の例を再確認し、まったく同じ (タブ、改行、およびすべての) 構文が記述されていることを確認してください。次のようになります。

def f(x):
    return x + 2

新しい行とタブに注意してください。この関数を呼び出すには、別の行で次のように言います。

f(5)

または、5 を任意のパラメーターに置き換えます。

編集:

したがって、完全なスクリプトは次のようになります。

def f(x):
    return x + 2

f(2)
于 2012-08-09T19:00:58.603 に答える
2

これを試して:

def function(x):
    return x+2
function(5)

Python では、インデントが重要です。彼らは{}パイソンの世界です。

function(5)インデントされていないため、関数定義に空白を含めないことをPythonが認識しているため、実際には前に余分な空白を追加する必要はありません。余分な空白行を追加することは依然として良い習慣ですが、厳密に必要というわけではありません。

于 2013-11-23T06:00:25.873 に答える