2016-12-23 4 views
-6

私は変数を定義していました。しかし、私はスクリプトを続行するために底に行った、私はそれをテストし、私には、 "インデントされたブロックが予想されるエラー"を与えた。どうしてか分かりません。具体的には、私は右を定義した後、それを私に与えました。
(ピラニアと飢餓がそれ以前のコードで定義されていました)明白な理由がないのに「インデントが予想される」

def Left(): 
    piranha.left(90) 
    piranha.forward(100) 
    piranha.right(90) 
    global hunger 
    hunger = hunger - 5 
    if hunger==0: 

def Right(): 
    piranha.right(90) 
    piranha.forward(100) 
    piranha.left(90) 
    global hunger 
    hunger = hunger - 5 
    if hunger==0: 

def Back(): 
    piranha.right(180) 
    piranha.forward(100) 
    piranha.right(180) 
    global hunger 
    hunger = hunger - 5 
    if hunger==0: 

`

+1

'もし空腹なら== 0:'それでは? – AChampion

+0

if文が不完全です。一般的に、Pythonは ':'の後ろにインデントされたブロックを期待しています( 'dicts'のキーと値のマッピングのような例外はほとんどありません) –

答えて

3

あなたが例えばif

後に何かをする必要があります。

if hunger==0: 
    # Do something 
    print("Dead piranha") #Attention with the indentation, after ":" is indented 

また、あなたがすることができます使用:

hunger -= 5 # instead of hunger = hunger - 5 

同じですが、より明確です。

最後に、なぜglobal hungerを使用しますか? クラスがpiranhaの場合、クラス属性を空腹にする方が良いと思います。

piranha.hunger -= 5 
1

これは、if文が完了していないことになります。各ステートメントに単純な関数を追加してみてください。

関連する問題