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

Оберните код в вопросе тегом code для корректного отображения.
Также рекомендую убрать тег «программирование», он тут лишний.

Алан Гибизов @phaggi Куратор тега Python
Было бы неплохо показать, как вы пробовали решить свою проблему.
Решения вопроса 1
Сергей Еремин @Sergei_Erjemin
Улыбайся, будь самураем.
Очевидно, что проверить уйдёт в минус или нет. Например так:
kick = random.randint(0, maxkick if maxkick < player2['oranges'] else player2['oranges']) player2['oranges'] = player2['oranges'] - kick
А вообще зависит от того какое распределение значения kick нужно
Ответ написан более двух лет назад
yafir @yafir Автор вопроса
У меня пишет такую ошибку:
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
in ()
----> 1 kick = random.randint(0, maxkick if maxkick > player2['oranges'] else player2['oranges'])
2 player2['oranges'] = player2['oranges'] - kick
NameError: name 'random' is not defined
Сергей Еремин @Sergei_Erjemin
ну так импорт рандом не сделал же.
import random kick = random.randint(0, maxkick if maxkick < player2['oranges'] else player2['oranges']) player2['oranges'] = player2['oranges'] - kick
И в первой версии когда конечно > -- не правильно. Нужно
Ответы на вопрос 2

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

- Python
- +3 ещё
Почему tesserat не распознает цифры? Зачеркнутый текст?
- 1 подписчик
- 2 часа назад
- 21 просмотр
Как можно убрать знак - у числа? [закрыт]
Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме.
Закрыт 3 года назад .
У меня есть число: -1000 Как мне в итоге получить: 1000?
Отслеживать
задан 19 июл 2020 в 11:15
189 3 3 серебряных знака 16 16 бронзовых знаков
19 июл 2020 в 11:19
Или просто умножить на -1
– user361068
19 июл 2020 в 11:24
примите ответ если он вам помог — галочка слева от ответа
19 июл 2020 в 11:33
print(1000) а вообще задача слишком абстрактно сформулирована
19 июл 2020 в 11:51
@CrazyElf получить => lambda:1000
19 июл 2020 в 14:55
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Функция abs возвращает абсолютную величину числа. Если ей передать отрицательное число, то она вернёт положительное. Если ей передать положительное число, то она вернёт положительное число.
Отслеживать
ответ дан 19 июл 2020 в 14:45
823 5 5 серебряных знаков 9 9 бронзовых знаков
abs(yours)
Отслеживать
ответ дан 19 июл 2020 в 11:33
USERNAME GOES HERE USERNAME GOES HERE
10.4k 21 21 золотой знак 25 25 серебряных знаков 53 53 бронзовых знака
В случае если попадется положительное число все предложенные операции с -1 дадут противоположенный результат, тоесть добавит знак. Поэтому, думаю стоит ограничиться abs
19 июл 2020 в 11:38
@Namerek смотря что нужно .
19 июл 2020 в 11:45
Цитирую Как можно убрать знак - у числа?
19 июл 2020 в 12:02
@Namerek edited.
19 июл 2020 в 14:23
Можно сделать так:
def func(number): if number < 0: number = number * -1 elif number >= 0: number = number return number my_number = -1000 print(func(my_number))
Тогда знак уберется только у числа: )
Отслеживать
10.4k 21 21 золотой знак 25 25 серебряных знаков 53 53 бронзовых знака
ответ дан 19 июл 2020 в 13:55
228 4 4 серебряных знака 11 11 бронзовых знаков
19 июл 2020 в 14:23
- python
- python-3.x
-
Важное на Мете
Похожие
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Удаление символа из строки в Python
Одной из распространенных задач при работе со строками в Python является удаление определенного символа из строки. Это может быть полезно во множестве ситуаций, например, при обработке текстовых данных или при создании пользовательского интерфейса.
Рассмотрим простой пример. Допустим, у нас есть строка «ПРИМЕР», и мы хотим удалить из нее средний символ, то есть «М».
Python предоставляет несколько способов для решения этой задачи. Важно понимать, что строки в Python являются неизменяемыми, что означает, что они не могут быть изменены после создания. Это значит, что нам потребуется создать новую строку без определенного символа.
Особенности строк в Python
В Python строки не заканчиваются на какой-либо специальный символ. Это не так, как в некоторых других языках программирования, где строки могут заканчиваться нулевым символом. В Python строка может содержать любые символы и не имеет фиксированного окончания.
Способы удаления символа из строки
Есть несколько способов удаления символа из строки в Python, и выбор лучшего способа зависит от конкретного случая.
Один из способов — это «сдвиг» всех символов влево, начиная с символа, который нужно удалить. Это можно сделать с помощью срезов строк. Например, если нужно удалить средний символ из строки, можно взять все символы до среднего и объединить их со всеми символами после среднего.
s = "ПРИМЕР" middle = len(s) // 2 new_s = s[:middle] + s[middle+1:]
В этом случае new_s будет строкой «ПРИЕР».
Другой способ — это создание новой строки и копирование в нее всех символов исходной строки, за исключением того, который нужно удалить. Это можно сделать с помощью цикла for и условного оператора.
s = "ПРИМЕР" new_s = "" for i in range(len(s)): if i != len(s) // 2: new_s += s[i]
Также new_s будет строкой «ПРИЕР».
Эти два способа имеют разные плюсы и минусы. Сдвиг символов обычно быстрее, но он может быть менее понятным для новичков. Создание новой строки и копирование символов в нее более прямолинейно, но может быть медленнее, особенно для очень длинных строк.
Важно отметить, что оба этих способа работают только в случаях, когда известен индекс символа, который нужно удалить. Если нужно удалить символ по его значению, можно использовать метод replace() .
s = "ПРИМЕР" new_s = s.replace("М", "", 1)
В этом случае new_s также будет строкой «ПРИЕР». Метод replace() заменяет первое вхождение подстроки на новую подстроку. В данном случае мы заменяем «М» на пустую строку, тем самым удаляя его из исходной строки.
Программа проверки знака числа
Данная программа принимает на вход число и проверяет, положительное оно или отрицательное.
Решение задачи
- Считывается значение числа и записывается в переменную.
- Для определения знака используется условный оператор if.
- Конец.
Исходный код программы
Ниже представлен исходный код этой программы, а также результаты ее работы.
n = int(input("Введите число: ")) if(n > 0): print("Число положительное") else: print("Число отрицательное")
Объяснение работы программы
- Пользователь вводит число, и оно записывается в переменную n .
- Для проверки, является ли введенное число больше или меньше 0, используется оператор if .
- Если число больше 0, то выводится строка «Число положительное».
- Если число меньше 0, то выводится строка «Число отрицательное».
- Конец.
Результаты работы программы
Пример 1: Введите число: 45 Число положительное Пример 2: Введите число: -30 Число отрицательное
Примечание переводчика
Как можно заметить, в этой программе не предусмотрен случай, когда число равно 0. Предоставим читателю возможность самому устранить эту неточность.