Проблема с повторением цикла в Python - PullRequest
0 голосов
/ 01 мая 2019

Всякий раз, когда я запускаю эту программу, я не могу повторить цикл 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. Кроме того, должен ли я включить сюда какие-либо операторы возврата вместо простого вычитания из здоровья врага? Спасибо

Ответы [ 4 ]

1 голос
/ 01 мая 2019

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

enemy_health =- 5

Фактически должна быть:

enemy_health -= 5

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

enemy_health = -5  # same as the first line
0 голосов
/ 01 мая 2019

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

enemy_health =- 5

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

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

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

0 голосов
/ 01 мая 2019

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

0 голосов
/ 01 мая 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...