2016-12-23 2 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

Я считаю, что это было бы не до тех пор, пока утверждения не будут завершены. Попробуйте добавить простую функцию для каждого оператора.

Смежные вопросы