@yafir

Как сделать так чтобы при вычитании не уходило в минус?

import random

player1 = {'player': 'Ярик', 'oranges': 30}
player2 = {'player': 'Егор', 'oranges': 30}

maxkick = 10

kick = random.randint(0, maxkick)
player2['oranges'] = player2['oranges'] - kick
print(kick, player2['oranges'])
  • Вопрос задан
  • 498 просмотров
Решения вопроса 1
Sergei_Erjemin
@Sergei_Erjemin
Улыбайся, будь самураем...
Очевидно, что проверить уйдёт в минус или нет. Например так:
kick = random.randint(0, maxkick if maxkick < player2['oranges'] else player2['oranges'])
player2['oranges'] = player2['oranges'] - kick

А вообще зависит от того какое распределение значения kick нужно
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Есть много путей, как это сделать. Можно перед вычитанием проверять, не больше ли вычитаемое уменьшаемого. Можно после вычитания проверять, не стало ли значение меньше нуля, и обнулять. Можно вообще сделать свой тип «только положительные числа», в котором внутри предусмотреть логику контроля, чтоб меньше нуля не становилось - либо обнулялось, либо возвращало ошибку.
Чтобы выбрать, надо понять, зачем и что будет дальше.
Ответ написан
Комментировать
@o5a
Если вопрос в том, как не уходить в минус (независимо от того, что вычитаем), то можно так:
player2['oranges'] = max(player2['oranges'] - kick, 0)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы