python - 如何在 Python 中找到整数或浮点数的绝对值,而不使用库、除法、平方根、条件或内置函数
问题描述
我想知道是否可以在 Python 3 中做这样的事情。当然不允许使用 abs()。也不允许导入。
解决方案
{1e999: x, -1e999: -x}[x*1e999]
我是认真的。这行得通。
被1e999
解释为浮点数,但它溢出了可用的精度,所以它是inf
. 但无穷大可以是正的或负的。通过与无穷大相乘x
,我们可以根据其符号将其强制转换为两个值之一,而无需使用条件运算符。然后我们可以x
从查找表中选择或否定。
它等效于以下内容,但不需要导入:
from math import inf
{inf: x, -inf: -x}[x*inf]
推荐阅读
- javascript - 存储的图像保存为“八位字节流”而不是 image/jpeg(firebase 和 ReactNative)
- javascript - MapBox 反向地理编码
- git - eslint 和 vue 的预提交钩子
- javascript - 有没有办法将对象属性作为单个参数动态传递?
- java - 处理损坏的 install4j 安装程序
- r - 反应函数问题,尝试更改正在导入的数据集列的类型(R Shiny)
- java - Spring Mongo 是否默认公开集合的端点?
- css - Bootstrap 响应式导航栏切换按钮不起作用
- java - Gradle 找不到主类原因:java.lang.ClassNotFoundException: C:\data\workspace\dev\tools\java_security for Java 11
- python-3.x - 按记录搜索字典