Всякий раз, когда я запускаю эту программу, я не могу повторить цикл while. Это простое упражнение с занятиями, и я не знаю, что я делаю неправильно.

class Enemy():
    def attack(self):
        enemy_health = 50
        while enemy_health > 0:
            action = input("attack enemy?")
            if action.lower() == "yes":
                print("enemy health dropped by 5")
                enemy_health =- 5
            else:
                print("enemy escaped!")




jaguar = Enemy()
jaguar.attack()

Я хочу, чтобы ввод повторялся до тех пор, пока здоровье врага не станет равно 0. Кроме того, я должен включить сюда какие-либо операторы возврата вместо того, чтобы просто вычитать здоровье врага? Спасибо

0
Mahdi_J 1 Май 2019 в 19:39

4 ответа

Лучший ответ

У вас есть небольшая ошибка, эта строка:

enemy_health =- 5

На самом деле должно быть:

enemy_health -= 5

Ваша оригинальная строка просто устанавливает здоровье -5. Проще увидеть ошибку при изменении расстояния:

enemy_health = -5  # same as the first line
1
ruohola 1 Май 2019 в 16:43

У вас здесь опечатка:

enemy_health =- 5

Это устанавливает enemy_health в -5. Что вы хотите сделать, так это взять enemy_health и вычесть из него 5, а затем сохранить это значение обратно в enemy_health.

Вы можете сделать это так: enemy_health -= 5

Или вот так: enemy_health = enemy_health - 5

0
bigwillydos 1 Май 2019 в 16:45

Это потому, что вы должны инвертировать оператор в -=

0
matthieugouel 1 Май 2019 в 16:44

Когда вы использовали enemy_health =- 5, вы не уменьшаете здоровье врага на 5, а устанавливаете его значение - 5. Используйте enemy_health -= 5.

0
Jacob 1 Май 2019 в 16:43