Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 19, 2022 16:06:22

Nev
Зарегистрирован: 2022-02-06
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

убрать минус в числе без использования abs и math

Нужно убрать минус в числе без использования abs, math или сплайсов в строке и тому подобное.
Вероятно подразумевается использование format в print. Но я что-то не могу найти подходящий оператор.
Может возможно математическое решение?
Какие есть варианты?

Офлайн

#2 Ноя. 19, 2022 16:18:51

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

убрать минус в числе без использования abs и math

экземпляр где

Nev
возможно математическое решение
а так -2 * -1



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Ноя. 19, 2022 16:22:44)

Офлайн

#3 Ноя. 19, 2022 17:10:49

Nev
Зарегистрирован: 2022-02-06
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

убрать минус в числе без использования abs и math

Прошу прощения, вопрос не полный. Дополняю.
На входе два числа, одно из другого вычитается. В результате нужно получить abs(число). Но входящие числа идут в разнобой. Проверить какое из них меньше так же нельзя.
Таким образом число может быть как положительным, так и отрицательным, но результат всегда должен быть положительным.

Офлайн

#4 Ноя. 19, 2022 18:21:06

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

убрать минус в числе без использования abs и math

 def alternative_abs(a, b):
    result = a - b
    return result * -1 if result <= 0 else result



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Офлайн

#5 Ноя. 19, 2022 20:31:04

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9749
Репутация: +  843  -
Профиль   Отправить e-mail  

убрать минус в числе без использования abs и math

  
>>> n = 2 - 4
>>> n = -n if n < 0 else n
>>> n
2
>>> 
>>> 
>>> n = 2 - 4
>>> n = (n, -n)[n < 0]
>>> n
2
>>>



Офлайн

#6 Ноя. 19, 2022 20:54:18

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

убрать минус в числе без использования abs и math

отож оно еще более очивидно
этот момент не понимаю

 (n, -n)[n < 0]
блин прикольно а когда это появялось? чет не встречаось ни разу и как это называется?



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Ноя. 19, 2022 21:40:33)

Офлайн

#7 Ноя. 19, 2022 23:27:16

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9749
Репутация: +  843  -
Профиль   Отправить e-mail  

убрать минус в числе без использования abs и math

AD0DE412
блин прикольно а когда это появялось?
Всегда было.

AD0DE412
чет не встречаось ни разу и как это называется?
Это называется кортеж из элементов, из которого берётся элемент по индексу ноль или один.

n < 0 даёт в результате True или False. При этом, как известно, логические True и False являются объектами класса bool, который является подклассом класса int. Поэтому True и False можно использовать везде, где можно использовать целые числа.

https://docs.python.org/3/reference/datamodel.html#the-standard-type-hierarchy

numbers.Integral

These represent elements from the mathematical set of integers (positive and negative).

There are two types of integers:

Integers (int)

These represent numbers in an unlimited range, subject to available (virtual) memory only. For the purpose of shift and mask operations, a binary representation is assumed, and negative numbers are represented in a variant of 2’s complement which gives the illusion of an infinite string of sign bits extending to the left.

Booleans (bool)

These represent the truth values False and True. The two objects representing the values False and True are the only Boolean objects. The Boolean type is a subtype of the integer type, and Boolean values behave like the values 0 and 1, respectively, in almost all contexts, the exception being that when converted to a string, the strings "False" or "True" are returned, respectively.

The rules for integer representation are intended to give the most meaningful interpretation of shift and mask operations involving negative integers.

Список классов питона можно получить, выполнив help() и далее набрав там слово “builtins”.

Также можно запустить pydoc или pydoc3 с опцией -p, открыть локально в браузере страницу на этом порте и там перейти в раздел builtins.
[guest@localhost ~]$ pydoc3
pydoc - the Python documentation tool

pydoc3 <name> ...
Show text documentation on something. <name> may be the name of a
Python keyword, topic, function, module, or package, or a dotted
reference to a class or function within a module or module in a
package. If <name> contains a '/', it is used as the path to a
Python source file to document. If name is 'keywords', 'topics',
or 'modules', a listing of these things is displayed.

pydoc3 -k <keyword>
Search for a keyword in the synopsis lines of all available modules.

pydoc3 -p <port>
Start an HTTP server on the given port on the local machine. Port
number 0 can be used to get an arbitrary unused port.

pydoc3 -b
Start an HTTP server on an arbitrary unused port and open a Web browser
to interactively browse documentation. The -p option can be used with
the -b option to explicitly specify the server port.

pydoc3 -w <name> ...
Write out the HTML documentation for a module to a file in the current
directory. If <name> contains a '/', it is treated as a filename; if
it names a directory, documentation is written for all the contents.

[guest@localhost ~]$ pydoc3 -p 1234
Server ready at http://localhost:1234/
Server commands: [b]rowser, [q]uit
server>



Отредактировано py.user.next (Ноя. 19, 2022 23:50:21)

Офлайн

#8 Ноя. 20, 2022 06:54:48

Nev
Зарегистрирован: 2022-02-06
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

убрать минус в числе без использования abs и math

AD0DE412
Операция if else не доступна.

Офлайн

#9 Ноя. 20, 2022 06:55:56

Nev
Зарегистрирован: 2022-02-06
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

убрать минус в числе без использования abs и math

py.user.next
Операции сравнения не доступны.
Доступны: переменные, математические операции и все операции print.

Офлайн

#10 Ноя. 20, 2022 07:53:19

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9749
Репутация: +  843  -
Профиль   Отправить e-mail  

убрать минус в числе без использования abs и math

Nev
Операции сравнения не доступны.
Доступны: переменные, математические операции и все операции print.
  
>>> n = -2.0
>>> 
>>> n = (n * n) ** 0.5
>>> n
2.0
>>>



Отредактировано py.user.next (Ноя. 20, 2022 07:59:06)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version