2017-03-24 3 views
1

セミコロンがPythonで動作するときとそうでないときはちょっと混乱します。 Pythonで (3.4.3)次のコードは、にSyntaxErrorを生成します:無効な構文セミコロンはPythonグローバルステートメントで動作しますか?

global winSeqs ; if len(winSeqs) == 0: makeWinSeqs(boardSize) 

は(3.4.3)言語リファレンスマニュアルのセクション7は言う:

> A simple statement is comprised within a single logical line. Several 
> simple statements may occur on a single line separated by semicolons. 
> The syntax for simple statements is: 
> 
> simple_stmt ::= expression_stmt 
>     | assert_stmt 
>     | assignment_stmt 
... 
>     | global_stmt 
>     | nonlocal_stmt 

私はこれはおそらくバグだと思います(おそらくドキュメントの中に)、それは確かに知っておくと良いでしょう。

+1

「if」ステートメントは単純なステートメントです。 –

答えて

4

これはglobalの使用とは関係ありません。ドキュメントに記載されているように、簡略ステートメントとセミコロンを組み合わせることができます。

if ...: ...という形式のスタンザは、simple statementではありません。それはcompound statementです。次のコードを使用して同じSyntaxErrorを観察します。

x = 1; if x == 1: print("wibble") 
+0

すばらしく簡単な答え。 –

+0

アール、意味があります。ありがとう! – TonyM

関連する問題