1

Pythonを使ったコーディングを学び始めたところです。Courseraのチュートリアルの指示に従っていましたが、Pythonで基本関数を定義する際に問題が発生しました。

私のコードは次のとおりです。

>>> 
>>> def f(x):
    return x*2
f(3)
SyntaxError: invalid syntax
>>> 
>>> 

私は次のPythonパッケージを使用しています:

Python 3.3.0(v3.3.0:bd8afb90ebf2、2012年9月29日、01:25:11)[GCC 4.2.1(Apple Inc.ビルド5666)(ドット3)]ダーウィン

チュートリアルに表示されているのと同じコードが、Python3.2.3が使用されている場合は正常に機能しているようです。いくつかのアドバイスに感謝します。

4

1 に答える 1

4

IDLEシェルは、一度に1つのコードブロックのみを解析できます。関数定義と関数呼び出しは異なる「ブロック」と見なされるため、関数定義の後でもう一度Enterキーを押して、それらを分離する必要があります。

>>> def f(x):
    return x*2

>>> f(3)
6

このコンテキストでの「ブロック」は、基本的に、スタンドアロンのコード行、またはインデントされてコロン(:)で終わる行が前に付いたコードのいずれかであることに注意してください。

@Duncanが述べたように、空白行はインタラクティブシェルでのみ必要です-ブロックにまだまだあるかどうか、または完了してコードを実行するかどうかを知る必要があります。通常の.pyファイルでは、コードはすでに完全に記述されているため、インタプリタは何をすべきかを知っているため、空白行は重要ではありません。

于 2013-03-11T08:55:24.710 に答える